5.5 KiB
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의 서버로 되돌아오는 형태로 접속하고 이를
루프 백 접속이라 부른다.