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

뚝딱이·2022년 7월 3일
0

스프링 입문 

목록 보기
3/7

비즈니스 요구사항 정리

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

DB를 정하지 않아서 언제든지 바꿔끼우기 위해 interface를 사용


회원 도메인과 리포지토리 만들기

  • id : 시스템에서 저장하는 것 / name : 회원가입시 입력받는 것
  • Optional : NPE 방지에 탁월한 Wrapper 클래스
    • ofNullable을 이용 : return 값이 null일 수도 있으므로 Optional로 감싸주는 데 필요

회원 리포지토리 테스트 케이스 작성

  • JUnit 프레임워크로 테스트를 실행한다.

  • test/java 하위 폴더에 생성한다.

  • 강의에선 개발 후 테스트 코드를 만들어 테스트를 했지만, 테스트코드를 만들고 개발을 하는 경우도 있다. 이러한 경우를 테스트 주도 개발이라고 하며 TDD라고 한다.

    • 예) 별모양의 무언가를 만들 때 별모양 틀을 만들어 놓고 개발해 개발한 것이 별모양이 맞는지 확인한다.
  • AfterEach : 한번에 여러 테스트를 진행하면 DB에 직전 테스트의 결과가 남아 테스트가 실패할 수도 있다. 따라서 @AfterEach를 사용하면 각 테스트가 종료될 때마다 이 기능을 실행한다. 강의에서는 테스트가 종료될 때마다 DB에 저장된 데이터를 삭제하도록 했다.

    • @AfterEach 아래의 메소드는 테스트(메소드)가 실행이 끝날 때마다 어떤 것을 동작하는 메소드로 콜백 메소드라고 한다.
    • 테스트는 각각 독립적이어야하며 테스트 순서에 의존관계가 있는 것은 좋은 테스트가 아니다.

회원 서비스 테스트

@BeforeEach : 각 테스트 실행 전에 호출되며 테스트가 서로 영향이 없도록 항상 새로운 객체를 생성하고 의존관계도 새로 맺어준다.


출처 : 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

profile
백엔드 개발자 지망생

0개의 댓글