3계층 아키텍처

이재문·2022년 3월 5일
2
post-thumbnail

오늘 친구와 밥을 먹으며 이야기를 하다 '아키텍처'가 뭔지 아는지 질문을 해 왔다.
그때 나는 당연히 컴퓨터 부품(cpu, 하드디스크 등)을 이야기 하는줄 알았는데
친구가 "개발자가 아키텍처를 몰라? 3계층 몰라?" 라고 묻길래, 나는 "7layer? tcp/ip 7계층? 말하는거냐?"라고 답했다.

내가 말한 '아키텍처'가 컴퓨터 HW구조는 맞다. 하지만 친구가 질문한 '아키텍처'는 '애플리케이션 아키텍처'이다.
이 게시물에서는 '3계층 아키텍처'를 그냥 '아키텍처'라 칭하겠다.

'3계층 아키텍처' 가 무엇인가?

한 애플리케이션을 3개의 논리적/물리적 컴퓨팅 계층으로 나누어 구현 및 운영하는 것이다. 예를 들면 하나의 웹 사이트를 서비스 할 때
데이터베이스, 웹 서버, 클라이언트(프레젠테이션)로 3개로 나누는 기준과 같다.

계층별 개념

  1. 프레젠테이션 계층(presentation tier)
    front-end라고도 불리고 사용자 인터페이스를 지원한다. 정적 또는 동적일 수 있으며, 일반적으로 HTML, CSS 및 Javascript를 사용하여 개발됩니다.
  2. 어플리케이션 계층(application tier)
    back-end라고도 불리고 요청을 정해진 로직에 따라 정보를 처리하는 단계이다.
    실질적인 기능을 처리하는 계층이다. 요청에 따라 데이터를 다른 계층에 전달 할 수 있다. WAS(Web Applicatioin Server)라고도 부른다.
  3. 데이터 계층(data tier)
    DB와 DB에 접근하여 Data를 관리하는것이다. DB서버, back-end라고도 부른다.

계층 구조별 차이

계층뿐 아니라 계층이 이루어진 구조마다 특징이 있다.
구조는 1계층 구조, 2계층 구조, 3계층 구조로 구분할 수있다.

1계층 구조

1계층 구조는 하나의 컴퓨터 또는 서버에서 3가지 계층 기능을 구현한 방식이다. 컴퓨터가 바뀌는 경우 모든 구성을 변경해야하는 번거로움이 있다.

2계층 구조

2계층 구조는 쉽게 생각하면 front-end와 back-end를 나누는 것이라고 생각하면 된다. 프레젠테이션 계층은 어플리케이션 계층과 데이터 계층이 분리되어 구성하기 때문에 데이터베이스가 변경되거나 프레젠테이션이 변경되더라도 영향을 받지 않는다.

3계층 구조

3계층 구조는 각각의 계층이 구분되는 것이다. 모든 계층이 물리적으로 분리되어 있기 때문에 한 계층이 변경되더라도 다른 계층에 영향이 가지 않는다.


profile
이제부터 백엔드 개발자

0개의 댓글