본 캠프_23일차

졸용·2025년 3월 19일

TIL

목록 보기
24/144

⭐ Spring 강의 입문 요약 & 정리

►▸ 4주차 강의 정리◂◄

Spring 입문 강의자료 _4주차

▸ @PathVariable ◂

Spring MVC에서 URL 경로의 일부 값을 메서드의 파라미터로 전달받기 위해 사용되는 어노테이션

❗URL 패턴에서 동적으로 변하는 부분을 변수처럼 다룰 수 있도록 해준다❗

  • @PathVariable 규칙

1️⃣ 파라미터 변수명과 PathVariable 변수명이 같으면 속성 값 생략 가능

2️⃣ @PathVariable 다중 사용 가능


▸ 특정 파라미터 매핑 ◂

Spring MVC에서 HTTP 요청의 쿼리 파라미터나 폼 파라미터를 메서드의 파라미터와 연결하는 방법

  • 속성 설정을 통해 특정 헤더, 특정 파라미터와 Mapping 할 수 있다

  • 클라이언트가 보내는 요청에서 특정한 파라미터 값을 메서드의 파라미터에 바인딩하여 처리하는 방식


▸ Spring이 지원하는 Parameter ◂

@Controller의 사용 가능한 파라미터 목록 - 공식 문서

@Controller의 사용 가능한 Response 값 목록 - 공식 문서

다양한 파라미터들을 통해 Spring은 클라이언트의 요청을 유연하게 처리할 수 있게 해준다

1️⃣ 쿼리 파라미터 (Query Parameters)

  • @RequestParam : HTTP 요청의 쿼리 파라미터를 메서드의 파라미터로 바인딩

  • URL의 ? 뒤에 key=value 형태로 추가된 파라미터

    예) /search?keyword=Spring&category=tech

2️⃣ 폼 파라미터 (Form Parameters)

  • @RequestParam : 쿼리 파라미터처럼 폼 파라미터도 @RequestParam을 사용하여 처리할 수 있다

  • HTML 폼에서 POST 요청으로 전송되는 데이터

    웹 폼의 <form> 태그를 통해 서버로 데이터를 전송할 때 발생

3️⃣ URL 경로 변수 (Path Variables)

  • @PathVariable : URL 경로에서 변수를 추출하여 메서드 파라미터에 바인딩

  • URL 경로에 동적으로 변하는 값을 포함시켜 메서드의 파라미터로 전달하는 방식

    예) /user/{userId}와 같은 URL에서 {userId} 값을 파라미터로 사용할 수 있다

4️⃣ 헤더 파라미터 (Header Parameters)

  • @RequestHeader : HTTP 요청 헤더 값을 메서드 파라미터에 바인딩

  • HTTP 요청 헤더에 포함된 데이터를 메서드의 파라미터로 받을 수 있다

  • 요청의 Content-Type, Authorization 등의 헤더 값을 처리할 때 사용된다

5️⃣ 쿠키 파라미터 (Cookie Parameters)

  • @CookieValue : 요청의 쿠키 값을 메서드 파라미터에 바인딩

  • HTTP 요청에 포함된 쿠키 값을 메서드 파라미터로 받을 수 있다. 쿠키는 클라이언트에 저장되어 서버와의 요청/응답을 통해 전송된다

6️⃣ Request Body (본문 파라미터)

  • @RequestBody : 요청 본문에 포함된 JSON, XML, 또는 기타 데이터 포맷을 Java 객체로 변환하여 메서드 파라미터로 전달

  • HTTP 요청의 본문에 포함된 데이터를 처리할 때 사용된다

    예) POST 요청에서 JSON 데이터를 보낼 때 이 방법을 사용한다

7️⃣ Multipart (파일 업로드)

  • @RequestParam : 파일 업로드 시 파일을 메서드 파라미터로 받을 수 있다. 주로 MultipartFile 타입으로 처리된다

  • 파일 업로드와 관련된 파라미터를 처리할 때 사용된다. 파일을 전송하는 multipart/form-data 방식으로 데이터를 받는 경우.

8️⃣ Request 파라미터 (전체 요청 정보)

  • HttpServletRequest : HTTP 요청을 직접 처리하고, 모든 파라미터나 헤더, 쿠키 등에 접근할 수 있다

  • HTTP 요청의 전체 파라미터를 HttpServletRequest 객체로 직접 처리할 수 있다

  • 이 방법은 요청의 모든 파라미터에 접근해야 할 때 유용하다

9️⃣ Model 파라미터

  • Spring MVC에서는 모델 객체를 뷰로 전달할 때, 컨트롤러 메서드에 Model 또는 ModelMap 객체를 인자로 받아서 사용한다


►▸ 5주차 강의 정리◂◄

Spring 입문 강의자료 _5주차

▸ Client에서 Server로 Data를 전달하는 방법 ◂

Client에서 Server로 Data를 전달하는 방법은 Query Parameter, HTTP Form Data, HTTP Request Body 크게 세가지가 있다

✅ 장점

  • 간단하고 직관적이며, 데이터가 URL에 포함되어 즉시 확인할 수 있다

  • GET 요청에서 주로 사용된다

  • 캐시, 즐겨찾기 등에 용이하다

❌ 단점

  • 보안에 취약하다. 중요한 데이터는 URL로 전송되므로 URL이 노출되면 데이터가 유출될 수 있다

  • URL에 길이가 제한되어 있어, 대량의 데이터를 전송할 수 없다.

✅ 장점

  • 단순한 데이터(텍스트, 숫자 등)를 서버로 전송할 수 있으며, URL에 노출되지 않으므로 보안에 유리하다

  • 데이터 크기에 제한이 적고, 파일 전송 시에는 multipart/form-data 형식을 사용하여 파일 업로드가 가능하다

❌ 단점

  • URL에 비해 구조가 명확하지 않고, 데이터가 HTML 폼에 의존하여 사용자 입력을 받아야 한다

✅ 장점

  • 대량의 데이터 전송이 가능하다

  • JSON, XML 등 다양한 형식으로 구조화된 데이터를 전달할 수 있다

  • 보안상 URL에 노출되지 않고 데이터가 본문에 담겨 전송되므로 민감한 데이터에 적합하다

❌ 단점

  • URL에 직접적으로 보이지 않기 때문에 요청 데이터를 즉시 확인하기 어려운 경우가 많다

  • 데이터의 크기나 형태를 서버에서 적절히 처리해야 하기 때문에 조금 더 복잡할 수 있다


▸ @RequestParam ◂

URL에서 파라미터 값과 이름을 함께 전달하는 방식으로 주로 HTTP 통신 Method 중 GET 방식의 통신을 할 때 많이 사용한다

@Requestparam을 사용하면 요청 파라미터 값에 아주 쉽고 간편하게 접근(Parameter Binding)할 수 있다

❗?뒤에 오는 URL을 Query String, Query Parameter, Request Param이라 한다❗


▸ @ModelAttribute ◂

요청 파라미터를 받아 필요한 Object로 바인딩 해준다

주로 HTML 폼에서 전송된 데이터를 바인딩하고 HTTP Method POST인 경우 사용된다

Spring MVC에서 HTTP 요청 데이터를 Java 객체에 자동으로 바인딩하거나, 컨트롤러 메서드의 파라미터로 전달하는 데 사용되는 어노테이션


▸ HTTP Message Body(요청) ◂


▸ TEXT ◂


▸ HttpEntity ◂


profile
꾸준한 공부만이 답이다

1개의 댓글

comment-user-thumbnail
2025년 3월 20일

강의 정리 감사합니다 너무 어려워요..

답글 달기