기억보다 기록을

[Spring] 두 개의 레이어로 표현하는 시스템 구조 (2-Layered Architecture) 본문

Development/Spring

[Spring] 두 개의 레이어로 표현하는 시스템 구조 (2-Layered Architecture)

juyeong 2022. 1. 9. 15:26
반응형

 

 시스템은 두 개의 레이어로 표현할 수 있다. 프레젠테이션 레이어(Presentation Layer(MVC))와 비지니스 레이어(Business Layer(IoC,AOP)이다. 나는 이렇게 도식화된 그림이 이해하기에 훨씬 편한 것 같다. 스프링을 공부한 뒤 면접을 보게 되면 사용자(client)가 요청했을 때 시스템 내부 흐름을 묻는 질문을 하기도 한다. 

 

  그림을 간략히 설명하면 이렇다. 프레젠테이션 레이어는 사용자와 커뮤니케이션한다. 비지니스 레이어는 사용자의 요청에 대한 비지니스 로직을 처리한다. 특히 이 구조에서 핵심적인 역할을 하는 것은 1,2,3번 클래스이다. (4번은 View로 수정해야 한다.)

 

 Controller⑴는 사용자의 요청을 제어한다. @Controller 어노테이션을 사용한다. ServiceImpl⑵는 비지니스 로직을 처리하는 서비스 클래스이다. @Service 어노테이션을 사용하며 클라이언트 프로그램에서 이름으로 객체를 요청할 수 있도록 뒤에 이름을 적어주자. (예시: @Service("boardService")) ⑶은 Data Access Object로 DB 연동을 담당한다. @Repository 어노테이션을 사용한다. 

 

 @Component 어노테이션 대신 각 클래스별로 다른 어노테이션을 사용하는 것은 해당 클래스를 분류하기 위한 목적 때문만은 아니다. @Controller는 MVC 패턴(Model-View-Controller) 아키텍쳐에서 컨트롤러 객체로 해당 클래스를 인식하게 하는 역할을 하고 @Repository는 DB 연동 과정에서 발생하는 예외를 변환해주는 기능을 가졌다. 

 

 

 

틀린 부분을 찾으셨나요? 대게 당신이 맞습니다. 편하게 지적해주세요. 

 

참고

스프링 퀵 스타트/채큐태

https://tinkerbellbass.tistory.com/9

 

반응형