INFLEARN/스프링 입문 - 코드로 배우는 스프링 부트

[스프링 입문] 3. 회원 관리 예제 - 백엔드 개발

0298 2022. 6. 13. 23:47

3. 회원 관리 예제 - 백엔드 개발

 

[강의 정리] 김영한님 :: 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

 

 

 

1. 비즈니스 요구사항 정리

 

# 일반적인 웹 애플리케이션 계층 구조

  • 컨트롤러 : 웹 MVC의 컨트롤러 역할
  • 서비스 : 핵심 비즈니스 로직 구현
  • 리포지토리 : 데이터베이스에 접근, 도메인 객체를 DB에 저장하고 관리
  • 도메인 : 비즈니스 도메인 객체

출처 : 김영한님 강의 자료

# 테스트 케이스 작성

  • JUnit 이라는 프레임워크로 테스트를 실행
  • 경로 : src/test/java 하위 폴더
  • @Test
    • given
    • when
    • then
  • @AfterEach : 한 번에 여러 테스트를 실행하면 메모리 DB에 직전 테스트 결과 남을 수 있어서, 각 테스트가 종료될때마다 콜백되서 메로리 DB에 저장된 데이터를 clear()
  • @BeforeEach : 각 테스트 실행 전에 호출되어, 테스트 서로 영향이 없도록 새로운 객체를 생성하고 의존관계를 맺어줌
  • 테스트는 각각 독립적으로 실행되어야 함
  • 테스트 순서에 의존관계가 있는 것은 좋은 테스트가 아님

 

# Optional

  • NPE (NullPointerException)을 방지하기 위해서 null 여부를 검사해야하는데, Java8에서는 Optional<T> 클래스가 NPE를 방지해줌
  • Null 일 가능성이 있는 경우 감싸주면 됨
  • ifPresent, ofNullable,...