카테고리 없음

웹 서비스 기초와 구조 1일차

write31991 2026. 10. 2. 16:15

1. Web

   1-1. Web의 기원과 정의 : 웹(World Wide Web, WWW)은 1989년 유럽입자물리학연구소(CERN)의 컴퓨터 공학자 팀 버너스리(Tim Berners-Lee)에 의해 처음 제안되고 탄생했습니다.

     a. 탄생 배경 및 계기

             - 연구 자원 및 정보 공유의 한계 : 당시 CERN에는 전 세계 수천 명의 과학자들이 방문해 연구를 진행했지만, 서로 다른 컴퓨터 OS와 시스템을 사용하고 있어 연구 데이터를 공유하기가 매우 복잡하고 불편했습니다.

            -  정보 파편화 문제 : 각기 다른 컴퓨터에 저장된 문서와 데이터를 한곳에서 쉽게 찾아보고 연결할 수 있는 공통된 시스템의 필요성이 제기되었습니다.

      b. Web의 정의 : 인터넷 상에서 데이터를 주고 받는 공통된 약속과 구조입니다.

  

   1-2. Web Service의 개념

     - 웹 서비스는(Web Service)는 인터넷 표준 프로토콜을 기반으로 웹을 통해 제공되는 다양한 서비스 및 기능을 의미합니다.

 

   1-3. 웹 서비스 흐름 정리

     a. 사용자 요청(Request)

             - 사용자가 웹 브라우저(클라이언트)를 통해 특정 행동(주소입력, 버튼클릭, 로그인 등)을 수행합니다.

             - 브라우저는 사용자의 요청을 표준 통신 규약인 HTTP/HTTPS 메시지 형태로 변환하여 인터넷을 통해 해당 서버로 전달합니다.

     b. 서버 및 데이터 처리(Processing)

             - 웹 서버가 클라이언트로부터 전송된 HTTP 요청 메시지를 수신합니다.

             - 서버는 요청된 기능이나 데이터를 확인하고 필요한 로직(비즈니스 로직)을 수행합니다.

             - 데이터의 조회, 저장, 수정이 필요한 경우 데이터베이스에 접근하여 필요한 작업을 처리하고 결과를 전달받습니다.

     c. 응답 반환(Response)

             - 서버는 처리 결과(HTML문서, JSON 데이터, 이미지 등)를 HTTP 응답 메시지 형태로 구성합니다.

             - 응답 메시지에는 요청의 성공/실패 여부를 나타내는 상태 코드(예: 200 OK, 404 Not Found)와 데이터 본문(Body)이 포함됩니다.

             - 작성된 응답 메시지를 클라이언트(브라우저)로 전송합니다.

     d. 클라이언트 화면 렌더링(Rendering)

             - 웹 브라우저는 서버로부터 받은 HTTP 응답 데이터를 해석(파싱)합니다.

             - HTML, CSS, JavaScript 등으로 전달받은 데이터와 화면 요소(UI)를 브라우저 화면에 시각적으로 그려내어 사용자에게 최종 결과를 보여줍니다.

 
   1-4. 용어정리
     a. 사용자(User) : 웹 서비스를 이용하는 사람
     b. 클라이언트(Client) : 사용자의 행동을 받아 서버에 요청을 보내는 프로그램
     c. 서버(Server) : 클라이언트의 요청을 처리하고 결과를 만들어내는  프로그램
     d. 데이터베이스(Database) : 데이터를 저장, 조회, 관리하는 소프트웨어
     e. 요청(Request) : 클라이언트가 서버에 처리를 요구하기 위해 전달하는 메시지
     f. 응답(Response) : 서버가 요청 처리 결과로 돌려주는 메시지
     g. UI(User Interface) : 사용자가 직접 보고 조작하는 화면과 그 구성 요소

     h. API(Application Programming Interface) : 프로그램이 다른 프로그램의 기능을 사용하기 위한 약속된 인터페이스

 

2. HTTP

   2-1. Client - Server 모델 정리

     - 특징

            -  역할이 명확히 분리됩니다.

            -  요청과 응답의 방향이 정해져 있습니다. (클라이언트 → 서버)

            -  여러 클라이언트가 하나의 서버를 사용할 수 있습니다.

            -  서버는 항상 대기하며 요청을 처리합니다.

            -  서버에서 데이터와 기능을 중앙에서 관리합니다.

            -  역할은 통신 상황에 따라 달라질 수 있습니다.

 

   2-2. HTTP란? 

     - HTTP(HyperText Transfer Protocol) : 클라이언트와 서버가 요청과 응답 메시지를 어떻게 주고 받을지 정한 통신 규칙

 

   2-3. HTTP 메시지의 구성

     - 이 메시지는 요청인지, 응답인지

     - 무엇을 요청하는지 (메서드)

     - 요청이 성공했는지 실패했는지 (상태 코드)     

     - 데이터는 어떤 형식인지 (헤더, 본문)

 

   2-4. Curl을 활용한 HTTP 요청 예제

POST /users/login HTTP/1.1
Host: example.com
Content-Type: application/json
Content-Length: 52
{
 "email":"alex@example.com",
 "password":"1234"
}
3. RestAPI
   3-1. RestAPI 정의
     - RestAPI(Representational State Transfer API)는 웹 상의 자원(Resource)을 정의하고, 그 자원에 대한 주소를 지정하는 아키텍처 스타일인 REST 규칙을 준수하여 만든 애플리케이션 프로그래밍 인터페이스입니다.
 
   3-2. API란?
     - 서로 다른 소프트웨어가 정해진 방식으로 기능과 데이터를 주고 받기 위한 인터페이스
     - 애플리케이션과 애플리케이션이 서로 통신하기 위해 정해 놓은 규칙과 약속
 
   3-3. URL과 HTTP Method로 요청의 의도를 나타내는 방법
     - 같은 URL과 같은 Method라도, 항상 같은 요청을 의미하진 않습니다.
     - 예시
        - 전체 목록이 아니라 일부만 보고 싶을 때
        - 페이지 번호, 정렬 방식이 다를 때
        - 새 데이터를 서버에 전달해야 할 때
 
   3.4. 예외 케이스
     - 기본 CRUD를 벗어나는 경우도 있습니다.
        - 모든 요청이 생성, 조회, 수정, 삭제로 깔끔하게 나뉘지 않습니다.
        - 의미 있는 행위(Action) 자체가 목적이 되는 요청이 존재합니다.
        - 이런 경우는 관례적으로 POST를 사용하는 경우가 많습니다.
           - POST /orders/123/cancel       → 주문 취소
           - POST /auth/login                     → 로그인
           - POST /payments/1/confirm    → 결제 확정
 
   3-5. Query Parameter
     - URL에 붙여서 전달하는 데이터
     - 주로 조회 조건이나 옵션을 표현할 때 사용
     - 경로(path) 뒤에 ?key=value 형태로 추가