계층 설명 | 기술 스택 | 예시 |
---|---|---|
프레젠테이션 계층 | 사용자 인터페이스(UI)와 사용자 경험(UX)을 담당, 클라이언트 사이드에서 실행 | HTML, CSS, JavaScript, React, Angular |
애플리케이션 계층 | 비즈니스 로직 처리, 데이터 처리 및 검증을 수행 | Java, Python, PHP, Ruby, Node.js |
데이터 계층 | 데이터베이스와의 연결 및 데이터 관리를 담당 | MySQL, PostgreSQL, MongoDB, Redis |
3 티어 아키텍처는 소프트웨어 시스템을 프레젠테이션 계층, 애플리케이션 계층, 데이터 계층으로 나누어 관리하는 구조를 말합니다. 이 아키텍처는 각 계층의 역할과 책임을 명확히 분리하며, 독립적인 개발과 유지보수를 가능하게 합니다.
프레젠테이션 계층은 사용자 인터페이스(UI)와 사용자 경험(UX)을 담당하는 계층으로, 클라이언트 사이드에서 실행됩니다. 이 계층은 사용자의 요청을 입력받아 애플리케이션 계층에 전달하고, 처리된 결과를 사용자에게 보여주는 역할을 수행합니다. 주로 HTML, CSS, JavaScript 등의 웹 기술을 사용하며, React나 Angular와 같은 프레임워크를 활용할 수 있습니다.
애플리케이션 계층은 비즈니스 로직 처리와 데이터 처리 및 검증을 수행하는 계층으로, 서버 사이드에서 실행됩니다. 이 계층은 사용자로부터 전달받은 요청을 데이터 계층에 전달하여 데이터 처리를 진행한 후, 결과를 프레젠테이션 계층에 전달합니다. Java, Python, PHP, Ruby, Node.js 등의 프로그래밍 언어와 프레임워크를 사용해 개발할 수 있습니다.
데이터 계층은 데이터베이스와의 연결 및 데이터 관리를 담당하는 계층으로, 데이터의 저장, 검색, 수정, 삭제 등의 작업을 수행합니다. 관계형 데이터베이스(RDBMS)나 NoSQL 데이터베이스 등 다양한 데이터베이스 시스템을 사용할 수 있으며, SQL 쿼리나 ORM(Object Relational Mapping) 기술을 활용해 데이터 처리를 진행합니다. 대표적인 데이터베이스로는 MySQL, PostgreSQL, MongoDB, Redis 등이 있습니다.
3 티어 아키텍처를 사용함으로써 각 계층의 역할과 책임이 명확하게 분리되어 개발 및 유지보수가 용이해집니다. 또한, 각 계층별로 다른 기술 스택을 사용할 수 있어 유연한 개발이 가능하게 되고, 시스템의 안정성과 확장성이 높아질 수 있습니다. 이러한 이유로 많은 웹 애플리케이션 및 소프트웨어 시스템에서 3 티어 아키텍처를 채택하고 있습니다.