[3] 데이터베이스 서버 – SQL 첫걸음

클라이언트 <-> 서버

많은 RDBMS가 클라이언트/서버 모델을 채택해 가동 중입니다. 특히 웹 시스템과 연동하는 RDBMS라면, 접속자 수가 수백 명에 달하는 전용 데이터베이스 서버를 운용하는 일도 드물지 않습니다.

클라이언트/서버 모델

RDBMS는 여러 클라이언트가 보내오는 요청에 응답할 수 있도록 클라이언트/서버 모델로 동작합니다. 클라이언트는 서버에 접속 요청이나 SQL 명령 실행요청을 보낼 수 있습니다. 서버는 이를 처리하고 클라이언트에 그 결과를 반환합니다.

일반적인 RDBMS는 하나의 서버를 두고 사용하는데 저같이 공부하는 공돌이들은 그 비싼 서버를 두고 공부할 수 없습니다. 제가 예전에 네트워크 공부하려고하는데 스위치랑 라우터가 너무 비싼 이유랑 비슷합니다.

이럴땐 대신할만한 뭔가를 찾고 그 것으로 공부하겠죠? 앞에서 MySQL을 설치한 이유가 여기있습니다. 앞에서 설치함으로써 설치된 그 컴퓨터가 이제 클라이언트와 서버 모두를 실행시켜 공부할 준비가 된 것입니다.

 

1. 클라이언트/서버 모델

– 웹 시스템에서의 클라이언트/서버 모델

웹 시스템에서의 클라이언트/서버 모델

클라이언트/서버 모델의 예시로 네이버에 접속한다는 것으로 표현해보겠습니다.

A가 자신의 노트북을 사용해 ‘크롬’이라는 프로그램을 통해 ‘네이버(www.naver.com)’에 접속을 시도하면, 네이버 웹 서버는 ‘www.naver.com’에 알맞는 웹페이지를 전송해 줍니다. 분리해서 생각하면 아래와 같습니다.

  • 클라이언트(Client) : A의 노트북
  • 서버(Server) : 네이버 웹 서버
  • 요청(Request) : 네이버에 접속 시도
  • 응답(Response) : ‘www.naver.com’의 웹페이지 전송

– RDBMS의 클라이언트/서버

사용자 인증

RDBMS도 웹 시스템과 마찬가지로 클라이언트/서버 모델로 시스템이 구성됩니다. 하지만 단순히 요청과 응답을 되풀이하는 것은 아닙니다.

먼저, 웹 시스템에는 없었던 사용자 인증이 필요합니다. RDBMS는 사용자 별로 데이터베이스 접근을 제한할 수 있습니다. 사용자 인증은 사용자 ID와 비밀번호로 실행됩니다.

앞에서 MySQL을 설치 하셨다면 사용자 인증을 이미 해보신 것입니다. 아래 그림과 같은 상황에선 사용자 ID ‘root’ 와 비밀번호를 통해 서버에 연결하는 것임을 보실 수 있습니다.

MySQL 설치 중 서버 접속

– SQL명령 실행

RDBMS에 접속하면 SQL 명령을 서버에 보낼 수 있습니다. 서버가 가동 중이고 네트워크에도 연결되어 있다면, 클라이언트에서 SQL 명령을 보낼 때 서버는 응답할 것입니다. 일단 한번 데이터베이스에 접속하면 이를 유지하여 재접속 없이 SQL 명령을 여러 번 보낼 수 있습니다.

 

2. 웹 애플리케이션의 구조

웹 애플리케이션은 일번적으로 ‘웹 서버 + 데이터베이스 서버’의 조합으로 구축됩니다.

앞서 설명한 것 처럼 웹 시스템은 다음과 같이 클라이언트/서버 모델로 구성됩니다.

  • 클라이언트 : 브라우저(인터넷 익스플로러, 크롬 등)
  • 서버 : 웹 소프트웨어(아파치, IIS 등)

웹 서버에서 동적으로 HTML을 생성하려면 제어용 프로그램이 필요합니다. 웹 서버에는 CGI라 불리는 동적 콘텐츠를 위한 확장 방식이 있습니다. 간단하게 화면에 표시해줄 내용을 데이터베이스에서 들고오는 중간역할을 하는 프로그램이라 생각하셔도 좋습니다. 이 CGI를 이용하여 프로그램과 웹 서버 간을 연동, 통신하여 처리합니다.

실제로 데이터베이스에 접속하는 것은 PHP나 루비 등의 프로그래밍 언어로 만들어진 CGI  프로그램 입니다. 데이터베이스 서버를 사용하기 위해서는 먼저 데이터베이스 서버와의 접속이 성립되어야 합니다. 이때 웹 서버의 CGI 프로그램이 데이터베이스의 클라이언트가 됩니다.

CGI와 데이터베이스

클라이언트와 서버가 네트워크로 연결되어 있다면 서로 다른 머신에 두어도 무방합니다. 웹 서버와 데이터베이스 서버를 서로 다른 머신에 두면 처리가 분산되어 시스템 전체 성능이 향상됩니다.

 

3. MySQL 서버와 mysql 클라이언트

이 책은 MySQL을 사용한 환경을 기반으로 합니다. MySQL 패키지를 PC에 설치하면 서버와 클라이언트 모두 사용할 수 있습니다.

MySQL 서비스는 PC가 켜지면 자동으로 실행됩니다. MySQL 서버에 접속해서 SQL 명령을 실행하는 방법은 여러 가지가 있지만, 이 책에서는 MySQL의 표준 커맨드인 mysql 클라이언트를 이용할 것입니다.

PC 한 대로 클라이언트와 서버 모두 실행할 수 있지만 네트워크 기능을 필요합니다. 클라이언트에서 서버에 접속할 필요가 있는데, 이때 네트워크를 경유해서 자기자신 PC의 서버로 되돌아오는 형태로 접속합니다. 이를 ‘루프 백 접속‘이라 부릅니다.

루프 백 접속

댓글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다