[ TIL ] 3 Layer Architecture

정순관·2025년 11월 9일
post-thumbnail

3 Layer Architecture

  • 소프트웨어 시스템을 세 개의 논리적 계층으로 분리하는 아키텍처
  • 3개의 레이어로 분리한다
  1. Controller Layer (Persentation Layer라고도 한다.)
  2. Service Layer (Business Layer, Application Layer라고도 한다.)
  3. Repository Layer (Data Layer라고도 한다.)

3계층 아키텍처는 소프트웨어 개발 및 시스템 설계에서 사용되는 일반적인 아키텍처 패턴 중 하나다. 이 아키텍처는 애플리케이션을 세 가지 주요 레이어 또는 계층으로 분할한다. 각 레이어는 특정 역할 및 책임을 가지며, 애플리케이션을 더 모듈화하고 관리 가능하게 만든다.

3 Layer Architecture의 목적

  • 관심사의 분리
    • 각 계층은 고유한 책임만 담당
    • 변경 사항의 영향 범위 최소화
  • 유지보수성 향상
    • 코드의 가독성과 이해도 증가
    • 독립적인 테스트 가능
  • 재사용성 증대
    • 각 계층을 독립적으로 재사용
    • 모듈화된 설계
  • 확장성 개선
    • 특정 계층만 변경하여 기능 확장
    • 새로운 기술 도입 용이

Controller Layer

일반 사용자가 애플리케이션과 상호작용하는 사용자 인터페이스 및 커뮤니케이션 계층이다.

  • HTTP 요청 매핑
  • 요청 파라미터 검증
  • 응답 데이터 변환
  • 예외 처리 및 에러 응답

Service Layer

  • 비즈니스 규칙 구현
  • 데이터 유효성 검증
  • 여러 데이터 소스 조합
  • 트랜잭션 경계 설정

Repository Layer

  • CRUD 연산 구현
  • 쿼리 최적화
  • 데이터 매핑

DTO(Data Transfer Object)

  • 데이터를 전달하기 위한 순수 데이터 객체

    • 사용자의 Request 데이터를 자바 코드에 담아 Controller에 옮겨줄 객체가 필요하다. 그 객체가 DTO이다.

    이론? 개념? 은 알 거 같은데
    실습에 적용이 문제다.
    하긴 지금까지 한 거 전부 적용이 문제였지..
    많이 해보는 수 밖에 없는 걸 느끼지만 많이 안한다는 문제점..
    많이 해봐야겠다 지금이라도 이거 쓰고 일단 바로 한 번 해봐야 할 거 같다.

    어렵

profile
으앙 ㅠ

0개의 댓글