언어 및 도구들 공부/Javascript

path 파라미터 vs 쿼리스트링 추가 1

Dr.Mlem 2024. 9. 8. 21:27

http://localhost:3001/student?id=10101 vs http://localhost:3001/student/10101의 차이점

두 가지 URL의 차이는 RESTful API 설계 관점에서 데이터 요청의 방법과 의미가 다릅니다. 아래에 두 가지 접근 방식의 차이와 그 의미를 설명합니다.

1. http://localhost:3001/student?id=10101 (쿼리 스트링 방식)

  • 설명: 이 URL은 쿼리 스트링(Query String) 방식을 사용하여 데이터를 요청합니다. ?id=10101는 요청의 일부로 서버에 추가적인 정보를 전달하기 위해 URL 끝에 붙은 쿼리 파라미터입니다.
  • 의미: 쿼리 스트링 방식은 일반적으로 데이터의 검색, 필터링 또는 조건부 조회에 사용됩니다. 예를 들어, ID가 10101인 학생을 조회하거나 여러 조건에 따라 데이터를 검색하는 경우 사용될 수 있습니다.
  • 용도:
    • 주로 GET 요청에서 사용되며, 서버에 특정 조건에 맞는 리소스를 요청할 때 사용됩니다.
    • http://localhost:3001/student?id=10101라는 요청은 "모든 학생들 중에서 ID가 10101인 학생을 조회하라"는 의미를 가질 수 있습니다.
    • 이 방식은 서버가 쿼리 파라미터(id)를 해석하고 조건에 맞는 결과를 반환하도록 구현되어 있어야 합니다.
  • 예시:서버는 쿼리 파라미터를 해석하여 해당 조건에 맞는 데이터를 반환할 수 있습니다.
  • plaintext
    Copy code
    GET /student?id=10101

2. http://localhost:3001/student/10101 (패스 파라미터 방식)

  • 설명: 이 URL은 패스 파라미터(Path Parameter) 방식을 사용하여 특정 리소스에 접근합니다. 10101은 경로의 일부로서 student라는 리소스의 특정 ID를 식별합니다.
  • 의미: 패스 파라미터 방식은 일반적으로 특정 리소스식별하고 조작(조회, 수정, 삭제 등)하기 위해 사용됩니다. 여기서 10101은 학생 리소스의 고유한 ID를 나타냅니다.
  • 용도:
    • 주로 GET, PUT, DELETE 등과 같은 HTTP 메서드와 함께 사용되며, 특정 리소스에 대한 조작을 나타냅니다.
    • http://localhost:3001/student/10101는 "ID가 10101인 특정 학생 리소스를 조회, 수정 또는 삭제하라"는 의미입니다.
    • RESTful API 설계에서는 패스 파라미터 방식을 사용하여 특정 리소스를 명확히 지정하는 것이 일반적입니다.
  • 예시:서버는 URL 경로의 일부로 제공된 ID(10101)를 사용하여 해당 리소스를 반환합니다.
  • plaintext
    Copy code
    GET /student/10101

차이점 요약

  1. 의미:
    • http://localhost:3001/student?id=10101:
      • 특정 조건(ID가 10101)으로 학생을 조회하거나 필터링할 때 사용됩니다.
    • http://localhost:3001/student/10101:
      • ID가 10101인 특정 학생 리소스에 직접 접근하거나 조작할 때 사용됩니다.
  2. RESTful 디자인 관점:
    • 패스 파라미터 방식 (/student/10101)은 RESTful API 설계에서 리소스를 명확히 식별하고 조작하는 데 적합합니다.
    • 쿼리 스트링 방식 (?id=10101)은 리소스에 대한 조건부 조회나 필터링에 적합합니다.
  3. 서버 구현 차이:
    • ?id=10101과 같은 쿼리 스트링 방식에서는 서버가 id 파라미터를 읽어 해당 조건에 맞는 데이터를 검색하거나 조회해야 합니다.
    • /student/10101과 같은 패스 파라미터 방식에서는 서버가 URL 경로에서 10101을 추출해 해당 ID에 맞는 리소스를 조회해야 합니다.

결론

  • 패스 파라미터 방식 (/student/10101): RESTful API 설계 원칙에 맞으며, 특정 리소스를 직접 조작하거나 접근할 때 사용합니다. 이 방식이 명확하고 직관적이기 때문에 RESTful API에서는 선호됩니다.
  • 쿼리 스트링 방식 (?id=10101): 특정 조건에 따른 필터링, 검색 등의 조회 기능을 구현할 때 사용됩니다.

따라서, 특정 학생을 명확하게 식별하고 그 학생에 대한 조작을 수행하려면 패스 파라미터 방식을 사용하는 것이 더 적합합니다.