회원 도메인 개발
2023. 9. 29. 00:06ㆍLECTURES/실전! 스프링 부트와 JPA 활용
회원 리포지토리 개발
- https://github.com/dpdms529/JpaShop/commit/a11d031ecef924939234372e2c0d8130df9ce36a
@Repository
: 스프링 빈으로 등록, JPA 예외를 스프링 기반 예외로 예외 변환@PersistenceContext
:EntityManager
주입@PersistenceUnit
:EntityManagerFactory
주입
회원 서비스 개발
- 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를 사용하는 것이 좋음
- 테스트 케이스를 위한 스프링 환경과 일반적으로 애플리케이션을 실행하는 환경은 보통 다르므로 설정 파일을 다르게 사용하는 것이 좋음
test/resources/application.yml
- https://github.com/dpdms529/JpaShop/commit/49aeb15ced55bbeaf03749e78065fb71b70fc381
- JPA 관련 별도 추가 설정을 하지 않아도 알아서 잘 동작함
datasource
설정이 없으면 기본적으로 메모리 DB 사용driver-class
도 현재 등록된 라이브러리를 보고 찾아줌ddl-auto
는create-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 |