Notice
Recent Posts
Recent Comments
«   2024/10   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
10-11 00:15
Archives
Today
Total
관리 메뉴

Developer_Neo

[Spring 입문] - 회원 관리 예제를 만들어 보자 본문

Spring

[Spring 입문] - 회원 관리 예제를 만들어 보자

_Neo_ 2022. 8. 3. 23:23
반응형
1. 비즈니스 요구사항을 정리
2. 회원 도메인 객체를 저장하고 불러올 수 있는 리포지토리 객체인 저장소 객체를 만들자
3. 회원 리포지토리가 정상 동작하는지 테스트 케이스 작성
4. 실제 비즈니스 로직에 있는 회원 서비스를 만들자
5. 위의 서비스가 정상 동작하는지 테스트를 만들자

 

비즈니스 요구사항

데이터 : 회원 ID, 이름

기능 : 회원 등록, 조회

 

김영한 Spring 입문 자료 중 하나

컨트롤러: 웹 MVC의 컨트롤러 역할

서비스: 핵심 비즈니스 로직 구현 ex) 중복 아이디 검색, 로그인...

리포지토리: 데이터베이스에 접근, 도메인 객체를 DB에 저장하고 관리

도메인: 비즈니스 도메인 객체, 예) 회원, 주문, 쿠폰 등등 데이터베이스에 저장하고 관리됨

 

우선 DB를 사용하는 것이 아닌 메모리로써 만들어보자.

 

 

도메인 

 

리포지토리

인터페이스
인터페이스 구현한 클래스

위의 리포지토리에서 MeberRepository를 인터페이스로 적은 이유는 지금은 데이터베이스를 사용하지 않고 메모리에 저장하여 하지만, 나중에 DB를 사용할 때 인터페이스를 이용해 구현한 클래스를 하나 만들어 그것을 쓰려고 하기 때문이다.

 

위까지 적은 코드가 잘 작동하는지 살펴 보기 위해서는 테스트 케이스를 작성해 보아야한다.

 

이때 중요한 점은 각 테스트들이 서로 순서상관없이 의존관계없이 설계되어야한다. 이렇게 하기 위해서는 공용 데이터들을 처음 값으로 초기화를 해주어야한다. -> 이것을 @AfterEach라는 어노테이션을 이용해서 한다.

 

 

이때 한가지 용어가 있다 TDD라는 테스트 주도 개발이라고 하는 것이 있는데 이것은 테스트를 먼저 만들고, 구현 클래스를 만들어서 돌려보는 것이다.

 

테스트 중요함! 깊게 공부해보자!

 

 

회원 서비스 구현 - > 로그인(회원 등록), 전체 회원 조회

 


서비스 테스트

위에서 만든 서비스 클래스에서 ctrl + shift + T(Window 기준)를 입력하면 자동적으로 test를 기본 틀을 잡아준다 밑의 결과이다.

 

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

반응형
Comments