전체 글 563

HTTP 요청 - 기본, 헤더 조회

HTTP 헤더 정보를 조회하는 방법을 알아보자. RequestHeaderController을 만들어 주고 package hello.springmvc.basic.request; import lombok.extern.slf4j.Slf4j; import org.apache.tomcat.jni.Local; import org.springframework.http.HttpMethod; import org.springframework.util.MultiValueMap; import org.springframework.web.bind.annotation.CookieValue; import org.springframework.web.bind.annotation.RequestHeader; import org.spring..

Spring/SpringMVC 2022.04.29

요청 매핑 - API 예시

회원 관리를 HTTP API로 만든다 하고 매핑을 어떻게 하는지 알아보자.(URL 매핑만 신경쓴다.) 회원 관리 API 회원 목록 조회: GET /users 회원 등록: POST /users 회원 조회: GET /users/{userId} 회원 수정: PATCH /users/{userId} 회원 삭제: DELETE /users/{userId} MappingClassController를 만들어 보자. // MappingClassController package hello.springmvc.basic.requestmapping; import org.springframework.web.bind.annotation.*; @RestController public class MappingClassControlle..

Spring/SpringMVC 2022.04.29

스프링MVC 기본기능

프로젝트를 먼저 생성해보자. 여기서 프로젝트 생성 후 SpringmvcApplication을 돌려보자. package hello.springmvc; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class SpringmvcApplication { public static void main(String[] args) { SpringApplication.run(SpringmvcApplication.class, args); } } Welcome 페이지도 한번 만들어 보자. 스프링 부트에 Ja..

Spring/SpringMVC 2022.04.29

SpringMVC 구조 정리

직접 만든 MVC 프레임 워크 구조를 살피면서 SpringMVC 구조와 비교해보자. SpringMVC 구조는 고객의 요청이 오면(HTTP 요청) FrontController 역할을 하는 DispatcherServlet이 핸들러 매핑에게 핸들러 조회를 하고 여러개의 핸들러를 스프링 부트가 등록을 해놓는다. 핸들러 어댑터 목록에 던지면 핸들러 어댑터가 얘를 처리할 수 있는데 하고 핸들러 어댑터가 튀어나온다. 핸들러 어댑터를 통해서 실제 핸들러를 호출하고(컨트롤러) 반환을 해준다. 그리고 View가 렌더가 되면서 실제 HTTP 고객의 응답에 나가게 된다. HandlerMapping은 2개가 있다. 0 = RequestMappingHandlerMapping : 애노테이션 기반의 컨트롤러인 @RequestMapp..

Spring/SpringMVC 2022.04.28

스프링 MVC를 시작과 컨트롤러 통합 & 실용적인 방식

@RequestMapping @RequestMapping 애노테이션 컨트롤러가 등장하면서, MVC 부분도 스프링의 한 부분이다. @RequestMapping RequestMappingHandlerMapping RequestMappingHandlerAdapter 이제 본격적으로 컨트롤러를 @RequestMapping 기반의 스프링 MVC 컨트롤러로 변경해보자. 회원 등록 폼을 만들어보자. SpringMemberFormControllerV1 package hello.setvlet.web.springmvc.v1; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping..

Spring/SpringMVC 2022.04.28

뷰 리졸버

뷰 리졸버에 대해서 알아보자. View를 사용할 수 있도록 아래 코드를 추가해주고 return new ModelAndView("new-form"); 원래 만들었던 OldController에서 return 값을 new-form으로 설정해준다. package hello.setvlet.web.springmvc.old; import org.springframework.stereotype.Component; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.mvc.Controller; import javax.servlet.http.HttpServletRequest; import javax.servle..

Spring/SpringMVC 2022.04.28

핸들러 매핑과 핸들러 어댑터

springmvc 패키지를 만들고 OldController 클래스를 만들어보자. 이게 과거 버전 스프링 컨트롤러이다. 실행하여 @Component에 적혀있는 url로 들어가게 되면 http://localhost:8080/springmvc/old-controller package hello.setvlet.web.springmvc.old; import org.springframework.stereotype.Component; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.mvc.Controller; import javax.servlet.http.HttpServletRequest; import..

Spring/SpringMVC 2022.04.28

HTTP 상태코드 2xx 3xx 4xx 알아보자.

2xx에 대해서 보자. 클라이언트의 요청을 성공적으로 처리 200 Ok 201 Created 202 Accepted 204 No Content 클라이언트에서 요청한 걸 가지고 서버에서 생성한걸 뜻함 200은 요청이 성공이 된 것이고 201은 요청이 성공해서 새로운 리소스가 생성이 되는데 생성된 리소스는 응답의 Location 헤더 필드로 식별이 가능하다. 202 Accepted는 요청이 접수되었으나 처리가 완료되지 않은 걸 뜻하고 배치 처리 같은 곳에서 사용 예) 요청 접수 후에 1시간 뒤 배치 프로세스가 요청을 처리한다. 204 No Content는 서버가 요청을 성공적으로 수행을 했지만, 응답 페이로드 본문에 보낼 데이터가 없는 걸 뜻한다. 예) 문서 편집기에서 sava 버튼 save 버튼의 결과로 ..

HTTP 2022.04.27

HTTP 상태코드 소개

클라이언트가 보낸 요청의 처리 상태를 응답에서 알려주는 기능 1xx(informational): 요청이 수신되어 처리중 2xx(Successful): 요청 정상 처리 3xx(Redirection): 요청을 완료하려면 추가 행동이 필요 4xx(Client Error): 클라이언트 오류, 잘못된 문법등으로 서버가 요청을 수행 못함 5xx(Server Error): 서버 오류, 서버가 정상 요청을 처리하지 못함 만약에 모르는 상태 코드가 나타나면? 클라이언트가 인식할 수 없는 상태코드를 서버가 반환하면? 클라이언트는 상위 상태코드로 해석해서 처리한다. 미래에 새로운 상태 코드가 추가되어도 클라이언트를 변경하지 않아도 된다. 299 이건 뭐고 -> 2xx니까 Successful이다. 451 이거는? -> 4xx..

카테고리 없음 2022.04.27