Developer_Neo
[Spring 입문] - 회원 관리 예제를 만들어 보자 본문
반응형
1. 비즈니스 요구사항을 정리
2. 회원 도메인 객체를 저장하고 불러올 수 있는 리포지토리 객체인 저장소 객체를 만들자
3. 회원 리포지토리가 정상 동작하는지 테스트 케이스 작성
4. 실제 비즈니스 로직에 있는 회원 서비스를 만들자
5. 위의 서비스가 정상 동작하는지 테스트를 만들자
비즈니스 요구사항
데이터 : 회원 ID, 이름
기능 : 회원 등록, 조회
컨트롤러: 웹 MVC의 컨트롤러 역할
서비스: 핵심 비즈니스 로직 구현 ex) 중복 아이디 검색, 로그인...
리포지토리: 데이터베이스에 접근, 도메인 객체를 DB에 저장하고 관리
도메인: 비즈니스 도메인 객체, 예) 회원, 주문, 쿠폰 등등 데이터베이스에 저장하고 관리됨
우선 DB를 사용하는 것이 아닌 메모리로써 만들어보자.
도메인
리포지토리
위의 리포지토리에서 MeberRepository를 인터페이스로 적은 이유는 지금은 데이터베이스를 사용하지 않고 메모리에 저장하여 하지만, 나중에 DB를 사용할 때 인터페이스를 이용해 구현한 클래스를 하나 만들어 그것을 쓰려고 하기 때문이다.
위까지 적은 코드가 잘 작동하는지 살펴 보기 위해서는 테스트 케이스를 작성해 보아야한다.
이때 중요한 점은 각 테스트들이 서로 순서상관없이 의존관계없이 설계되어야한다. 이렇게 하기 위해서는 공용 데이터들을 처음 값으로 초기화를 해주어야한다. -> 이것을 @AfterEach라는 어노테이션을 이용해서 한다.
이때 한가지 용어가 있다 TDD라는 테스트 주도 개발이라고 하는 것이 있는데 이것은 테스트를 먼저 만들고, 구현 클래스를 만들어서 돌려보는 것이다.
테스트 중요함! 깊게 공부해보자!
회원 서비스 구현 - > 로그인(회원 등록), 전체 회원 조회
서비스 테스트
위에서 만든 서비스 클래스에서 ctrl + shift + T(Window 기준)를 입력하면 자동적으로 test를 기본 틀을 잡아준다 밑의 결과이다.
@BeforeEach : 각 테스트 실행 전에 호출된다. 테스트가 서로 영향이 없도록 항상 새로운 객체를 생성하고, 의존관계도 새로 맺어준다.
반응형
'Spring' 카테고리의 다른 글
[Spring 입문] - JdbcTemplate (0) | 2022.08.05 |
---|---|
[Spring 입문] - 데이터베이스 연동(spring boot + Mysql with build.gradle , applicatioin.properties) (0) | 2022.08.04 |
[Spring 입문] - 스프링 빈과 의존관계, 웹 MVC개발 (0) | 2022.08.04 |
[Spring] - 프로젝트 폴더 안의 static폴더와 templates 폴더, MVC와 탬플릿 엔진, API (0) | 2022.08.02 |
Spring - 프로젝트 생성(with 스프링 부트 스타터 사이트) (0) | 2022.08.01 |
Comments