회원 관리 예제에서 지금까지 만든 부분을 살펴보자.
1. 도메인
도메인은 관리될 정보의 구조를 정의한다.
우리가 관리하는 정보는 회원 정보이다.
회원 정보에 무엇이 포함되는지(필드)와
그 정보를 넣고 빼는 데 필요한 메소드(getter와 setter)가 들어있는 도메인을 만들었다.
2. 리포지토리
리포지토리는 DB에 직접 접근하여,
도메인 객체를 저장하고 관리하는 역할을 한다. 내부 핵심 부품이라고 할 수 있다.
리포지토리는
인터페이스 하나, 구현체 하나를 만들었다.
구현체는 개발 과정에서 임시로 쓰기 위해 만든 것이고,
나중에 제대로 된 DB를 결정하면 인터페이스에 맞추어 새로운 구현체를 짠 뒤 갈아끼울 것이다.
3. 서비스
서비스는
리포지토리가 갖춘 기능을 활용하여
좀 더 사용자 친화적인 관점에서 웹 애플리케이션의 기능을 구성한다.
리포지토리가 'DB에 새 회원 정보 저장하기' 기능을 가지고 있다면 서비스는 리포지토리의 이 기능에다가 중복 회원 가입을 방지하는 기능을 덧붙인 '회원 가입' 기능을 가지고 있는 식이다.
4. 컨트롤러
모든 동작의 시작점이 될 컨트롤러를 만들었다.
컨트롤러는 아직 미완성이다.
다음 시간부터 시작할 MVC 개발 과정에서 제대로 된 컨트롤러를 만들 것이다.
5. 스프링 빈 등록
컨트롤러는 @Controller 와 @Autowired 를 사용해 스프링 빈으로 등록했고,
Configuration을 위한 클래스를 따로 만들어 스프링 빈으로 등록할 나머지 객체 지정 및 의존 관계를 명시했다.
의존 관계
의존 관계는 다음과 같다.
Controller -> Service -> Repository
'스프링 공부 > 인프런 김영한 스프링 입문 노트정리' 카테고리의 다른 글
5-2. 회원 웹 기능 - 등록 (0) | 2022.07.30 |
---|---|
5-1. 회원 웹 기능 - 홈 화면 추가 (0) | 2022.07.30 |
4-2. 자바 코드로 직접 스프링 빈 등록하기 (0) | 2022.07.29 |
4-1. 컴포넌트 스캔과 자동 의존관계 설정 (0) | 2022.07.29 |
3-5. 회원 서비스 테스트 (0) | 2022.07.28 |