데이터베이스/데이터베이스

데이터베이스(데이터베이스(DB)의 아키텍처-역사와 개요)

benjykim 2017. 8. 17. 16:14
반응형

* 데이터베이스의 아키텍처(역사와 개요)


1) Stand-alone (~1980년대)

2) Client/Server (1990년대~2000년)

3) Web 3계층 (2000년~현재)



1) Stand-alone 

Stand-alone은 문자 그대로 데이터베이스가 동작하는 머신(여기서는 DB가 동작하는 머신을 '데이터베이스 서버' 또는 'DB 서버'로 부른다)이 LAN이나 인터넷 등의 네트워크에 접속하지 않고 '독립되어' 동작하는 구성이다.



이 구성에서는 DB의 미들웨어(DBMS)와 애플리케이션의 소프트웨어는 같은 DB 서버에서 동작한다. 따라서 DB를 사용하고 싶은 사용자는 DB서버가 설치된 장소까지 물리적으로 접근하여 서버 앞에 앉아서 DB를 사용해야 했다. 서버가 네트워크에 접속되어 있지 않아서 물리적으로 떨어진 장소에서 접근하는 것도 불가능하다.




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

: DB 서버 1대에 복수 사용자의 단말이 접속하는 구성을 Client/Server 구성이라고 한다. 이 구성은 시스템이 클라이언트와 서버의 2개 레이어(계층)로 구성되기 때문에 '2계층 구성'이라고 부른다. DB서버에서는 DBMS가 동작하고 클라이언트에서는 업무 애플리케이션이 동작하는 분업체제로 볼 수 있다.



 Client/Server의 확장

 Client/Server 구성은 클라이언트 PC와 네트워크 기술의 발전으로 1990년대에 수많은 비즈니스 시스템에 채용되었다. 또한 이 구성은 주로 기업이나 조직 내에 닫힌 네트워크(LAN)에서 이용되었다. 역으로 말하면 인터넷 등 외부 네트워크를 거쳐 DB 서버에 사용자가 접속하는 일은 없었다. ( 보안상의 위험이 증가하기 때문에 접속을 허가하지 않았다. ) 


Client/Server 구성 덕분에 복수 사용자가 물리적으로 떨어진 장소에서 접속할 수 있게 되었지만 인터넷 시대에 결정적으로 부적합한 단점을 몇 가지 안고 있었다.


단점 : 1) 인터넷에서 직접 DB에 접속하는 것에 대한 보안 위험.        

        2) 불특정 다수의 사용자가 사용하는 클라이언트에서의 애플리케이션 관리 비용 증가.




Q. 관리비용 문제란?

-> Client/Server 시대에는 개인이 이용하는 PC에 애플리케이션을 설치해 동작하게 했다. 사용자가 특정 기업이나 조직 구성원에 한정되어 있고 관리대상 PC도 적다면 문제는 없다. 그러나 인터넷을 통해 전 세계 불특정 다수의 사용자가 이용하는 애플리케이션은 각종 환경에 대응해 애플리케이션을 작성해야 하고 각각에 대해 버전 관리나 버그 수정 버전을 배포하는 데 비현실적인 비용이 필요하게 된다.


-> 이 때문에 비즈니스 로직을 실행하는 애플리케이션을 서버에서 관리해 비용을 절감하자는 요구가 나왔다. 이에 대응하기 위해 제시된 것이 'Web 3계층'이라는 구성이다.




3) Web 3계층

 - 웹 서버 계층

 - 애플리케이션 계층

 - 데이터베이스 계층 



* 웹 서버 계층과 애플리케이션 계층

: Web 3계층 구성이 클라이언트/서버 구성과 다른 점은 쉽게 알 수 있다. 클라이언트와 데이터베이스 

계층 사이에 '웹 서버 계층'과 '애플리케이션 계층'이 추가되었다.



웹 서버는 클라이언트로부터 접속 요청(HTTP 요청)을 직접 받아서 그 처리를 뒷단의 애플리케이션 계층

(애플리케이션 서버)에 넘기고 그 결과를 클라이언트에 반환한다. 즉, 애플리케이션 서버와 클라이언트 

웹 브라우저와의 가교 역할이다.



애플리케이션 계층은 비즈니스 로직을 구현한 애플리케이션이 동작하는 층이다. 웹 서버로부터 연계된

요청을 처리하고, 필요하면 DB서버(데이터베이스 계층)에 접속해서 데이터를 추출하고 이를 가공한 결과를 웹 서버로 

반환한다.




-> 이처럼 사용자로부터 직접적인 접속 요청을 받는 역할을 웹 서버 계층에 한정하여 애플리케이션 계층과 DB 계층의 보안을 높일 수 있다. 동시에 애플리케이션 계층에 비즈니스 로직을 집중해서 애플리케이션 관리 비용을 낮추는 구성이 될 수 있다.











*이 포스트는 '데이터베이스 첫걸음'책을 참고하여 작성했습니다.

반응형