WEB
[Spring] 스프링 공부 #25
PRG Post/Redirect/Get 기존 코드 @PostMapping("/add") public String add(@ModelAttribute Item item) { itemRepository.save(item); return "basic/item"; } 기존 코드의 문제점 : 이러한 경고 메시지와 함께 새로고침할 경우 데이터가 계속 추가되는 문제 발생 위 문제를 해결하기 위해서 상품 저장이 성공할 경우, 상품 상세 화면으로 리다이렉트 함으로써 해결할 수 있다. @PostMapping("/add") public String add(@ModelAttribute Item item) { itemRepository.save(item); // return "basic/item"; return "redirec..
[Spring] 스프링 공부 #24
요청 매핑 HTTP 메서드를 축약한 애노테이션 사용 @RequestMapping(value = "/mapping-get-v1", method = RequestMethod.GET) public String mappingGetV1() { log.info("mappingGetV1"); return "ok"; } @GetMapping(value = "/mappring-get-v2") public String mappingGetV2() { log.info("mapping-get-v2"); return "ok"; } 매핑에 경로 변수를 사용 @GetMapping("/mapping/{userId}") public String mappingPath(@PathVariable("userId") String data) { ..
[Spring] 스프링 공부 #23
Spring MVC new-form @RequestMapping("/springmvc/v1/members/new-form") public ModelAndView process() { return new ModelAndView("new-form"); } save @RequestMapping("/springmvc/v1/members/save") public ModelAndView process(HttpServletRequest request) { String username = request.getParameter("username"); int age = Integer.parseInt(request.getParameter("age")); Member member = new Member(username, ag..
[Spring] 스프링 공부 #22
단순하고 실용적인 컨트롤러 -v4 동작과정은 모델을 추가한 v3와 거의 유사하다. 컨트롤러가 더이상 ModelView를 반환하지 않고, ViewName만 반환한다. 컨트롤러 인터페이스 public interface ControllerV4 { /** * @param paramMap * @param model * @return viewName */ String process(Map paramMap, Map model); } 프론트 컨트롤러 @WebServlet(name = "frontControllerServletV4", urlPatterns = "/front-controller/v4/*") public class FrontControllerServletV4 extends HttpServlet { priva..
[Spring] 스프링 공부 #21
FrontController - v1 프론트 컨트롤로 서블릿 하나로 클라이언트의 요청을 처리한다. 프론트 컨트롤러에서 요청에 맞는 컨트롤러를 찾아서 호출한다. 공통 처리가 가능해진다. @WebServlet(name = "frontControllerServletV1", urlPatterns = "/front-controller/v1/*") public class FrontControllerServletV1 extends HttpServlet { private Map controllerMap = new HashMap(); public FrontControllerServletV1() { controllerMap.put("/front-controller/v1/members/new-form", new Member..
[Spring] 스프링 공부 #20
MVC 패턴이란? 사용자 인터페이스, 데이터 및 논리 제어를 구현하는데 널리 사용되는 소프트웨어 디자인 패턴입니다. 소프트웨어의 비즈니스 로직과 화면을 구분하는데 중점을 두고 있습니다. 이러한 "관심사 분리" 는 더나은 업무의 분리와 향상된 관리를 제공합니다. 컨트롤러 (Controller) HTTP 요청을 받아서 파라미터를 검증하고, 비즈니스 로직을 실행한다. 그리고 뷰에 전달할 결과 데이터를 조회해서 모델에 담는다. 모델 (Model) 뷰에 출력할 데이터를 담아둔다. 뷰가 필요한 데이터를 모두 모델에 담아서 전달해주는 덕분에 뷰는 비즈니스 로직이나 데이터 접근을 몰라도 되고, 화면을 렌더링 하는 일에 집중할 수 있다. 뷰 (View) 모델에 담겨있는 데이터를 사용해서 화면을 그리는 일에 집중한다. 여..
[네트워크] HTTP 공부 #7
HTTP 헤더 HTTP 헤더란? 클라이언트와 서버가 요청 또는 응답으로 부가적인 정보를 전송할 수 있도록 한다. HTTP 전송에 필요한 모든 부가정보를 의미한다. 표현은 요청이나 응답에서 전달할 실제 데이터를 의미한다. 표현 헤더는 표현 데이터를 해석할 수 있는 정보를 제공한다. 표현 헤더 Content-Type 표현 데이터 형식 ex) text/html, application/json, image/png Content-Encoding 표현 데이터의 압축 방식 ex) gzip, deflate, identity Content-Language 표현 데이터의 자연 언어 ex) ko, en, en-US Content-Length 표현 데이터의 길이 바이트 단위 컨텐츠 협상 Accept 돌려줄 데이터 타입에 대해..