티스토리 뷰

웹 프로그래밍은 HTTP(S) 프로토콜로 통신하는 클라이언트와 서버를 개발하는 일입니다. 쉬운 예시로, 웹 브라우저를 실행하여 네이버에 접속할 때도 웹 프로그램이 동작합니다. 이 경우, 웹 클라이언트가 요청하고 웹 서버가 응답하는 클라이언트 - 서버 프로그램이 동작하는 것입니다.

웹 클라이언트와 서버

웹 클라이언트는 보통 웹 브라우저가 사용되나 직접 개발하는 것도 가능합니다. 웹 서버의 경우, 주로 웹 프레임워크를 활용하여 개발할 수 있습니다. 이번 글에서는 웹 프로그래밍의 기본 기념과 웹 서버와 웹 클라이언트 서버 간의 차이점과 각각의 특징에 대해 알아보겠습니다.

 

1. 웹 클라이언트 (Web Client)

웹 클라이언트는 사용자가 웹 서비스를 이용하기 위한 프로그램입니다. 웹 클라이언트의 가장 대표적인 예시가 웹 브라우저(Chrome, Firefox, Safari)이며, 주소창에 입력된 문장을 해석하여 웹 서버에 HTTP 요청을 보내는 웹 클라이언트의 역할을 수행합니다. 즉, 사용자의 요청을 생성하고, 웹 서버로 응답을 받아 화면에 표시하거나 처리하는 것입니다. 

 

[주요 특징]

  • HTTP 요청을 생성 (GET, POST 등)
  • URL을 통해 자원 지정
  • 응답으로 HTML, JSON, XML 등의 데이터를 수신

 

2. 웹 서버 (Web Server)

웹 서버는 클라이언트의 요청을 수신하고, 그에 대한 적절한 응답을 생성하여 반환하는 서버입니다. 정적 파일(HTML, CSS, JS 등)을 제공하거나, 백 엔드 로직을 수행하여 동적 데이터를 처리하는 역할을 합니다.

 

[주요 특징]

  • 클라이언트의 요청을 수신
  • 요청 URL에 따른 자원 처리
  • 백 엔드 서버와 연동하여 데이터 생성

개발자의 역할 및 클라이언트 - 서버 동작

 

3. HTTP 프로토콜

HTTP는 클라이언트와 서버 간의 통신을 클라이언트와 서버 간의 통신을 위한 프로토콜(규약)로 요청(Request)과 응답(Response) 구조로 작동합니다. 요청과 응답 메시지가 반복적으로 오고 가면서 사용자가 웹을 사용할 수 있는 것입니다. HTTP의 가장 대표적인 메소드는 GET과 POST입니다.

 

  1. GET 메소드
    • 서버로부터 데이터를 요청할 때 사용
    • CRUD의 Read
  2. POST 메소드
    • 데이터를 생성 및 업데이트하기 위해 서버에 데이터를 전송할 때 사용
    • CRUD의 Create

GET과 POST의 차이는 폼에서 사용자가 입력한 데이터를 서버로 보낼 때에도 존재합니다. GET은 필요한 데이터를 Body에 담지 않고, 쿼리 스트링을 통해 전송하고, POST은 URL에 포함시켰던 파라미터를 요청 메시지의 바디에 넣어 전송합니다. 또한, GET은 여러 번 요청의 결과가 모두 같지만, POST은 연산마다 결과가 달라질 수 있습니다.

 

클라이언트와 서버 간의 통신 상태는 상태 코드를 보고 파악할 수 있습니다.

 

[대표적인 상태 코드]

  • 2XX : 성공 상태, 클라이언트가 요청한 동작을 수신하여 이해하였고 승낙하였으며 성공적으로 처리
  • 3XX : 리다이렉션 상태, 클라이언트는 요청을 마치기 위해 추가 동작이 필요
  • 4XX : 클라이언트 에러 상태, 클라이언트의 요청에 에러 존재
  • 5XX : 서버 에러 상태, 클라이언트의 요청은 유효하지만, 서버가 처리에 실패

4. 웹 서버 VS 웹 애플리케이션 서버

웹 서버와 웹 애플리케이션 서버는 역할, 처리 대상, 기능, 사용 목적 등에 따라 구분되는 개념입니다. 대표적으로, 웹 서버는 정적 컨텐츠를 처리하는데, 웹 애플리케이션은 동적 컨텐츠를 처리하는데 활용합니다.

구분 웹 서버 웹 애플리케이션 서버
주요 역할 정적 페이지 처리 동적 페이지 처리
처리 대상 HTML, CSS, JS, 이미지 DB 조회, 내부 로직 수행, 비즈니스 처리
기능 클라이언트 요청 수신, 정적 페이지 반환 동적 페이지 생성, 비즈니스 로직 수행, 트랜젝션 처리
응답 속도 빠름 (정적 페이지를 바로 반환) 상대적으로 느림 (내부 로직 처리 필수)
사용 목적 빠른 정적 페이지 서빙 복잡한 비즈니스 로직 수행 및 DB 처리

 

애플리케이션 서버 방식은 웹 서버가 직접 프로그램을 호출하기보다는 웹 애플리케이션 서버를 통해 간접적으로 프로그램을 실행합니다. 웹 애플리케이션 서버는 프로그램의 실행 결과를 웹 서버에 전달하며 웹 서버는 웹 애플리케이션 서버로부터 전달받은 응답 결과를 클라이언트에 전송합니다.

애플리케이션 서버 방식에서의 서버 간 구성도

'웹 프로그래밍' 카테고리의 다른 글

[2] Django 웹 프레임워크  (0) 2025.07.18
TAG more
글 보관함
최근에 올라온 글