◆ 3계층 아키텍쳐 ( 3-tier-architecture )
: 프레젠테이션 계층 (사용자 인터페이스) / 데이터가 처리되는 애플리케이션 계층 / 데이터가 저장 및 관리되는 데이터 계층 이라는 3개의 논리적이고 물리적인 컴퓨팅 계층으로 구성하는 확립된 소프트웨어 애플리케이션 아키텍쳐
1) 프레젠테이션 계층
- 일반 사용자가 애플리케이션과 상호작용하는 애플리케이션의 사용자 인터페이스 및 커뮤니케이션 계층
- 최상위 레벨 계층으로 일반적으로 HTML, CSS 및 JacaScript를 사용해 개발
2) 애플리케이션 계층
- 논리 계층 혹은 중간 계층이라고 하는 애플리케이션 핵심 계층
- 특정 비즈니스 규칙 세트인 비즈니스 논리를 사용하여 프레젠테이션 계층에서 수집된 정보가 처리된다.
- 데이터 계층의 데이터를 추가, 삭제 또는 수정할 수 있다.
- 일반적으로 Java, Python, PHP 와 같은 언어들을 사용해 개발되며 API 호출을 사용하여 데이터 계층과 통신한다.
3) 데이터 계층
- 데이터베이스 계층, 백엔드라고도 불리는 계층으로 애플리케이션이 처리하는 정보가 저장 및 관리되는 곳
- 관계형 데이터베이스 관리 시스템(PostgreSQL, MySQL, MariaDB, Oracle 등) 혹은 NoSQL 데이터베이스 서버(CouchDB, MongoDB)를 지칭한다.
- 3 계층 애플리케이션에서는 모든 통신이 애플리케이션 계층을 통과하며 프레젠테이션 계층과 데이터 계층은 서로 직접 통신할 수는 없다.
4) 계층 대 레이어
- 3 계층 아키텍쳐에 대한 논의에서 레이어는 종종 계층과 혼동되어 잘못 사용된다. (프레젠테이션 레이어 혹은 비즈니스 논리 레이어처럼)
- 계층은 다른 분할과 구분된 인프라에서 실행되는 소프트웨어의 기능적 분할을 의미한다.
- 레이어는 소프트웨어의 기능적 분할을 의미한다.
특징 | 3 레이어 아키텍쳐 | 3 계층 아키텍쳐 |
구분 방식 | 논리적으로 구분 (코드 구조) | 물리적으로 구분 (서버 구조) |
초점 | 애플리케이션 내부의 역할 분리 | 시스템 전반의 계층적 분리 |
운영 환경 | 같은 서버에서 동작 | 각 계층이 서로 다른 서버에서 동작 가능 |
유형 | 개발자 관점의 소프트웨어 설계 | 시스템 관점의 네트워크 설계 |
예시 | 한 서버에서 Service, DAO, UI 를 분리 | 클라이언트, API 서버, DB 서버로 분리 |
◆ 3 레이어 아키텍쳐
: 애플리케이션 내부 구조를 설계하는 방식으로 명확한 역할을 가지고 서로 독립적으로 동작하는 3개의 레이어로 이루어지며 같은 서버 내에서 동작하며 물리적인 분리 없이 논리적으로 구분된다.
1) 프레젠테이션 레이어 (UI 레이어)
- 사용자와 상호작용하는 부분
- 화면, 버튼, 폼 등의 요소를 처리하며 사용자 입력을 수집하고 결과를 표시
- 예시 : HTML, CSS, REACT, JSP 등
2) 비즈니스 로직 레이어 (서비스 레이어)
- 애플리케이션의 핵심 로직이 구현되는 부분
- 데이터를 처리하고, 계산하거나, 비즈니스 규칙을 적용
- 예시 : Java의 서비스 클래스, Python의 비즈니스 로직 모듈 등
3) 데이터 액세스 레이어 (퍼시스턴스 레이어)
- 데이터베이스와 상호작용하며 데이터를 읽고, 쓰고, 삭제
- 데이터베이스 쿼리 및 데이터 접근 로직이 포함됨
- 예시 : DAO,JPA 등
쉽게 설명하자면,
3 레이어 아키텍쳐는 한 회사의 내부 부서처럼 같은 건물에서 다른 역할을 수행하는 팀이 있는 것이고
3 계층 아키텍쳐는 서로 다른 지역에 위치한 사무소처럼 물리적으로 분리된 장소에서 일하지만 협력해서 하나의 비즈니스 목표를 이루는 것
이라고 이해할 수 있다.
참고 사이트 : https://www.ibm.com/kr-ko/topics/three-tier-architecture
3계층 아키텍처란? | IBM
3계층 아키텍처는 애플리케이션을 프리젠테이션 계층, 애플리케이션 계층 및 데이터 계층으로 분리합니다.
www.ibm.com
'내일배움캠프 > 이론 학습' 카테고리의 다른 글
SQL ( Structured Query Language ) 기초 (3) | 2024.10.15 |
---|