ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • DBMS가 Sever-Client 구조를 취하게 된 이유
    Programming/BackEnd 2020. 5. 3. 20:19

     과거의 서버-클라 구조에서는 서버와 DB가 따로 분리되어 있지 않았다. DataBase의 크기가 커지게 되면, 트래픽을 분산시키기 위해 동일한 시스템의 서버와 DB를 '복사 붙여넣기'하듯 확장시켜야 한다는 의미이다.
    크레이지아케이드를 생각해보면 해피서버와 드림서버가 있는데 이는 위와 같은 구조를 취하고 있다고 생각할 수 있다. 해피서버와 드림서버는 동일한 시스템 구조를 갖고 있지만 별도의 DataBase를 갖고 있었기 때문에 두 서버의 사용자는 만날 수 없었던 것이다. 즉, 해피서버의 유저는 드림서버에 존재하지 않는 유저이다. 이 때, 동일한 시스템의 서버와 DB를 여러 개로 계속 확장시키는 것은 비효율적이라는 생각을 할 수 있다. 
     

     이러한 비효율성으로 인해 최근에는 커다란 DB서버 1개를 구축하고 여러 개의 웹서버를 구축하는 방식으로 시스템이 바뀌었다. 구글을 생각해보면 이해가 쉽다. 구글의 커다란 데이터베이스 1개에 유저들의 정보가 모두 저장된다. 이 하나의 데이터베이스 서버를 두고 여러 대의 웹서버를 구축하여 서로 다른 서비스에서 동일한 구글계정을 사용할 수 있는 것이다.
    즉, 여러 개의 서버를 구축하고 서로 다른 서버는 하나의 큰 데이터베이스를 공유하는 것이다.

     서버 클라이언트는 1:N구조이다. 과거에는 트래픽량이 많지 않아 여러 서버를 둘 필요가 없었지만, 트래픽이 증가함에따라 서버를 여러 대를 구축할 필요가 생김으로써 데이터베이스 서버를 구축하고 이 서버와 여러 웹서버를 서버-클라 구조로 활용할 수 있게 된 것이다.

     데이터베이스 서버는 mysql, oracle, mssql 등 이 있다. mysql workbanch, data grip 과 같은 클라이언트 프로그램을 통해 db서버에 접속할 수 있다.

    외부ip로 db서버에 접속하기 위해서는 권한을 얻기 위한 여러가지 설정을 해줘야 하고,

    로컬에서 접속할 때는 phpmyadmin과 같이 특별한 인증없이 접속이 가능하다.

    DataGrip은 mysql서버에 접속하기 위한 클라이언트 프로그램이다


Designed by Tistory.