데이터베이스_서버
많은 RDBMS 가 클라이언트 / 서버 모델을 채택해 가동중이다.
RDBMS는 복수의 클라이언트가 보내오는 요청에 응답할 수 있도록 클라이언트 / 서버 모델로 동작한다.
- 클라이언트는 서버에 접속 요청이나 SQL 명령 실행요청을 보낼 수 있다.
- 서버는 이를 처리하고 클라이언트에 그 결과를 반환한다.
클라이언트 / 서버 모델에 더 알아보자.
1. 클라이언트 / 서버 모델
- 클라이언트 / 서버 모델이란 사용자 조작에 따라 요청을 전달하는 ‘클라이언트’ 와 해당 요청을 받아 처리하는 ‘서버’ 로 소프트웨어를 나누고, 복수의 컴퓨터 상에서 하나의 모델을 구현하는 시스템을 말한다.
웹 시스템에서의 클라이언트 / 서버
: 웹 시스템에서 클라이언트 기능을 하는 브라우저는 사용자가 지정한 URL과 연결된 웹 서버에 요청을 보낸다. (요청내용의 대부분은 ‘이 페이지를 열람하고 싶다’이다.) 이때 클라이언트가 보내는 요구사항을 웹 용어로 ‘리퀘스트(request, 요청)’ 이라고 한다.
: 클라이언트의 요청을 받은 웹 서버는 그에 맞게 처리한다. 요청받은 내용이 ‘이 페이지를 열람하고 싶다’ 이므로 서버는 HTML로 된 데이터를 클라이언트에 반환한다. 데이터는 네트워크를 통해 전송된다. 서버의 응답을 웹 용어로 ‘리스폰스(response , 응답)’이라고 한다.
RDBMS 의 클라이언트 / 서버
: RDBMS도 웹 시스템과 마찬가지로 클라이언트 / 서버 모델로 시스템이 구성되는데, 그러나 여기서 중요한건 RDBMS 의 클라이언트 / 서버 모델은 사용자 인증이 필요하다. RDBMS는 사용자 별로 DB 접근 제한이 가능하기 때문에 사용자 인증이 필요하고 이는 사용자 ID와 비밀번호로 실행된다. 인증 실패하면 DB에 접속할 수 없다.
SQL 명령 실행
: RDBMS 에 접속하면 SQL 명령을 서버에 보낼 수 있다.
2. 웹 애플리케이션의 구조
- 웹 애플리케이션이란? 정적인 HTML뿐만 아니라 동적인 HTML을 생성하는 소프트웨어
- 웹 애플리케이션 : ( 웹 서버 + 데이터베이스 서버 )
- : 정적인 HTML만으로 구성된 웹 페이지라면 웹 서버만으로 시스템을 구축할 수 있지만, 웹 애플리케이션이라 부를 정도의 규모라면 DB가 필요하다.
-
웹 서버에서 동적으로 HTML을 생성하려면 제어용 프로그램이 필요하다. 웹 서버에는 CGI라는 동적 콘텐츠를 위한 확장 방식이 있는데 , 이 CGI를 이용하여 프로그램과 웹 서버 간을 연동, 통신하여 처리한다.( 제어용 프로그램 = CGI 프로그램 )
-
CGI 프로그램을 만드는데 펄(perl)이나 PHP, 루비 등의 Script 언어가 자주 사용되고, 윈도우의 경우 ASP.NET 이 사용되며 자바와 Servlet의 조합도 있다.
3. 웹 애플리케이션에서의 DB
- : 실제로 DB에 접속하는 것은 PHP나 루비 등의 프로그래밍 언어로 만들어진 CGI 프로그램이다. 웹 서버의 CGI 프로그램이 데이터베이스의 클라이언트가 된다는 것이다. 물론 DB 서버를 사용하기 위해서는 DB 서버와의 접속이 성립되고, 그 후 DB에 필요한 SQL 명령을 전달하고, 실행결과는 클라이언트인 CGI 프로그램에 돌아간다.
-
클라이언트와 서버가 네트워크로 연결되어 있다면 서로 다른 머신에 두어도 무방하다. 그리고 웹 서버와 데이터베이스 서버를 서로 다른 머신에 두면 처리가 분산(Load Balancing)되어 시스템 전체 성능이 향상된다. 실제로 대규모 시스템에서는 그런 경우가 많다.
4. MySQL 서버와 mysql 클라이언트
- MySQL 패키지를 설치하면 DB 서버와 클라이언트 모두 사용가능하다. ( MySQL 서비스가 DB서버가 되고, mysql 커맨드가 클라이언트가 된다. )
- : 클라이언트 / 서버 모델은 시스템의 하드웨어 구성을 유연하게 변경 할 수 있는 장점이 있다. 따라서 클라이언트가 많아져 서버의 능력이 부족해지면 추가로 머신을 설치하여 부하 분산(Load Balancing)해 시스템 전체의 성능을 높일 수 있다.
-
PC 한 대로 클라이언트와 서버 모두 실행할 수 있지만 네트워크 기능은 여전히 필요하다. 클라이언트에서 서버로 접속할 필요가 있는데, 이때 네트워크를 경유해서 PC의 서버로 되돌아오는 형태로 접속한다. 이를 ‘루프 백 접속’이라 한다.
루프 백 인터페이스 ( Loop Back Interface )
-
통상적으로 디버깅을 목적으로 네트워크 상에서 자기 자신을 나타내는 인터페이스 또는 그 주소를 말함.
-
루프백 인터페이스 IP 주소 ( Loopback Address)
- IPv4 주소: 통상, localhost 라 불리우는 IP 주소 ‘127.0.0.1’ 을 사용.
- IPv6 주소: 통상, localhost 라 불리우는 IP 주소 ’::1/128’ 을 사용.