집돌이 공대남 IT

JPA 프로그래밍 마스터하기: 초급부터 전문가까지 실습을 통한 학습(14) 본문

IT/웹개발

JPA 프로그래밍 마스터하기: 초급부터 전문가까지 실습을 통한 학습(14)

집공이 2023. 8. 27. 12:00

JPA 실습: 실제 애플리케이션에 활용하기

안녕하세요, 집돌이 공대남입니다.

오늘은 JPA를 활용하여 실제 애플리케이션을 구축해보는 실습을 진행해보겠습니다.

이번 포스트에서는 간단한 웹 애플리케이션을 만들어볼 예정이며, 애플리케이션에는 회원 등록, 회원 조회, 회원 수정, 회원 삭제 기능이 포함될 예정입니다. 재미있으시길 바라겠습니다.^^

1단계: 개발 환경 설정

먼저, 실습을 위해 필요한 개발 환경을 설정하겠습니다. 이를 위해서는 Spring Boot를 기반으로 JPA를 적용할 준비를 해야 합니다.

 

2단계: 도메인 모델링

회원(Member) 클래스를 만들어 보겠습니다. 아래는 'Member' 엔티티의 예시입니다.

@Entity
public class Member {

    @Id @GeneratedValue
    private Long id;
    private String name;
    private String email;

    // getter, setter
}

 

3단계: 리포지토리 생성

데이터베이스와의 연동을 담당할 MemberRepository를 작성해봅시다.

public interface MemberRepository extends JpaRepository<Member, Long> {
}

 

4단계: 서비스 계층 구현

서비스 계층에서는 비즈니스 로직을 구현합니다. 'MemberService' 클래스를 만들고, 회원 등록, 조회, 수정, 삭제 기능을 구현합니다.

@Service
public class MemberService {

    private final MemberRepository memberRepository;

    // constructor injection
    public MemberService(MemberRepository memberRepository) {
        this.memberRepository = memberRepository;
    }

    public Member save(Member member) {
        return memberRepository.save(member);
    }

    public List<Member> findAll() {
        return memberRepository.findAll();
    }

    public Optional<Member> findById(Long id) {
        return memberRepository.findById(id);
    }

    public void delete(Member member) {
        memberRepository.delete(member);
    }
}

 

5단계: 컨트롤러 구현

마지막으로, 사용자의 요청을 처리할 컨트롤러를 구현합니다.

@Controller
public class MemberController {

    private final MemberService memberService;

    public MemberController(MemberService memberService) {
        this.memberService = memberService;
    }

    @GetMapping("/members")
    public String list(Model model) {
        List<Member> members = memberService.findAll();
        model.addAttribute("members", members);
        return "members/list";
    }

    // 추가적인 handler methods...
}

이상으로 JPA를 활용하여 실제 애플리케이션을 구축해보는 실습을 마쳤습니다.

이번 실습을 통해 JPA의 간편함과 편리함을 경험해보았을 것입니다.

다음에는 더 복잡한 도메인 모델과 비즈니스 로직을 다루는 실습을 준비해보겠습니다.