달마루
기획자에서 개발자로
달마루
전체 방문자
오늘
어제
  • 분류 전체보기 (344) N
    • 기획 이야기 (3)
    • 개발자로 전향한 이유 (1)
    • Github Address (1)
    • 개발자, 그 여정 (11)
      • 기초특강 (4)
      • 국비학원 선정 (4)
      • BitCamp_수업내용 (1)
      • 학원 프로젝트 후기 (1)
      • 정보처리기사 (1)
      • 개발 이야기 (0)
    • 개념 창고 (136) N
      • JAVA (53) N
      • CS (1)
      • Database (28)
      • NetWork (4)
      • 자료 구조 (2)
      • React (8)
      • Spring (5)
      • JPA (2)
      • HTML & CSS (18)
      • JS (4)
    • algorithm (186)
      • 백준 (161)
      • 프로그래머스 (23)
    • 사는 이야기 (0)

블로그 메뉴

  • Github
  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 자바
  • java
  • 혼공SQL
  • react
  • select
  • Bronze V
  • 백준문제풀이
  • java algorithm
  • Algorithm
  • SQL고득점Kit
  • BRONZE
  • 혼공MySQL
  • Bronze III
  • SQL
  • 백준
  • HTML
  • 백준알고리즘
  • math
  • BOJ
  • sql 문제풀이
  • programmers
  • BOJ algorithm
  • 문제풀이
  • Bronze IV
  • 혼자공부하는SQL
  • 프로그래머스
  • 알고리즘
  • MySQL
  • Scanner
  • 알고리즘풀이

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
달마루

기획자에서 개발자로

[Spring] @RequestParam 과 @PathVariable 차이
개념 창고/Spring

[Spring] @RequestParam 과 @PathVariable 차이

2026. 10. 18. 22:51

@RequestParam 은 URL 의 쿼리 스트링에 값을 담는다.

예를 들어 ?name=홍길동 처럼 파라미터가 붙는 방식이다.

반면 @PathVariable 는 URL 경로 자체에 변수를 넣는다.

/users/{id} 에서 {id} 위치에 값을 채우는 방식이다.

쿼리 스트링은 여러 개를 동시에 받을 수 있다.

경로 변수는 URL 구조에 딱 맞는 값만 들어간다.

1. @RequestParam

@GetMapping("/search")
public String search(@RequestParam String query) {
    return "검색 결과: " + query;
}

이 코드는 GET 요청 시 ?query=스프링 을 받는다.

쿼리 스트링은 여러 파라미터를 나열할 수 있다.

예를 들어 ?query=스프링&sort=asc 가 가능하다.

검색 필터나 페이지 번호 같은 값에 주로 쓴다.

URL 길이가 너무 길어지면 브라우저가 제한한다.

2. @PathVariable

@GetMapping("/users/{userId}")
public String getUser(@PathVariable String userId) {
    return "사용자: " + userId;
}

이 코드는 /users/john 처럼 경로에 값을 넣는다.

경로 변수는 URL 구조의 필수 요소처럼 보인다.

RESTful API 설계 시 리소스 식별자에 쓴다.

경로에 없는 값이 들어오면 404 에러가 된다.

URI 가 길어지지 않아서 깔끔한 구조를 만든다.

3. 두 가지 비교

// 쿼리 스트링
?user=홍길동&role=admin
// 경로 변수
/users/123/orders

RequestParam 은 검색이나 필터링에 적합하다.

PathVariable 는 특정 리소스를 찾을 때 쓴다.

동시에 두 가지 방식을 혼용할 수도 있다.

예를 들어 /users/{id}/orders?status=pending 이다.

경로에 사용자 ID 를 넣고 쿼리에 상태 값을 넣는다.

상황에 맞게 적절한 방식을 선택해야 한다.

저작자표시 비영리 변경금지 (새창열림)

'개념 창고 > Spring' 카테고리의 다른 글

[Spring] @Component, @Service, @Repository 차이  (0) 2026.10.15
[Spring] MyBatis의 Query 수정 후 WAS서버 재시작없이 반영하기  (0) 2024.07.23
Junit Test  (0) 2023.02.08
Spring 컨테이너에 빈을 등록하는 3가지 방법  (0) 2023.02.08
    '개념 창고/Spring' 카테고리의 다른 글
    • [Spring] @Component, @Service, @Repository 차이
    • [Spring] MyBatis의 Query 수정 후 WAS서버 재시작없이 반영하기
    • Junit Test
    • Spring 컨테이너에 빈을 등록하는 3가지 방법
    달마루
    달마루
    항상 어제보다 좋은 코드를 지향합니다. https://github.com/kk4002

    티스토리툴바