Spring 3 - Layer Architecture

이유진·2024년 8월 19일
0
post-thumbnail

🌼 3 - Layer Architecture

Spring MVC에 이어서 3 - Layer Architecture에 대해서 정리해보았다.

둘은 처음에 공부할 땐 비슷해 보이지만 차이가 있다!!

1. Presentation Layer : Controller

  • 역할: 사용자가 입력한 데이터의 형식이나 간단한 유효성 검사를 수행합니다. 예를 들어, 입력 필드가 빈 값인지, 숫자 필드에 숫자가 들어왔는지, 이메일 형식이 올바른지 등을 검증합니다.

  • 쉬운 설명

    • 사용자가 입력한 요청이 유요한 요청인지 검사하고 필터링 하는 역할
    • 사용자에게 요청을 받고, 데이터를 전달하는 역할
  • 구성 요소:

    • Controller: Spring MVC의 @Controller 또는 @RestController

2. Service Layer : Service

  • 역할: 비즈니스 로직을 처리하는 핵심 레이어입니다. Presentation Layer와 Data Access Layer 사이에서 중간 역할을 합니다. Presentation Layer의 요청을 받아 필요한 데이터를 가공하거나 로직을 실행하여 결과를 반환합니다.

  • 쉬운 설명 :

    • 사용자가 요청한 요구사항이 실질적으로 처리하는 역할
  • 구성 요소:

    • Service: @Service 어노테이션으로 표시된 클래스

3. Data Access Layer : Repository

  • 역할: 데이터베이스와 상호작용하며, 데이터를 저장, 검색, 업데이트, 삭제하는 역할을 합니다. 비즈니스 로직에서 데이터를 필요로 할 때 이 레이어를 통해 데이터를 처리합니다.

  • 쉬운 설명 :

    • 스프링에서 데이터 베이스의 데이터를 처리하는 역할
  • 구성 요소:

    • Repository : @Repository 어노테이션으로 표시된 클래스들이 여기에 속하며, JPA, Hibernate, MyBatis 등과 같은 ORM(Object-Relational Mapping) 프레임워크를 사용해 데이터베이스와 상호작용합니다.
    • Entity: 데이터베이스 테이블과 매핑되는 도메인 객체로, 데이터베이스에서 가져오거나 저장할 데이터를 캡슐화합니다.

DTO(Data Transfer Object)

데이터 전송 및 이동을 위해 생성되는 객체를 의미

  • Client에서 보내오는 데이터를 객체로 처리할 때 사용

  • 또한 서버의 계층간의 이동에도 사용

  • 그리고 DB와의 소통을 담당하는 Java 클래스를 그대로 Client에 반환하는 것이 아니라 DTO로 한번 변환한 후 반환할 때도 사용


Entity

실제, 독립체라는 뜻을 가지고 있는데 데이터베이스와 1:1로 매칭하기 위해 존재한다라고 생각할 수 있다.

데이터베이스 테이블이라고 생각하면 이해가 편하다.


정리

계층별로 역할을 충실하게 할 경우 시스템의 유지보수성, 확장성을 향상시킬 수 있다.

Spring MVC, Spring 3 Layer는 비슷해 보이지만 서로 다른 개념이다.

  • MVC는 클라이언트와 서버간의 구조 관점에서 접근한 개념

    • Spring MVC의 주요 목적은 클라이언트(사용자)와 서버 간의 상호작용을 관리하는 것
  • Spring 3 Layer 는 서버 개발 관점에서 각 계층 별로 역할을 분리하는 개념

    • 애플리케이션을 세 개의 주요 계층으로 나누어 각 계층이 독립적으로 동작할 수 있도록 구조화하는 데 초점

참고 URL

https://m.blog.naver.com/sosow0212/223086185606

https://dahlia15.tistory.com/73

https://jki09871.tistory.com/entry/3-Layer-Architecture

profile
🙌중요한건 꺾였는데도 그냥 하는 마음

0개의 댓글