회원 도메인 개발

2023. 9. 29. 00:06LECTURES/실전! 스프링 부트와 JPA 활용

회원 리포지토리 개발

회원 서비스 개발

  • https://github.com/dpdms529/JpaShop/commit/b45e2278dd1b8e58949642f944707751205ae1aa
  • @Service : 스프링 빈으로 등록
  • @Transactional : 트랜잭션, 영속성 컨텍스트
    • readOnly=true : 데이터의 변경이 없는 읽기 전용 메서드에 사용, 영속성 컨텍스트를 플러시 하지 않으므로 약간의 성능 향상(읽기 전용에는 다 적용)
  • @Autowired : 의존관계 자동 주입
    • 생성자 주입 방식을 사용하면 변경 불가능한 안전한 객체 생성 가능
    • 생성자가 하나면 생략 가능
    • final 키워드를 추가하면 컴파일 시점에 오류 체크 가능
  • lombok의 @RequiredArgsConstructor를 사용하면 final이 붙은 필드를 파라미터로 받는 생성자를 만들어줌

회원 기능 테스트

  • https://github.com/dpdms529/JpaShop/commit/e520a41ccf75c7dc3b77e75952d20f6406113806
  • 테스트 요구사항
    • 회원가입을 성공해야 한다.
    • 회원가입할 때 같은 이름이 있으면 예외가 발생해야 한다.
  • @RunWith(SpringRunner.class) : 스프링과 테스트 통합
  • @SpringBootTest : 스프링 부트 띄우고 테스트
  • @Transactional : 반복 가능한 테스트 지원, 각각의 테스트를 실행할 때마다 트랜잭션을 시작하고 테스트가 끝나면 트랜잭션을 강제로 롤백

메모리 DB

  • 테스트 케이스는 격리된 환경에서 실행하고, 끝나면 데이터를 초기화하는 것이 좋음
  • 메모리 DB를 사용하는 것이 좋음
  • 테스트 케이스를 위한 스프링 환경과 일반적으로 애플리케이션을 실행하는 환경은 보통 다르므로 설정 파일을 다르게 사용하는 것이 좋음
  • JPA 관련 별도 추가 설정을 하지 않아도 알아서 잘 동작함
    • datasource 설정이 없으면 기본적으로 메모리 DB 사용
    • driver-class도 현재 등록된 라이브러리를 보고 찾아줌
    • ddl-autocreate-drop 모드로 동작

 

 

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발 - 인프런 | 강의

실무에 가까운 예제로, 스프링 부트와 JPA를 활용해서 웹 애플리케이션을 설계하고 개발합니다. 이 과정을 통해 스프링 부트와 JPA를 실무에서 어떻게 활용해야 하는지 이해할 수 있습니다., 스프

www.inflearn.com

'LECTURES > 실전! 스프링 부트와 JPA 활용' 카테고리의 다른 글

주문 도메인 개발  (0) 2023.09.29
상품 도메인 개발  (0) 2023.09.29
애플리케이션 구현 준비  (0) 2023.09.29
도메인 분석 설계  (0) 2023.09.29
프로젝트 환경설정  (0) 2023.09.29