더북(TheBook)

동적인 웹 서비스 환경을 제공하는 웹 서버

웹 서비스가 처음 시작되었을 때 웹 서버가 하는 일이라곤 미리 만들어 놓은 HTML 문서를 그대로 전송하는 게 전부였습니다. 사람들이 일방적인 정보 습득에서 벗어나 정보를 서로 주고받는 상호작용을 필요로 하게 된 것은 자연스러운 결과입니다. 과거의 웹 서버가 서버에서 클라이언트로 향하는 일방적인 정보의 흐름, 정적인 웹 서비스만을 제공했다면 현대의 웹 서버는 다른 응용 프로그램들과 함께 동작하여 사용자의 요구에 응답합니다. 서버에서 클라이언트가 필요로 하는 정보를 처리하고 다시 그 결과를 클라이언트로 되돌려주는 자동화된 시스템을 동적인 웹 서비스DynamicWebService라고 합니다.

Tip

지금은 거의 모든 웹 서비스가 동적인 형태로 운영됩니다.

웹 서버는 웹 응용 프로그램WebApplication을 호출하여 사용자가 입력한 정보를 바탕으로 데이터베이스를 제어하거나 자료를 업데이트해서 결과물을 만들어냅니다. 웹 응용 프로그램은 웹을 통해 동작하는 응용 프로그램입니다. 별도의 클라이언트 프로그램 없이 웹 브라우저만 있으면 어디에서든 실행 가능하며 C, 자바, 펄, 루비, 파이썬, PHP와 같은 다양한 프로그래밍 언어로 작성됩니다.

여기에 방대한 자료를 효율적으로 다루기 위해 관계형 데이터베이스 관리 시스템 (Relational DataBases Management System, RDBMS, 또는 DBMS)이 등장합니다. 사용자 계정에 대한 정보, 사용자가 입력한 글, 수많은 형식의 멀티미디어 자료들을 빠른 시간에 저장하거나 조회하고 되돌려주기 위해서는 전문적으로 자료를 관리하는 도구가 필요하기 때문입니다. 리눅스에서 사용 가능한 데이터베이스 관리 시스템으로는 MySQL, PostgreSQL, SQLite, Oracle이 있습니다.

그림 8-2는 웹 서버와 웹 응용 프로그램, 데이터베이스가 맞물려 동적인 웹 서비스를 제공하는 환경을 보여줍니다.

그림 8-2 동적인 웹 서비스 환경

➊ 사용자가 웹 브라우저를 통해 정보를 요청하면 인터넷을 거쳐 웹 서버에 전달됩니다.

➋ 웹 서버는 웹 응용 프로그램을 통해 데이터베이스에 자료를 저장하거나 조회합니다.

➌ 데이터베이스 관리 시스템이 사용자 요청에 해당하는 정보를 저장하거나 되돌려주면 웹 응용 프로그램은 처리 결과를 사용자가 보기 쉬운 형태로 가공합니다.

➍ 웹 서버가 가공된 처리 결과를 웹 브라우저로 전송합니다. 사용자는 웹 브라우저에서 처리결과를 확인합니다.

Tip

‘8.4 | 데이터베이스와 프로그래밍 언어로 웹 서비스를 다이나믹하게!’에서 실제로 동적인 웹 서비스 환경을 구현합니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.