Layered 구조

jodbsgh·2023년 9월 29일
0

2023

목록 보기
5/8

Layered 구조

레이어드 구조는 애플리케이션의 코드를 조직하는 방법 중 하나입니다. 이러한 구조는 코드를 더 관리 가능하게 만들고 유지보수 및 확장을 용이하게 합니다. 대표적인 레이어드 구조 중 하나는 "컨트롤러 - 서비스 - 레포지토리" 구조입니다.

컨트롤러(Controller)

컨트롤러는 클라이언트와 상호 작용하고 요청을 처리하는 역할을 합니다. 주로 사용자 인터페이스(UI)와 상호작용하며 클라이언트로부터 HTTP 요청을 받아 이를 해석하고 적절한 응답을 생성합니다. 비즈니스 로직을 직접 다루지 않고, 서비스 레이어로 요청을 전달합니다. 예를 들어, 웹 애플리케이션의 컨트롤러는 웹 브라우저에서 받은 HTTP 요청을 해석하고 해당 서비스 메서드를 호출하여 데이터를 처리하거나 뷰를 랜더링합니다.

서비스(Service)

서비스 레이어는 비즈니스 로직을 처리하는 역할을 합니다. 컨트롤러로부터 받은 요청을 해석하고, 필요한 데이터 조작, 로직 실행, 데이터 검증 등을 수행합니다. 주로 여러 컨트롤러에서 공유되는 비즈니스 로직을 중앙에서 관리하고, 코드의 재사용성을 높이는 역할을 합니다. 예를 들어, 사용자등록, 주문처리, 데이터 검색 등의 기능을 제공하는 서비스가 있을 수 있습니다.

레포지토리(Repository)

레포지토리는 데이터 저장 및 검색을 담당합니다. 데이터베이스와 직접 상호작용하여 데이터를 읽고 쓰는 역할을 합니다. 서비스 레이어와 데이터베이스 사이에서 데이터에 대한 추상화 계층을 제공하여 데이터 접근과 관련된 로직을 캡슐화합니다. 이로써 데이터베이스와의 의존성을 줄이고 테스트 용이성을 향상시킵니다.

이러한 레이어드 구조는 소프트웨어를 모듈화하고, 각 레이어가 특정 역할을 수행하도록 함으로써 코드의 가독성과 유지보수성을 향상시킵니다. 또한, 레이어에 대한 변경 사항이 다른 레이어에 미치는 영향을 최소화하여 시스템의 확장성을 향상시킬 수 있습니다. 이러한 레이어드 구조는 주로 웹 애플리케이션, 백엔드 서비스, 모바일 앱 등 다양한 유형의 소프트웨어 개발에서 사용됩니다.

profile
어제 보다는 내일을, 내일 보다는 오늘을 🚀

0개의 댓글