IT 기초/Application

3 Tier

데이터 세상 2021. 12. 27. 10:25

3 tier 웹 어플리케이션의 정의와 구성방식

 

3-tier Web Architecture란

  • 레젠테이션 로직(클라이언트, 사용자 인터페이스), 비즈니스 로직, 데이터베이스 로직을 각각 다른 플랫폼 상에서 구현한 것
  • 계층(Tier): 컴포넌트들의 물리적인 분리
  • 층(Layer): 컴포넌트들의 논리적인 분리


1-tier

클라이언트 서버에서 모든걸 지원하므로 새로운 컴퓨터를 사용하고자 할 경우 모두 새로 변경해야 한다는 단점(한가지 로직을 바꾸려면 다른 로직의 변경도 필요함)이 있음

2-tier

Client Tier와 Data Tier로 2개의 물리적 컴퓨터로 구분
클라이언트와 서버를 분리하여 어플리케이션과 데이터베이스가 분리되어있기 때문에 데이터베이스의 변경이 편리한 장점을 가짐

3-tier

3계층 구조에서 각 계층은 물리적으로도 독립적이며 각 계층의 변경이 다른 계층에 의존하지 않는다. 

 

1. 프레젠테이션(클라이언트) 계층

프레젠테이션 계층은 응용 프로그램의 최상위에 위치하고 있는데 이는 서로 다른 층에 있는 데이터 등과 커뮤니케이션을 한다.

- 사용자 인터페이스를 지원한다. (인터넷 브라우저의 정적인 데이터를 제공한다.)    

- 이 계층은 GUI, 또는front-end도 불린다.

- 비즈니스로직이나 데이터관리코드를 포함해서는 안된다.

- 주로 웹서버를 뜻한다(물리적 : WEB서버)

ex) HTML, javascript, CSS, image

    

2. 애플리케이션 계층

이 계층은 비즈니스 로직 계층 또는 트랜잭션 계층이라고도 하는데, 비즈니스 로직은 워크스테이션으로부터의 클라이언트 요청에 대해 마치 서버처럼 행동한다.

차례로 어떤 데이터가 필요한지를 결정하고, 메인프레임 컴퓨터 상에 위치하고 있을 세 번째 계층의 프로그램에 대해서는 마치 클라이언트처럼 행동한다.

- 정보처리의 규칙을 가지고 있다.(동적인 데이터를 제공한다)

- middleware 또는 back-end로 불린다.

- 프레젠테이션코드나 데이터관리 코드를 포함해서는 안된다.

-주로 어플리케이션 서버를 뜻한다(물리적 : WAS서버)

ex) Java EE, ASP.NET, PHP

    

3. 데이터 계층

데이터 계층은 데이터베이스와 그것에 액세스해서 읽거나 쓰는 것을 관리하는 프로그램을 포함한다.

애플리케이션의 조직은 이것보다 더욱 복잡해질 수 있지만, 3계층 관점은 대규모 프로그램에서 일부분에 관해 생각하기에 편리한 방법이다.

-데이터베이스를 주로 뜻한다.

-DB 또는 File System를 접근 및 관리한다.

-back-end라고도 불린다.

-주로 DB서버를 뜻한다(물리적 : DB서버)

ex) MySQL DB, Oracle DB

 

3계층구조를 사용하면 각 계층별로 웹디자이너, 소프트웨어엔지니어, DB관리자가 역할분담을 하여 일을 효율적으로 할 수 있다.

회사 규모 및 사용자의 증가에 따라서 1,2,3계층 구조를 고려해야 한다.(물론 비용은 3계층으로 갈수록 많이 든다.)

 

3-Tier Web Architecture 보안 강화 방안

사용자 인증

  • 미들 티어가 사용자 ID 인증에 대한 책임을 담당

사용자 액세스 제어

  • 시스템에 사용자 ID가 인증되면 시스템은 시스템 내 데이타, 애플리케이션 및 자원에 대한 사용자의 액세스를 제어해야 한다.
  • 시스템은 사용자가 엑세스할 수 있는 대상을 제어하는 것 뿐만 아니라 어떻게 엑세스하는가에 대해서도 지원해야 한다.

사용자 데이터 보호

  • 암호화 등을 통해 티어 간에 교환되는 데이터는 부주의에 의한 노출 또는 수정을 방지해야 한다

사용자 활동 추적

  • 감사를 통한 책임 규명(Accountability)는 정보 보안의 기본 원칙

미들 티어의 권한 제한

  • 데이타베이스가 미들 티어의 권한을 제한함으로써 데이타베이스가 특정 미들 티어의 특정 사용자를 대신한 활동 또는 특정 권한 보유 등을 제한할 수 있도록 하는 것이 바람직

티어 전반의 ID 및 계정 관리

  • 새로운 사용자가 시스템에 추가될 때 ID, 계정 그리고 이 사용자를 위한 권한이 미들 티어와 데이타베이스 모두에서 작성되어야 한다.

References

반응형

'IT 기초 > Application' 카테고리의 다른 글

[Application] Node.js  (0) 2021.12.31
[Application] Spring  (0) 2021.12.31
[Application] React  (0) 2021.12.31
[Application] Web Application Framework  (0) 2021.12.29
CI/CD  (0) 2021.12.27