웹 애플리케이션 계층 구조

HwangJerry·2023년 4월 25일
0

계층 구조의 장점

웹 애플리케이션은 위와 같은 계층화된 아키텍처(layered architecture)로 구성되는 것이 일반적입니다. 이와 같은 구조화된 서비스 구조는 다음과 같은 장점을 가집니다.

  • 코드 간 관심사를 분리하여 코드의 복잡성을 관리
  • 코드의 응집도가 높아져서 재사용성, 유지보수성, 확장성 향상
  • 각 계층은 다른 계층과의 결합도를 최소화하도록 설계되며, 이를 통해 시스템의 전체적인 유연성 향상
  • 각 계층별로 테스트가 가능하여 테스트 용이성 또한 향상됩니다.

계층별 특징 정리

이러한 아키텍처는 프로젝트의 요구사항, 팀의 경험치, 사용하는 기술 등에 따라 계층의 수와 역할이 달라지기도 합니다. 아래는 가장 일반적인 계층과 그에 대한 특징을 정리한 것입니다.

1. 컨트롤러(Controller)

  • 웹 어플리케이션의 사용자 인터페이스와 관련된 로직을 담당하는 계층
  • 사용자의 요청을 받고, 적절한 서비스 계층을 호출하며, 응답 데이터를 사용자에게 반환
  • 주로 HTTP 요청 및 응답을 처리하는 데 사용되며, 웹 프레임워크에 종속적일 수 있음

2. 서비스(Service)

  • 비즈니스 로직을 처리하는 계층
  • 도메인 객체와 레포지토리를 사용하여 원하는 기능을 수행하고 결과를 반환
  • 재사용 가능한 비즈니스 로직을 구현하는데 초점을 두며, 여러 컨트롤러에서 호출될 수 있음

3. 도메인(Domain)

  • 어플리케이션의 핵심 비즈니스 개념을 표현하는 객체들을 포함
  • 각 객체는 일반적으로 데이터의 유효성 검사, 연관된 객체 간의 관계 설정 등을 담당하며, 객체와 밀접한 관련이 있는 비즈니스 로직까지 수행할 수 있음
  • 데이터베이스와 직접적으로 연관되지는 않으며, 레포지토리 클래스를 통해 영속화됨

4. 레포지토리(Repository)

  • 데이터베이스와 관련된 로직을 처리하는 계층
  • 도메인 객체의 영속화와 관련된 CRUD(Create, Read, Update, Delete) 작업을 수행합니다.
  • 데이터베이스에 직접 접근하는 코드를 구현하며, 서비스 계층에서 이를 주입하여 데이터에 접근
profile
알고리즘 풀이 아카이브

0개의 댓글