DBA

C#.NET MVC에서 POST API 설계: QueryString vs JSON 바디 – jQuery & RazorView 실전 예제 비교 본문

[3] Development/MVC(ASP.NET with C#)

C#.NET MVC에서 POST API 설계: QueryString vs JSON 바디 – jQuery & RazorView 실전 예제 비교

코볼 2025. 4. 4. 11:21
728x90
반응형
SMALL

POST 방식 API 설계: 쿼리스트링 vs JSON 바디 – 언제, 왜, 어떻게?

  • POST API 설계, 쿼리스트링으로 받을까? JSON 바디로 받을까?
  • 백엔드와 프론트엔드의 역할 간단 정리
  • POST 방식의 기본 개념
  • POST + 쿼리스트링 설계란?
  • POST + JSON 바디 설계란?
  • 두 방식 비교 – 장단점과 사용 예시
  • 상황에 맞는 설계 기준은?

웹 API를 설계하다 보면 POST 방식에서도 데이터를 전달하는 방식이 나뉘게 됩니다.
특히 .NET MVC 환경에서 API를 구현할 때, 프론트엔드는 jQuery, JavaScript, RazorView 등 다양한 방식으로 데이터를 보낼 수 있고, 백엔드는 이를 QueryString으로 받을 것인지, JSON 바디로 받을 것인지 결정해야 하죠.

이번 글에서는 이 두 방식의 차이와 각각의 실전 예제를 프론트엔드 + 백엔드 코드 중심으로 설명합니다.

 

 

🔹 백엔드 vs 프론트엔드: 역할 간단 정리

  • 프론트엔드: 사용자의 입력을 받아 시각적으로 표현하고, 데이터를 API로 요청
  • 백엔드: API 요청을 받아 서버에서 처리, DB와 통신, 결과를 반환

🔹 POST 방식이란?

POST는 서버에 데이터를 생성하거나 전송할 때 사용하는 HTTP 메서드입니다.
일반적으로 본문(body)을 통해 데이터를 전달하지만, 일부 구현에서는 쿼리스트링으로도 데이터를 넘기기도 합니다.

 

 

🔹 방식 1: POST + QueryString 방식

🧩 프론트엔드 (jQuery / JavaScript 예시)

javascript

$.ajax({
    type: "POST",
    url: "/api/user/register?name=hong&age=30", // QueryString
    success: function(response) {
        console.log("서버 응답:", response);
    }
});
 

💻 백엔드 (C#.NET MVC Controller 예시)

csharp

[HttpPost]
public ActionResult Register(string name, int age)
{
    // QueryString 또는 Form 파라미터에서 자동 매핑
    return Json(new { success = true, message = $"{name}({age}) 등록됨" });
}

 

🧪 RazorView 폼 예시 (QueryString 전송)

html

<form method="post" action="/api/user/register?name=hong&age=30">
    <button type="submit">등록</button>
</form>

 

 

🔹 방식 2: POST + JSON 바디 방식

🧩 프론트엔드 (jQuery JSON 예시)

javascript

$.ajax({
    type: "POST",
    url: "/api/user/registerjson",
    contentType: "application/json",
    data: JSON.stringify({ name: "hong", age: 30 }),
    success: function(response) {
        console.log("JSON 응답:", response);
    }
});

 

💻 백엔드 (C#.NET MVC Controller 예시)

csharp

public class UserModel
{
    public string Name { get; set; }
    public int Age { get; set; }
}

[HttpPost]
public ActionResult RegisterJson([FromBody] UserModel model)
{
    return Json(new { success = true, message = $"{model.Name}({model.Age}) 등록됨" });
}

 

 

 

📝 [FromBody]는 ASP.NET Web API 기준입니다.
MVC에서는 Newtonsoft.Json을 사용하거나 모델 바인딩 커스터마이징이 필요할 수 있습니다.

 

 

✅ 장단점 비교 요약

항목 POST + QueryString POST + JSON 바디
구조 간단, URL로 확인 가능 복잡한 구조도 처리 가능
보안 URL 노출 위험 있음 본문에 포함되어 상대적으로 보안 우수
디버깅 쉬움 (브라우저 주소창에서도 확인 가능) Postman, 개발자 도구 등 별도 툴 필요
RESTful 적합도 낮음 (GET과 혼동 우려 있음) 높음 (표준 REST 설계에 부합)
모델 바인딩 난이도 낮음 (기본 타입 파라미터 매핑) 다소 높음 (객체 단위 매핑 필요)
추천 상황 단순 검색, 내부 테스트용  

 

 

✅ 결론

실무에서는 JSON 바디 방식이 더 구조적이고 확장성이 높기 때문에 표준으로 자리잡고 있습니다.
하지만 간단한 내부 API나 검색 파라미터는 QueryString을 쓰기도 하죠.

프론트에서 jQuery나 RazorView를 쓰는 경우, 백엔드와 협의하여 **"파라미터 방식 통일"**을 하는 것이 중요합니다.

 

728x90
반응형
LIST
Comments