내일배움캠프/이론 학습

3 계층 아키텍쳐 (3-tier-architecture) VS 3 레이어 아키텍쳐(3-layer-architecture)

austindynasty 2024. 12. 4. 15:08

◆ 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