Files
2021-12-13 21:23:43 +09:00

5.5 KiB

03강. 데이터베이스 서버

  • RDBMS는 복수의 클라이언트가 보내오는 요청에 응답할 수 있도록 클라이언트/서버 모델로 동작한다.
  • 클라이언트는 서버에 접속 요청이나 SQL 명령 실행 요청을 보낼 수 있고, 서버는 이를 처리하고 클라이언트에 그 결과를 반환한다.
  • 일반적인 RDBMS는 네트워크 상에 하나의 서버를 두고 독점해 사용한다.

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

  • 클라이언트/서버 모델이란 사용자 조작에 따라 요청을 전달하는 클라이언트와 해당 요청을 받아 처리하는 서버로 소프트웨어가 나눠져있다.
  • 클라이언트/서버 모델은 복수의 컴퓨터 상에서 하나의 모델을 구현하는 시스템을 말한다.

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

클라이언트/서버 모델은 클라이언트와 서버로 구성된다!
  • 웹 시스템에서 클라이언트 기능을 하는 브라우저는 사용자가 지정한 URL과 연결된 웹 서버에 요청을 보낸다.
  • 이때 클라이언트가 보내는 요구사항을 웹 용어로는 리퀘스트(request)라고 한다.
  • 클라이언트의 요청을 받은 웹 서버에서는 그에 맞게 처리한다.
  • 서버는 브라우저가 페이지를 표시할 수 있도록 HTML로 된 데이터를 클라이언트로 반환하고 데이터는 네트워크를 통해서 전송된다.
  • 서버의 응답은 웹 용어로 리스폰스(response)라고 한다.
  • 페이지 내용을 전달받은 브라우저는 화면에 해당 페이지 내용을 표시한다.
  • 실제 웹에서는 요청과 응답이 되풀이되면서 웹 페이지가 표시된다.

RDBMS의 클라이언트/서버

  • RDBMS도 웹 시스템과 마찬가지로 클라이언트/서버 모델로 시스템이 구성된다. 하지만 단순히 요청과 응답을 되풀이하는 것은 아니다.
  • 먼저, 웹 시스템에는 없었던 사용자 인증이 필요하다.
  • RDBMS는 사용자 별로 데이터베이스 접근을 제한할 수 있는데, 이 때문에 데이터베이스를 사용하기 위해서는 사용자 인증을 거쳐야 한다.
  • 사용자 인증은 ID비밀번호로 실행되고, 만약 인증에 실패하면 데이터베이스에 접속할 수 없다.
데이터베이스를 사용할 때는 ID와 비밀번호를 이용한 사용자 인증이 필요하다!

SQL명령 실행

  • RDBMS에 접속하면 SQL 명령을 서버에 보낼 수 있다.
  • 일단 한 번 데이터베이스에 접속하면, 이를 유지하여 재접속 없이 SQL 명령을 여러 번 보낼 수 있다.
  • 사용이 끝나면 데이터베이스와의 접속은 끊긴다. 일반적으로 클라이언트를 종료하면 데이터베이스 접속도 끊긴다.

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

  • 웹 애플리케이션은 일반적으로 웹 서버와 데이터베이스 서버의 조합으로 구축된다.
  • 웹 시스템은 클라이언트/서버 모델로 구성되며 브라우저가 클라이언트, 아파치(Apache)IIS와 같은 웹 소프트웨어가 서버 역할을 한다.
  • 웹 사이트가 정적인 HTML만으로 구성되어 있다면 웹 서버만으로도 시스템을 구축할 수 있을 것이다. 하지만 웹 애플리케이션이라 부를 정도의 규모라면 데이터베이스가 필요하다.
  • 웹 서버에서 동적으로 HTML을 생성하려면 제어용 프로그램이 필요하다. 웹 서버에는 CGI라 불리는 동적 콘텐츠를 위한 확장 방식이 있는데, 이 CGI를 이용하여 프로그램과 웹 서버 간을 연동, 통신하여 처리한다.
  • 프로그래밍 언어로서는 펄(Perl)이나 PHP, 루비(Ruby) 등의 스크립트 언어가 자주 사용된다.
  • 윈도우의 경우는 ASP.NET이 많이 사용되며, 자바(Java)Servlet과 같은 조합도 있다.
  • 실제로 데이터베이스에 접속하는 것은 PHP루비 등의 프로그래밍 언어로 만들어진 CGI 프로그램이다.
  • 데이터베이스 서버를 사용하기 위해서는 먼저 데이터베이스 서버와의 접속이 성립되어야 한다.
  • 그 후 데이터베이스에 필요한 SQL 명령을 전달하고, 실행 결과는 클라이언트로 되돌아간다.
  • 이때 웹 서버의 CGI 프로그램이 데이터베이스의 클라이언트가 된다.
클라이언트/서버 모델은 유연한 하드웨어 구성을 실현한다!

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

  • MySQL 패키지를 PC에 인스톨하면 서버와 클라이언트 모두 사용할 수 있다.
  • MySQL 서비스가 데이터베이스 서버가 되고, mysql 커맨드가 클라이언트가 된다.
  • MySQL 서비스는 PC 기동과 함께 자동으로 실행된다.
  • MySQL 서버에 접속해서 SQL 명령을 실행하는 방법에는 여러 가지가 있는데, mysql 클라이언트가 MySQL의 표준 커맨드이다.
  • 클라이언트/서버 모델은 시스템의 하드웨어 구성을 유연하게 변경할 수 있도록 해준다. 클라이언트가 많아져 서버의 능력이 부족해지면 추가로 설치하여 부하 분산해 시스템 전체의 성농을 높일 수 있다.
  • PC 한 대로 클라이언트와 서버 모두 실행할 수 있지만 네트워크 기능은 필요하다.
  • 클라이언트에서 서버에 접속할 필요가 있는데, 이때 네트워크를 경유해서 PC의 서버로 되돌아오는 형태로 접속하고 이를 루프 백 접속이라 부른다.