본문 바로가기

IT 개념

스프링 MVC, Controller, Service

스프링을 하다보니 JSP에서 썼던 개념들도 섞여있고 새로나오는 개념들도 막 나오길래 헷갈려서 구글링하였습니다.

https://m.blog.naver.com/jysaa5/221751719334

[용어] MVC, Spring Framework MVC, Controller, Service, DAO, DTO, VO - 개념

MVC (Model-View-Controller) - 소프트웨어 공학에서 사용되는 소프트웨어 디자인 패턴이다. - 이 패...

m.blog.naver.com

[MVC]

일단 MVC 개념 자체는 제가 저번에 올렸던 MVC 개념과 비슷한 것 같습니다.

https://blog.naver.com/tnwnsrla/222376277515

 

MVC

https://www.youtube.com/watch?v=hJhIV6wky8g 1. Model 1) 프로그램 실행에 관여하여 직접적인 ...

blog.naver.com

그런데 스프링에서는

Model 부분에 Service가 추가됩니다.

User 가 CRUD(GET,POST, PUT, DELETE) 작업을 호출하면 Controller(@Controller)가 Service를 상속하고 Service 인터페이스를 구현한 ServiceImpl 클래스가 DAO에 접근하여 쿼리 결과(호출결과)를 가져오고 다시 Service로 가서 View(해당 jsp)에 결과 화면을 뿌려주는 과정인 것 같습니다. ( 뇌피셜..이게 맞을까요?)

[Controller]

1. 클라이언트에서 요청이 들어올 때, 해당 요청을 수행할 비즈니스 로직을 제어하는 객체입니다.

스프링에서는 컨트롤러에서 세부적으로 서비스 레이어를 만들어 해당 요청사항을 객체 지향적인 방식으로

좀 더 세분화하여 관리합니다.

※ 비즈니스 로직은 컴퓨터 프로그램에서 실세계의 규칙에 따라 데이터를 생성, 표시, 저장, 변경하는 부분을 일컫는다. 사용자에게 보여지지 않는 부분에서 데이터를 처리하는 코드라고 보면 된다.

서비스레이어가 뭔지 몰라서 또 찾아보았습니다. (어렵네요..)

https://velog.io/@sumusb/Spring-Service-Layer%EC%97%90-%EB%8C%80%ED%95%9C-%EA%B3%A0%EC%B0%B0

Spring Service Layer에 대한 고찰

Spring Service Layer에 대한 고찰

velog.io

1) Controller Layer (Representation Layer)는

(1) 클라이언트가 이용할 End Point 이며,

클라이언트의 요청을 어떻게 처리할지 정의하는 곳이고,

클라이언트의 요청을 처리하고 어떻게 응답할지 결정하는 곳입니다.

2) Repository Layer

(1) DAO Layer로 각종 다양한 Stotrage에 데이터를 조회,저장,수정,삭제 하기 위한 모든 객체들의 Layer입니다.

3) Service Layer

(1) Business Logic 이 들어있는 가장 중요한 레이어입니다.

(2) Service와 DAO 단은 1:1 매핑입니다.

- 데이터 무결성 보장 (삽입이상, 수정이상 방지 등)

- 중복코드 유발 방지

(3) Service에서 Service 를 참조 가능하나 계층 구조가 명확해야 합니다. (순환참조 방지)

[Service 서비스]

1. 서비스 레이어(Service Layer)단에서 세분화된 비즈니스 로직을 처리하는 갳에입니다.

2. 서비스는 비즈니스 로직이 들어가는 부분입니다.

3. Controller가 Request를 받으면 적절한 Service 에 전달하고 전달 받은 Service는 비즈니스 로직을 처리합니다.

4. DAO로 데이터베이스를 접근하고 DTO로 데이터를 전달받은 다음, 적절한 처리를 해 반환합니다.