안녕하세요 BTC - 진상팀입니다. 저번 포스팅에서는 클라이언트 서버 포스팅을 통해 클라이언트와 서버, 미들웨어, web server, was server등에 대해 포스팅했습니다. 이번 포스팅은 저번 포스팅과 연결된 내용으로써 아래의 링크로 접속해 연결하여 읽으면 이해하기 쉽습니다.
https://btcd.tistory.com/45?category=927633
목표
- DB 정의와 특징 알기
- DBMS 정의와 종류알기
- 2 Tier 동작 방식 알기
- 3 Tier 동작 방식 알기
데이터 베이스 (DB) 란?
여러 사람이 공유하여 사용할 목적으로 체계화해 통합, 관리하는 데이터의 집합입니다. 장성된 목록으로써 여러 응용 시스템들의 통합된 정보들을 저장하여 운영할 수 있는 공용 데이터들의 묶음이라고도 합니다.
데이터 베이스의 특징은 이와 같습니다.
데이터 베이스를 사용하면서 장단점에 대해 살펴보겠습니다.
프로그램을 만드는 과정에서 사용자들에 의해 생선 된 데이터나 프로그래머가 필요해 의해 프로그램에 넣어놓은 데이터 등 많은 데이터들이 생성되게 되는데 데이터베이스를 사용하면 중복도 최소화하며 데이터 공간도 절약되고 보안성까지 유지가 되니까 비용이 들더라도 사용하겠죠?
DBMS 란?
데이터베이스 관리 시스템(DBMS) 데이터베이스를 관리하며 응용프로그램들이 데이터베이스를 공유하며 사용할 수 있는 환경을 제공하는 소프트웨어( DB는 응용프로그램들이 직접 조작하는 것이 아닙니다.)
DBMS 종류
위 링크를 들어가시면 세계 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 명령은 반드시 세미콜론(;)으로 끝내야 합니다.
- 고유의 갑은 (’’) 따옴 표로 표시해줍니다.
- 주석처리( 한 문장-- 여러 문장/* */ )된 문장은 프로그램에서 동작하지 않습니다.
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 시스템의 장점은
- 트렌잭션 서비스(Transaction Services) 분산 시스템에서 통신장애나 컴퓨터 오류가 있더라도 데이터의 무결성을 보장
- 보안 서비스(Scurity Services) 오직 인증된 사용자에게만 중요한 작동을 허용
- 동기화 서비스(Synchronuzation Services) 여러 개의 스레드가 동시에 어떤 컴포넌트에 접근할 때 생기는 위험을 방지하는 기반 구조 제공
- 부담 균등화(Load Balanceing) 하나의 서버에 너무 많은 클라이언트 성능을 떨어뜨리는 것을 보완
2-Tier와 3-Tier 아키텍처 흐름
2-Tier의 아키텍처를 보고 흐름을 살펴보도록 하겠습니다.
- User가 도메인 네임을 통해 접속합니다.
- WebServer에서 클라이언트에 필요한 정적 파일을 제공합니다.
- WebServer는 맞는 URL과 Port를 점검한 후 Tomcat으로 보냅니다 (Mod_jk)
- 클라이언트가 필요한 정보를 입력하거나 취득할 경우 Tomcat에 정보 전달을 위해 WebServer로부터 들어오는 요청들을 AJP 프로토콜을 통해 위임합니다.
- WebServer에서 Tomcat이 서블릿 역할을 하여 DB에 있는 자료를 다시 역순으로 클라이언트에 제공합니다.
3 - Tier 아키텍처를 보며 흐름을 살펴보겠습니다.
- User가 도메인 네임을 통해 접속합니다.
- WebServer에서 클라이언트에 필요한 정적 파일을 제공합니다.
- WebServer는 맞는 URL과 Port를 점검한 후 WAS로 보냅니다 (Mod_jk)
- 클라이언트가 필요한 정보를 입력하거나 취득할 경우 WasServer에 정보 전달을 위해 WebServer로부터 들어오는 요청들을 AJP 프로토콜을 통해 위임합니다.
- WasServer에서 Tomcat이 서블릿 역할을 하여 DB에 있는 자료를 다시 역순으로 클라이언트에 제공합니다.
이로써 DB와 Ntier에 대해 알아보았습니다.
기본적인 DB에 대한 이해와 아키텍처의 흐름을 알게 되면
인프라 구축 시 도움이 될 수 있습니다.
'IT KNOWLEDGE' 카테고리의 다른 글
인프라 관리자가 봐야할 컴퓨터 부품 선정 (0) | 2022.04.29 |
---|---|
Datadog 자격증에 대해 알아봅시다! (0) | 2022.04.27 |
AWS Certified Solutions Architect Professional 자격증에 대해 알아보자! (0) | 2022.04.20 |
서버의 정의 및 종류, 선정 (0) | 2022.04.19 |
오픈소스 활용하기 (2) - Apache (0) | 2022.04.15 |
댓글