저자 : 아사이 아츠시
출판 : 한빛미디어
발매 : 2015.11.01
1. 클라이언트/서버 모델
- 클라이언트/서버 모델 : 사용자 조작에 따라 요청을 전달하는 '클라이언트'와 해당 요청을 받아 처리하는 '서버'로 소프트웨어를 나누고, 복수의 컴퓨터 상에서 하나의 모델을 구현하는 시스템.
> 웹 시스템에서의 클라이언트/서버
- 웹 시스템이란 브라우저와 웹 서버로 구성되는 클라이언트/서버 모델의 시스템.
- 전형적인 클라이언트/서버 모델에서의 처리 : 브라우저(클라이언트)가 웹서버에 요청(Request)를 보내면, 클라이언트의 요청을 받은 웹 서버에서는 그에 맞게 처리 후 응답(Response)을 클라이언트로 반환.(응답 데이터는 네트워크를 통해서 전송)
웹에서는 요청과 응답이 되풀이되면서 웹 페이지가 표시됨.
> RDBMS의 클라이언트/서버
RDBMS도 웹 시스템과 마찬가지로 클라이언트/서버 모델로 시스템이 구성됨. 하지만 웹 시스템에는 없었던 ID와 비밀번호를 이용한 사용자 인증이 필요.
> SQL명령 실행
RDBMS에 접속하면 SQL명령을 보낼 수 있음. 서버가 가동 중이고 네트워크에 연결되있으면 클라이언트에서 SQL명령을 보낼 때 서버는 응답. 한번 데이터베이스에 접속하면 이를 유지. 일반적으로 클라이어트를 종료하면 데이터베이스 접속도 끊김.
2. 웹 애플리케이션의 구조
- 웹 애플리케이션은 일반적으로 웹 서버와 데이터베이스 서버의 조합으로 구축.
- 웹 시스템은 클라이언트/서버 모델로 구성되며 브라우저가 클라이언트, 아파치(http웹서버)나 IIS같은 웹 소프트웨어가 서버 역할을 함. 클라이언트가 서버에 요청하면 웹 서버는 클라이언트에게 응답.
- 웹 사이트가 정적인 HTML만으로 구성되어 있다면 웹 서버만으로 시스템 구축 가능하나
동적으로 HTML을 생성하려면 제어용 프로그램이 필요. 웹서버에는 *CGI라 불리는 동적 콘텐츠를 위한 확장 방식이 있음. 이 CGI를 이용하여 프로그램과 웹 서버 간을 연동,통신하여 처리.
*CGI : 사용자가 서버에게 웹페이지를 통한 요청이 있었을 때, 그것이 응용프로그램에 의해 처리될 필요가 있다면 서버가 응용프로그램을 실행시키고 필요한 메시지를 받는다. 이때 서버와 응용프로그램 사이에 데이터를 주고 받기 위한 표준화된 방법을 CGI라고 한다.공통 게이트웨이 인터페이스(common gateway interface)의 약어로, 웹서버와 외부 프로그램 사이에서 정보를 주고 받는 방법이나 규약들을 말한다. 브라우저가 서버를 경유하여 데이터베이스 서버에 질의를 내는 등 대화형 웹페이지를 작성할 때 이용된다.[네이버 지식백과] CGI [common gateway interface] (두산백과)
- 프로그래밍 언어로서는 펄(perl)이나 PHP, 루비(Ruby) 등의 스크립트 언어 / 윈도우의 경우는 ASP.NET / 자바와 Servlet의 조합이 자주 사용됨.
- 실제로 데이터베이스에 접속하는 것은 PHP나 루비 등의 프로그래밍 언어로 만들어진 CGI프로그램.
웹 서버의 CGI프로그램이 데이터베이스의 클라이언트가 됨.
클라이언트와 서버가 네트워크로 연결되어 있다면 서로 다른 머신에 두어도 무방. 웹 서버와 DB서버를 서로 다른 머신에 두면 처리가 분산되어 시스템 전체 성능이 향상됨. 실제로 대규모 시스템에서는 웹서버나 DB서버를 여러 대로 구성하여 운용.
==> 클라이언트/서버 모델은 시스템의 하드웨어 구성을 유연하게 변경할 수 있도록 함.
(클라이언트가 많아져 서버의 능력이 부족해지면 추가 설치하여 부하를 분산해 시스템 전체의 성능을 높일 수 있음)
3. MySQL 서버와 mysql 클라이언트
- MySQL 패키지를 PC에 설치하면 서버와 클라이언트 모두 사용 가능. MySQL 서비스가 데이터베이스 서버, mysql 커맨드가 클라이언트가 됨.
PC 한 대로도 클라이언트와 서버 모두 실행 가능하지만 네트워크 기능은 필요함. 클라이언트에서 서버에 접속할 필요가 있는데 이때 네트워크를 경유해 PC의 서버로 되돌아오는 형태로 접속. 이를 '루프 백 접속'이라 함.
'Study > DB' 카테고리의 다른 글
[SQL 첫걸음] 2장.테이블에서 데이터 검색 - 06.검색 조건 지정하기 (0) | 2018.08.28 |
---|---|
[SQL 첫걸음] 2장.테이블에서 데이터 검색 - 05.테이블 구조 참조하기 (0) | 2018.08.28 |
[SQL 첫걸음] 2장.테이블에서 데이터 검색 - 04.Hello World 실행(+MySQL 설치 및 설정) (0) | 2018.08.28 |
[SQL 첫걸음] 1장.데이터 베이스와 SQL - 02.다양한 데이터베이스 (0) | 2018.08.28 |
[SQL 첫걸음] 1장.데이터 베이스와 SQL - 01.데이터베이스 (0) | 2018.08.28 |