개발지식

스프링 웹 계층에 대하여..

우루쾅 2024. 3. 18. 22:03
728x90
반응형
SMALL

스프링 프레임워크에서의 웹 계층은 사용자의 요청을 처리하고 응답을 생성하는 데 관련된 컴포넌트들을 포함합니다. 스프링 웹 계층은 크게 컨트롤러(Controller), 서비스(Service), 리포지토리(Repository), DTO(Data Transfer Object), 모델(Model) 등으로 구성됩니다. 이러한 계층 구조는 애플리케이션의 유지 보수성, 확장성 및 테스트 용이성을 높이기 위해 설계되었습니다.

 

출처 : 스프링 부트와 AWS로 혼자 구현하는 웹 서비스


컨트롤러(Controller)

컨트롤러 계층은 HTTP 요청을 받아들이는 진입점입니다. 클라이언트의 요청에 따라 어떤 처리를 할지 결정하고, 요청에 맞는 서비스 메소드를 호출합니다. 컨트롤러는 주로 @Controller 또는 @RestController 어노테이션을 사용하여 정의됩니다. @RestController는 JSON 형태로 객체 데이터를 반환하기 위해 사용됩니다.

 


서비스(Service)

서비스 계층은 비즈니스 로직을 처리합니다. 컨트롤러로부터 받은 요청을 실제로 실행하는 역할을 하며, 여러 DAO(Data Access Object) 또는 리포지토리와 협력하여 데이터를 처리합니다. 서비스 계층은 재사용 가능한 비즈니스 로직의 집합으로, 애플리케이션의 핵심 기능을 구현합니다.


리포지토리(Repository)

리포지토리 계층은 데이터베이스와의 통신을 담당합니다. 스프링 데이터 JPA, MyBatis 등을 사용하여 데이터베이스의 CRUD(Create, Read, Update, Delete) 연산을 추상화합니다. @Repository 어노테이션을 사용하여 리포지토리 인터페이스를 정의하면, 스프링이 구현체를 자동으로 생성하여 관리합니다.


DTO(Data Transfer Object)

DTO는 계층 간 데이터 교환을 위해 사용되는 객체입니다. 컨트롤러와 서비스 계층, 또는 서비스와 리포지토리 계층 사이에서 데이터를 전달할 때 사용됩니다. DTO를 사용하여 불필요한 데이터 전송을 줄이고, 각 계층이 필요한 데이터만을 받도록 할 수 있습니다.

출처 : https://dd-developer.tistory.com/73


모델(Model)

모델은 애플리케이션에서 사용되는 데이터와 비즈니스 로직을 포함합니다. 스프링 MVC에서는 컨트롤러와 뷰 사이에서 데이터를 전달하는 데 사용되는 객체를 의미하기도 합니다. 컨트롤러에서 모델 객체를 뷰에 전달하여, 뷰가 사용자에게 보여줄 데이터를 구성할 수 있습니다.

스프링의 웹 계층은 이러한 컴포넌트들로 구성되어 있으며, 각 계층은 자신의 역할에 맞게 분리되어 있어 애플리케이션의 개발과 유지 보수를 용이하게 합니다.

 

 

출처

이동욱 - "스프링 부트와 AWS로 혼자 구현하는 웹 서비스", 프리렉, 2019, p.101~103

Gray__ - https://dd-developer.tistory.com/73

Seungsoo Lee - https://velog.io/@alvinlee9/spring-%EC%9B%B9-%EC%95%A0%ED%94%8C%EB%A6%AC%EC%BC%80%EC%9D%B4%EC%85%98-%EA%B3%84%EC%B8%B5-%EA%B5%AC%EC%A1%B0

Cherry's techlog - https://velog.io/@smallcherry/Spring-%EC%8A%A4%ED%94%84%EB%A7%81-%EC%9B%B9-%EA%B3%84%EC%B8%B5-Spring-Web-Layer

728x90
반응형
LIST