스프링 공부/인프런 김영한 스프링 입문 노트정리

화면 구성을 시작하기 전 중간점검

모항 2022. 7. 30. 12:19

회원 관리 예제에서 지금까지 만든 부분을 살펴보자.

 

 

1. 도메인

도메인은 관리될 정보의 구조를 정의한다.

우리가 관리하는 정보는 회원 정보이다.

 

회원 정보에 무엇이 포함되는지(필드)와

그 정보를 넣고 빼는 데 필요한 메소드(getter와 setter)가 들어있는 도메인을 만들었다.

 

 

 

 

2. 리포지토리

리포지토리는 DB에 직접 접근하여,

도메인 객체를 저장하고 관리하는 역할을 한다. 내부 핵심 부품이라고 할 수 있다.

리포지토리는

인터페이스 하나, 구현체 하나를 만들었다.

구현체는 개발 과정에서 임시로 쓰기 위해 만든 것이고,

나중에 제대로 된 DB를 결정하면 인터페이스에 맞추어 새로운 구현체를 짠 뒤 갈아끼울 것이다.

 

 

 

3. 서비스

서비스는

리포지토리가 갖춘 기능을 활용하여

좀 더 사용자 친화적인 관점에서 웹 애플리케이션의 기능을 구성한다.

리포지토리가 'DB에 새 회원 정보 저장하기' 기능을 가지고 있다면 서비스는 리포지토리의 이 기능에다가 중복 회원 가입을 방지하는 기능을 덧붙인 '회원 가입' 기능을 가지고 있는 식이다.

 

 

 

4. 컨트롤러

모든 동작의 시작점이 될 컨트롤러를 만들었다.

컨트롤러는 아직 미완성이다.

 

다음 시간부터 시작할 MVC 개발 과정에서 제대로 된 컨트롤러를 만들 것이다.

 

 

 

 

5. 스프링 빈 등록

컨트롤러는 @Controller 와 @Autowired 를 사용해 스프링 빈으로 등록했고,

 

 

Configuration을 위한 클래스를 따로 만들어 스프링 빈으로 등록할 나머지 객체 지정 및 의존 관계를 명시했다.

 

 

 

의존 관계

의존 관계는 다음과 같다.

 

Controller -> Service -> Repository