소개
3 Tier Architecture는 소프트웨어 시스템의 설계 패턴 중 하나로, 클라이언트-서버 모델을 확장한 형태이다.
이 아키텍처는 세 가지 주요 계층으로 구성되어 있으며, 각각의 계층은 서로 독립적으로 운영될 수 있도록 설계되었다.
이를 통해 시스템의 유연성과 확장성을 높이고 유지보수를 용이하게 한다. 3 Tier Architecture의 각 계층은 다음과 같다.
- 프리젠테이션 계층 (Presentation Tier) - Frontend
- 사용자와 직접 상호작용하는 계층이다.
- 주로 웹 브라우저, 데스크탑 애플리케이션, 모바일 애플리케이션과 같은 클라이언트 인터페이스로 구성된다.
- 사용자 인터페이스(UI)와 사용자 경험(UX)을 관리하며, 사용자의 입력을 받아들여 이를 비즈니스 로직 계층으로 전달하고, 결과를 사용자에게 보여준다.
- 웹 브라우저에서 실행되는 HTML, CSS, JavaScript로 작성된 프론트엔드 애플리케이션이 해당한다.
- 비즈니스 로직 계층 (Business Logic Tier) - Backend
- 애플리케이션의 핵심 기능과 로직을 담당하는 계층이다.
- 주로 애플리케이션 서버에서 운영되며, 비즈니스 규칙, 데이터 처리, 트랜잭션 관리 등의 로직을 수행한다.
- 프리젠테이션 계층으로부터 받은 요청을 처리하고, 데이터 접근 계층과 상호작용하여 필요한 데이터를 가져오거나 저장한다.
- Java, .NET, Python 등으로 작성된 서버 사이드 애플리케이션이 해당한다.
- 데이터 접근 계층 (Data Access Tier) - DB
- 데이터 저장 및 관리를 담당하는 계층이다.
- 데이터베이스 관리 시스템(DBMS), 파일 시스템, 클라우드 스토리지 등으로 구성된다.
- 비즈니스 로직 계층으로부터 받은 데이터 읽기/쓰기 요청을 처리하고, 데이터를 안전하게 저장하고 검색할 수 있도록 한다.
- MySQL, PostgreSQL, MongoDB 등의 데이터베이스 시스템이 해당한다.
CI/CD (Github Action + Elastic Beanstalk) 이용한 아키텍쳐 예시