웹 서비스 기초와 구조 정리

곽숭아·2026년 2월 5일

웹(Web)

목록 보기
1/4
post-thumbnail

웹 서비스(Web Service)개요

  • 정의 : 웹(Web) 표준 규약(URL, HTTP, HTTPS)을 통해 인터넷상에서 자원과 정보를 제공하는 시스템
  • 특징 : 플랫폼과 기기에 독립적이며, 브라우저나 설치형 클라이언트(앱)을 통해 여러 사용자가 동시에 접근할 수 있음.

- 주요 구성 요소:

- 사용자(User) : 서비스를 이용하는 사람
- 클라이언트(Client) : 사용자의 행동을 받아 서버에 요청을 보내는 프로그램
- 서버(Server) : 클라이언트의 요청을 처리하고 결과를 반환하는 프로그램
- API : 프로그램 간 기능을 사용하기 위한 약속된 인터페이스

웹의 동작 원리 : HTTP 프로토콜

  • 기본 흐름 : 클라이언트의 요청(Request) -> 처리(Server) -> 응답(Response)

  • HTTP 메시지 구성 :
- 시작 줄 : 메서드(요청 시), 상태 코드(응답 시) 등을 포함함
- 헤더(Header) : 데이터의 형식, 길이, 인증 정보 등 메타데이터가 담김
- 본문(Body) : 실제 전달하려는 데이터가 들어감(선택사항)
  • HTTP 상태 코드 :
- 2xx 성공 : 
	200 OK : 정상 처리,
    201 Created : 리소스 생성 성공,
    204 No Content : 성공했지만 응답 바디없음/ 보여줄게없다
- 3xx 리다이렉션 : 
	301 Moved Permanently : 영구 이동
- 4xx 클라이언트 오류 : 
	400 Bad Request: 요청 형식 오류
    401 Unauthorized: 인증 필요
    403 Forbidden: 권한 없음
    404 Not Found: 리소스 없음
    409 Conflict: 상태 충돌
    422 Unprocessable Entity: 유효성 검증 실패
- 5xx서버 오류 : 
	500 Internal Server Error: 서버 내부 오류
    502 Bad Gateway: 게이트웨이 오류
    503 Service Unavailable: 서비스 불가

REST API 설게와 데이터 전달

  • REST(Representational State Transfer) : 자원(Rescource)을 중심으로 HTTP 메서드를 사용하여 통신하는 API 설계 방식

  • 주요 HTTP 메서드(CRUD) :

- GET : 자원 조회
- POST : 자원 생성
- PUT/PATCH : 자원 전체/일부 수정
- DELETE : 자원 삭제
  • 데이터 전달 방식 :
    - Query Parameter: URL 뒤에 ?key=value 형태로 붙여 조회 조건이나 필터를 표현함
    - Request Body: 요청 메시지 내부에 실제 생성/수정에 필요한 데이터를 담아 보낸다

CRUD와 관계

  • Create → POST
  • Read → GET
  • Update → PUT / PATCH
  • Delete → DELETECRUD는 자원에 대한 대표적인 요청의 개념적 분류이고,
    HTTP Method는 이를 실제 HTTP요청으로 표현하는 수단

보안과 HTTPS

  • HTTPS : HTTPS에 TLS(Transport Layer Security)암호화를 더해 통신 내용을 보호하는 보안 프로토콜
  • 암호화 방식
    - 대칭키 : 하나의 키로 암,복호화하며 속도가 빠름
    • 공개키 : 공개키로 암호화하고 비밀키로만 복호화하여 키 전달이 안전함

*복호화 : 암호화된 데이터를 원래의 평문(읽을 수 있는 데이터)으로 되돌리는 과정을 말함.쉽게말해, 금고 주인이 열쇠를 사용해 자물쇠를 열고 편지를 꺼내 읽는것.


HTTP 요청시 주의사항

  1. 같은 자원이라도 메서드에 따라 전혀 다른 의미의 요청이 된다.
    • GET/users -> 사용자 목록 조회
    • POST/users -> 사용자 생성
  2. 행위는 URL이 아니라 메서드로 표현한다.
    • 새로운 사용자 추가
      - ❌ /createUser
      - ⭕ POST /users
    • 주문 삭제
      - ❌ /deleteOrder
      - ⭕ DELETE /orders/123

데이터베이스(Database) 기초

  • 필요성 : 대량의 데이터를 정리된 구조로 안전하게 저장하고, 여러 사람이 동시에 빠르게 검색,관리하기 위해 사용함

  • RDBMS(관계형 데이터베이스) : MySQL, PostgreSQL등과 같이 정형 데이터를 테이블 간의 관계(Key)를 통해 관리하는 시스템임

  • 핵심 용어
    - Table : 데이터가 저장되는 표

    • Primary Key(PK) : 각 행을 유일하게 식별하는 대표 ID
    • Foreign Key(FK) : 다른 테이블의 PK를 참조하여 데이터 간 관계를 나타내는 키
    • 무결성(Intergrity) : 데이터가 손상되지 않고 정확성과 완전성을 유지하는 상태

    HTTPS 동작 방식

    대칭키 암호화와 공개키 암호화를 함께 사용

  1. 브라우저 -> 서버 접속 요청
  2. 서버 -> 인증서(공개키 포함)전달
  3. 브라우저 -> 인증서 신뢰 여부 확인(CA)
  4. 브라우저 -> 대칭키를 공개키로 암호화해서 전달
  5. 서버 -> 비밀키로 복호화하여 대칭키 획득
  6. 이후 통신 -> 대칭키로 빠르게 암호화

쉽게 말해,

  1. client가 -> 브라우제에게 안녕? 얘기좀하자
  2. 서버 : 그래 신분증 확인. 근데 나 진짜인지 가짜인지 몰라. ca님 이거 진짜에요?
  3. ca 진품 확인
  4. 오 맞네 그럼 우리끼리만 아는 암호로 만들자
profile
곽숭아_놀이터

0개의 댓글