Web?

2025. 11. 28. 10:54·spring

# Web?

웹 서비스 개발을 시작하면 꼭 마주하게 되는 개념이 있다.
바로 URI, HTTP, REST API 같은 요소들이다.


단어는 익숙하지만 실제로 어떤 역할을 하는지 한 번에 연결되지 않는 경우가 많다.

이 글에서는 웹이 어떻게 동작하고 REST가 무엇을 의미하며
왜 모든 서비스가 REST API 형태로 제공되는지 흐름 중심으로 정리해 본다.


# 웹을 구성하는 기본 요소

웹은 크게 세 가지 축으로 돌아간다.

 

1. 사용자에게 보이는 웹사이트

우리가 브라우저로 접속하는 화면들이다.

 

2. 개발자가 사용하는 API(Web Service)

카카오/네이버/구글 등에서 제공하는 Open API 같은 데이터 교환용 서비스.

 

3. 브라우저(Chrome, Safari 등)

사용자–서버 간 연결을 중개하는 인터페이스.

웹은 이 세 가지 요소가 합쳐져서 동작한다.


# URI와 URL의 차이

웹 요청을 처리하려면 무엇을 요청할 것인가? 가 먼저 정해져야 한다.
여기서 등장하는 것이 URI와 URL이다.

  • URI(Uniform Resource Identifier)
    서버에 존재하는 리소스를 식별하는 기준
  • URL(Uniform Resource Locator)
    그 리소스가 어디에 있는지를 알려주는 위치 정보

예시를 보면 더 명확해진다

http://www.naver.com/index.html?page=123&age=12
URL → http://www.naver.com/index.html
URI 전체 → index.html?page=123&age=12

 

URI가 URL보다 더 큰 개념이다.


# REST API는 무엇을 해결하는가?

REST는 웹 자원(Resource)을 URI로 표현하고
여기에 HTTP 메서드(GET/POST/PUT/DELETE)를 조합해서
리소스를 조회·생성·수정·삭제하는 구조를 의미한다.

핵심은 다음 세 가지다.

 

리소스(Resource) → URI
동작(Method) → HTTP Method
표현(Representation) → JSON, XML 등 데이터 형식

 

REST가 가장 많이 쓰이는 이유는 구조가 단순하면서도 확장성이 높기 때문이다.


# REST의 주요 특징

1. 클라이언트와 서버의 분리
각자 독립적으로 동작하고 서로에게 강하게 의존하지 않는다.
2. Stateless
서버는 이전 요청의 상태를 기억하지 않는다. 각 요청은 처음부터 필요한 정보를 모두 포함해야 한다.
3. 일관된 인터페이스
표준 HTTP 메서드로 CRUD가 명확하게 나뉜다.

# HTTP Method 예시

GET /user/100
→ 100번 사용자 조회

POST /user
→ 새로운 사용자 생성 (body 활용)

PUT /user
→ 사용자 정보 수정 또는 없으면 생성

DELETE /user/100
→ 100번 사용자 삭제
URI는 “무엇”, Method는 “어떤 동작”인지 명확히 나뉜다.

# REST API URI 설계의 기본 원칙

REST API를 만들 때는 다음 규칙을 지키면 더 읽기 좋고 유지보수가 쉬워진다.

 

1. URI는 명사로 표현

/member/show/1 (X) 
/members/1 (O)

 

2. 계층 구조를 그대로 표현

/apartments/dong/102

 

3. 파일 확장자 금지

이미지나 파일 자체를 의미하는 것이 아니라면 URI에 확장자를 넣지 않는다.

 

4. 가독성이 필요할 때는 '-' 사용

/players/player-name/chadev

 

5. 변하는 값은 Path Variable

/courses/{chapter}/math/{page}

 

6. Query Parameter는 선택적 정보

/user/{page}?id=kim&name=david
Path → 식별
Query → 필수가 아닌 부가적인 정보

# HTTP Method 정리

Method 역할 PathVar Query Body
GET 조회 O O X
POST 생성 O - O
PUT 수정/없으면 생성 O - O
DELETE 삭제 O O X

# HTTP 상태 코드 요약

코드 의미 설명
1xx 처리 중 서버가 작업을 이어가는 중
2xx 성공 정상 처리
4xx 클라이언트 오류 요청 오류, 인증 문제 등
5xx 서버 오류 서버 내부 처리 실패

'spring' 카테고리의 다른 글

JPA(=Java Persistance API)  (0) 2025.12.01
Thymeleaf  (0) 2025.12.01
Validation  (0) 2025.12.01
AOP (Aspect Oriented Programming)  (0) 2025.12.01
Spring boot 기초  (0) 2025.11.28
'spring' 카테고리의 다른 글
  • Thymeleaf
  • Validation
  • AOP (Aspect Oriented Programming)
  • Spring boot 기초
차하비
차하비
chadev 님의 블로그 입니다.
  • 차하비
    chadev
    차하비
  • 전체
    오늘
    어제
    • 분류 전체보기 (47)
      • kubernetes, k8s (3)
      • docker (3)
      • cloud (6)
      • linux (12)
      • spring (7)
      • java (11)
      • error (4)
      • 자격증 (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    Spring
    url
    k8s
    restAPI
    모놀리식
    HTTP
    Java
    KUBECTL
    monolithic
    진법
    클래스
    thread
    Kubernetes
    docker
    URI
    OOP
    객체지향
    Join
    비트 연산
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.5
차하비
Web?
상단으로

티스토리툴바