본문 바로가기
IT KNOWLEDGE

데이터베이스 (DB) 와 N - Tier

by BTC_WOOK 2022. 4. 21.

안녕하세요 BTC - 진상팀입니다. 저번 포스팅에서는 클라이언트 서버 포스팅을 통해 클라이언트와 서버, 미들웨어, web server, was server등에 대해 포스팅했습니다. 이번 포스팅은 저번 포스팅과 연결된 내용으로써 아래의 링크로 접속해 연결하여 읽으면 이해하기 쉽습니다.

https://btcd.tistory.com/45?category=927633

 

Client(클라이언트) / Server(서버)

안녕하세요. BTC-진상팀입니다. 이번엔 (https://btcd.tistory.com/9?category=927633)에 이어 클라이언트와 서버에 관해 포스팅하겠습니다. 클라이언트와 서버 클라이언트 / 서버 이해하기 Web서버와 WAS 이해

btcd.tistory.com


목표

  1. DB 정의와 특징 알기
  2. DBMS 정의와 종류알기
  3. 2 Tier 동작 방식 알기
  4. 3 Tier 동작 방식 알기

데이터 베이스 (DB) 란?

여러 사람이 공유하여 사용할 목적으로 체계화해 통합, 관리하는 데이터의 집합입니다. 장성된 목록으로써 여러 응용 시스템들의 통합된 정보들을 저장하여 운영할 수 있는 공용 데이터들의 묶음이라고도 합니다.

데이터 베이스의 특징은 이와 같습니다.

데이터 베이스를 사용하면서 장단점에 대해 살펴보겠습니다.

프로그램을 만드는 과정에서 사용자들에 의해 생선 된 데이터나 프로그래머가 필요해 의해 프로그램에 넣어놓은 데이터 등 많은 데이터들이 생성되게 되는데 데이터베이스를 사용하면 중복도 최소화하며 데이터 공간도 절약되고 보안성까지 유지가 되니까 비용이 들더라도 사용하겠죠?


DBMS 란?

데이터베이스 관리 시스템(DBMS) 데이터베이스를 관리하며 응용프로그램들이 데이터베이스를 공유하며 사용할 수 있는 환경을 제공하는 소프트웨어( DB는 응용프로그램들이 직접 조작하는 것이 아닙니다.)

DBMS 종류

 

DB-Engines Ranking

Popularity ranking of database management systems.

db-engines.com

위 링크를 들어가시면 세계 DB 시장 점유율을 확일할 수 있습니다.
대표적인 DBMS를 살짝 살펴보겠습니다. (글 쓴 날짜 기준 1위부터 4위까지)

 

관계형 DBMS

DBMS의 유형은 계층형(Hierarchical), 망형(Network), 관계형(Relational), 객체지향형(Object-Oriented),
객체 관계형(Object-Relational) 등으로 분류됩니다. 
현재 사용되는 DBMS 중에는 관계형 DBMS가 가장 많은 부분을 차지합니다.
  • 테이블 단위라는 최소 단위로 구성되어 있습니다.
  • 하나 이상의 행과 열로 이루어져 있습니다.

 

SQL이란 무엇인가?

SQL은 특정회사에서 만드는 것이 아니라 국제표준화기구에서 SQL에 대한 표준을 정해서 발표하고 있다고 합니다. 그래서 표준 SQL을 익히면 대부분의 DBMS에 공통적으로 적용할 수 있습니다.
  • Structured Query Language (구조적 질의 언어)
  • RDBMS에서 자료를 관리, 처리하기 위해 설계된 언어
  • SQL 명령은 반드시 세미콜론(;)으로 끝내야 합니다.
  • 고유의 갑은 (’’) 따옴 표로 표시해줍니다.
  • 주석처리( 한 문장-- 여러 문장/* */ )된 문장은 프로그램에서 동작하지 않습니다.

SQL 문법의 종류


2 - Tier

  • 2-Tier란 WebServer가 DB에 연결되는 형태를 말합니다.
  • 2-Tier 구조는 트래픽이 많지 않은 경우 자주 사용되는 구조입니다.
  • 2-Tier 기반의 클라이언트/서버 환경은 애플리케이션 개발의 가장 일반적인 방법으로 하나의 클라이언트에 서버 프로세스가 하나씩 생성되는 방식입니다.
  • 2-Tier의 장점
    • 단순한 아키텍처
    • 정보 접근 개선
    • 효율적인 자원의 사용
    • 생산성 향상
  • 2-Tier의 단점
    • 확장이 쉽지 않다.
    • 네트워크 트래픽으로 인한 성능 저하
    • 유지보수가 어렵다.
  • 시스템 적용 기준
    • 단순 조회용이나 검색 위주의 시스템
    • 트랜잭션 부하가 가벼운 부서 단위의 소규모 시스템
    • 특정 데이터베이스에 대한 액세스를 중심으로 하는 정보 시스템
    • 그 외에는 스케일 UP을 통해 3-Tier 못지않은 성능을 내기도 합니다.

 

3 - Tier

  • 3-Tier란 WebServer(Client) - WasServer(AppServer) - DB Server의 형태를 말합니다.
  • 3-Tier의 장점
    • 성능 증진
    • 확장성 용의
    • 개발 생산성 향상
    • 유지보수성이 용의
  • 3-Tier의 단점
    • 3 tier구조는 백엔드 전용 서버가 있어서 무거운 작업을 처리하기에 2-tier보다 성능이 좋으나, 구조가 복잡한 단점이 있습니다.
    • 시스템이 복잡해진다.
    • 비용 증가
  • 시스템 적용 기준
    • 클라이언트 수가 많은 전사 규모의 시스템
    • 이기종 데이터를 통합적으로 액세스 하는 시스템
    • 이기종 시스템을 포함하는 통합 시스템
    • 빠른 응답 시간을 필요로 하고 트랜잭션 처리를 필요로 하는 시스템 등..

3-Tier가 2-Tier보다 구축기간이 길다고 하지만 구축만 한다면 장점은 더욱 많다는 것은 사실입니다.

3-Tier 시스템의 장점

  1. 트렌잭션 서비스(Transaction Services) 분산 시스템에서 통신장애나 컴퓨터 오류가 있더라도 데이터의 무결성을 보장
  2. 보안 서비스(Scurity Services) 오직 인증된 사용자에게만 중요한 작동을 허용
  3. 동기화 서비스(Synchronuzation Services) 여러 개의 스레드가 동시에 어떤 컴포넌트에 접근할 때 생기는 위험을 방지하는 기반 구조 제공
  4. 부담 균등화(Load Balanceing) 하나의 서버에 너무 많은 클라이언트 성능을 떨어뜨리는 것을 보완

 

2-Tier와 3-Tier 아키텍처 흐름

2-Tier의 아키텍처를 보고 흐름을 살펴보도록 하겠습니다.

  1. User가 도메인 네임을 통해 접속합니다.
  2. WebServer에서 클라이언트에 필요한 정적 파일을 제공합니다.
  3. WebServer는 맞는 URL과 Port를 점검한 후 Tomcat으로 보냅니다 (Mod_jk)
  4. 클라이언트가 필요한 정보를 입력하거나 취득할 경우 Tomcat에 정보 전달을 위해 WebServer로부터 들어오는 요청들을 AJP 프로토콜을 통해 위임합니다.
  5. WebServer에서 Tomcat이 서블릿 역할을 하여 DB에 있는 자료를 다시 역순으로 클라이언트에 제공합니다.

3 - Tier 아키텍처를 보며 흐름을 살펴보겠습니다.

  1. User가 도메인 네임을 통해 접속합니다.
  2. WebServer에서 클라이언트에 필요한 정적 파일을 제공합니다.
  3. WebServer는 맞는 URL과 Port를 점검한 후 WAS로 보냅니다 (Mod_jk)
  4. 클라이언트가 필요한 정보를 입력하거나 취득할 경우 WasServer에 정보 전달을 위해 WebServer로부터 들어오는 요청들을 AJP 프로토콜을 통해 위임합니다.
  5. WasServer에서 Tomcat이 서블릿 역할을 하여 DB에 있는 자료를 다시 역순으로 클라이언트에 제공합니다.

 

이로써 DB와 Ntier에 대해 알아보았습니다.
기본적인 DB에 대한 이해와 아키텍처의 흐름을 알게 되면
인프라 구축 시 도움이 될 수 있습니다.

댓글