카테고리 없음

3계층 구조(3 Tier- Architecture)

daisy7942 2024. 7. 1. 01:27

<기초 지식>

Web

인터넷을 기반으로 한 정보를 공유, 검색할 수 있게 하는 서비스

URL(주소),HTTP(통신규약),HTML(내용)

 

Server

클라이언트에게 네트워크를 통해 정보나 서비스를 제공하는 컴퓨터 시스템

 

Web Server

인터넷을 기반으로 클라이언트에게 웹 서비스를 제공하는 컴퓨터

 

3계층 구조(3 Tier- Architecture) 

정의: 브라우저(프레젠테이션계층)-서버-데이터 계층으로 구성되어 있습니다.  이 구조는 각 계층의 역할을 명확히 분리하여 모듈화된 설계와 유지보수를 가능하게 해줍니다. 

프레젠테이션 계층 (브라우저)  : 나는 책을 읽는 사람이야.    

이것은 컴퓨터나 스마트폰에서 사용하는 인터넷 창문이에요. 유튜브나 네이버 같은 웹사이트를 볼 때 사용하죠. 여러분이 뭔가를 보고 싶거나 요청하고 싶을 때 이 창문을 통해 말하는 거예요. (브라우저=클라이언트=프리젠테이션 계층)

역할: 사용자와 직접 상호작용,  웹 브라우저에서 UI를 제공하고,

        사용자가 입력한 데이터를 서버에 전달

기술: HTML, CSS, JavaScript 등을 사용하여 웹페이지를 렌더링


비즈니스 로직 계층 (서버)  :  나는 도서관 사서야.  

서버는 인터넷의 도서관 사서 같아요. 여러분이 브라우저를, 통해 뭔가를 요청하면, 서버가 그 요청을 받아들이고 필요한 정보를 찾아 다시 여러분에게 보내줍니다.

역할: 애플리케이션의 핵심 로직을 처리. 사용자 요청을 받아 비즈니스 규칙에 따라 처리한 후, 데이터베이스와 상호작용

기술: Node.js, Python (Django, Flask), Java (Spring), PHP 등 다양한 서버 기술이 사용된다. 인증, 권한 관리, 데이터 유효성 검사, 캐싱 등의 기능을 구현


데이터 계층 (데이터베이스)  : 나는 도서관이야.  책들이 많이 보관되어 있어.

 이건 인터넷의 큰 창고라고 생각하면 돼요. 모든 중요한 정보가 여기에 저장되어 있어요. 예를 들어, 유튜브 동영상들이나 네이버의 뉴스 기사들이 이 창고에 보관되어 있습니다.

역할: 데이터를 저장하고 관리하는 계층. 서버의 요청에 따라 데이터를 삽입, 수정, 삭제, 조회.

기술: 관계형데이터베이스(MySQL, PostgreSQL)나 NoSQL 데이터베이스 (MongoDB, Oracle) 가 주로 사용됩니다.    ORM(Object-Relational Mapping)을 통해 애플리케이션 계층과 효율적으로 연동됩니다.


 

어떻게 서로 연결될까요?

  • 브라우저에서 요청: 네가 검색창에 보고싶은 것을 입력해. (예: 강아지 동영상 보기)
  • 서버로 이동: 서버가 너의 요청을 받아서, 데이터베이스에 필요한 정보를 찾으러 가.
  • 데이터베이스에서 찾기: 데이터베이스가 강아지 동영상을 찾아서 서버에게 줘.
  • 서버가 전달: 서버가 그 정보를 다시 브라우저로 보내줘.
  • 브라우저에 보여줌: 브라우저가 강아지 동영상을 네 화면에 보여줘.

장점

1. 신속한 개발 : 각 계층이 서로 다른 팀에서 동시에 개발될 수 있으므로 업무 효율성이 증가고 신속한 어플리케이션 출시가 가능해집니다.

2. 확장성 개선 필요에 따라 임의의 계층을 다른 계층과 독립적으로 확장할 수 있습니다.

3. 안정성 향상 : 각 계층이 명확하게 분리되어 있기 때문에 한 계층의 가동 중단이 다른 계층에 미치는 영향이 적습니다.

4. 보안성 강화 : 클라이언트가 데이터베이스와 직접 통신할 수 없기 때문에 보안성도 강화됩니다.

 

단점

1. 초기개발의 복잡성 증가

2. 각 계층 간 통신으로 인한 약간의 성능 저하 가능성


 

결론적으로,  3계층 구조는?

3계층 구조는 프레젠테이션계층, 비즈니스 계층, 데이터 계층으로 나누어, 각 계층이 독립적으로 관리될 수 있습니다.  코드의 유지보수성을 높이고, 시스템을 확장하기 쉽게 만드는 장점을 가지고, 이 구조를 통해 각 계층은 명확하게 역할을 분담하여 개발과 유지보수를 효율적으로 진행할 수 있습니다.

 


 

+ 더 알아보고 싶다면 +

 

등장배경

초기의 정적 웹페이지에서 시작하여, 동적 콘텐츠와 복잡한 상호작용이 요구되는 현대의 웹 애플리케이션으로 발전하면서, 더욱 체계적이고 효율적인 구조의 필요성이 대두되었습니다. 3계층 구조는 이러한 요구에 대한 해답으로, 1990년대 중반부터 널리 채택되기 시작했습니다.

 

구현시 고려사항

1. 계층 간 연계 : 계층 간 명확한 인터페이스와 통신 메커니즘을 정의해야 합니다.

2. 성능 최적화 : 각 계층의 로직과 데이터 전달을 최적화하여 전체 시스템 성능을 높여야 합니다.

3. 보안 및 안전성 : 데이터 무결성과 보안, 장애 대응 등 비기능적 요구사항을 고려해야 한다.

 

미래전망

1. 마이크로서비스 아키텍처와의 결합

2. 서버리스 컴퓨팅의 도입

3. 엣지 컴퓨팅을 활용한 성능 개선, 이러한 변화 속에서도 3계층 구조의 기본 원칙은 여전히 유효.

 

 

사진 참고 : https://jaws-coding.tistory.com/9

 

3계층 구조(3 Tier- Architecture) 이해하기 [스마트인재개발원]

3계층 구조(3 Tier- Architecture) 란? 어떠한 플랫폼을 3계층으로 나누어 별도의 논리적/물리적인 장치에 구축 및 운영하는 형태 웹 서버 운영을 예로 들면 서버 한대에 한꺼번에 모든 기능들을 구축

jaws-coding.tistory.com

 

https://velog.io/@tamagoyakii/TIL-24%EC%9D%BC%EC%B0%A8-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4-%EA%B4%80%EA%B3%84%ED%98%95-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4#%EF%B8%8F-3-tier-architecture

 

TIL 24일차 - [데이터베이스] 관계형 데이터베이스

In-MemoryJavaScript에서 데이터를 다룰 때 저장할 수 있는 데이터이다. 프로그램이 실행될 때에만 존재하는 데이터이며 데이터의 수명이 프로그램의 수명에 의존하기 때문에 데이터의 보호가 힘들

velog.io