전체 글80 Model과 @ModelAttribute ModelModel은 객체Spring이 지원하는 기능으로, Key와 Value로 이루어진 HashMapController에서 addAttribute("key", value)를 통해 View에 전달할 데이터를 저장할 수 있음Servlet의 request.setAttribute()와 비슷한 역할따로 반환이 필요 없음사용 예시@Controllerpublic class ModelTest { // 파라미터를 통한 전달 @GetMapping("/test") public String testMethod(@RequestParam name, Model model){ model.addAttribute("name", name); return "Ok"; }} T.. 2024. 6. 8. @Controller와 @RestController @Controller@Controller는 Spring MVC의 Controller로 주로 View를 반환하기 위해 사용하지만 @ResponseBody를 통해 Data를 반환해야 하는 경우가 존재@RestContoller@RestController는 @Controller와 @ResponseBody가 합쳐진 형태로 JSON 형태의 객체 데이터를 반환@ResponseBody가 적용되므로 선언 필요XView 템플릿을 사용하는 것이 아니라, HTTP 메시지 바디에 직접 데이터를 입력Rest API(HTTP API)를 만들 때 사용하는 컨트롤러View 반환 과정클라이언트는 URL 형식으로 요청을 보냄DispatcherServlet이 요청을 위임할 Handler Mapping을 찾음Handler Mapping을 통.. 2024. 6. 6. @RequestBody와 @ResponseBody HTTP 메시지 구조message body서버 간의 HTTP 통신에서 요청과 응답을 보낼 때, 필요한 데이터를 담아서 보내는 공간HTML, 이미지, JSON 등 byte로 표현할 수 있는 모든 데이터 전송 가능{"id" : "1", "name" : "test"} // body 예시(JSON 형식)@RequestBodyHttpRequest의 본문 requestBody의 내용을 자바 객체로 매핑하는 역할(HTTP 요청의 body 내용 -> Java)DispatcherServlet에서 해당 HttpRequest의 미디어 타입을 확인하고, 타입에 맞는 MessageConverter를 통해 요청 본문인 requestBody를 통째로 변환하여 메서드로 전달클라이언트측에서 요청 데이터를 body에 담고 content.. 2024. 6. 6. 애노테이션(Annotation) 애노테이션(Annotation): 사전적 의미로는 주석을 의미하나, 일반적인 주석과 다르게 코드를 작성할 수 있음. 클래스, 메서드, 변수, 매개변수 등에 사용이 가능하며 문자 @로 시작Bean빈(Bean)은 스프링 컨테이너가 관리하는 자바 객체를 뜻함인스턴스화된 객체를 의미하며, 스프링 컨테이너에 등록된 객체를 스프링 빈이라고 함(new 대신 사용)사용하는 가장 큰 이유는 스프링 간 객체가 의존관계를 관리하도록 하는 것에 큰 목적. 객체가 의존관계를 등록할 때 스프링 컨테이너에서 해당하는 빈을 찾고, 그 빈과 의존성을 만듬Bean을 주입받는 방식@Autowiredsetter method@AllArgsConstructor(생성자)@Bean개발자가 직접 제어가 불가능한 외부 라이브러리등을 Bean에 등록하.. 2024. 5. 23. 스프링 MVC 구조 동작 순서핸들러 조회 : 핸들러 매핑을 통해 요청 URL에 매핑된 핸들러(컨트롤러)를 조회핸들러 어댑터 조회 : 핸들러를 실행할 수 있는 핸들러 어댑터를 조회핸들러 어댑터 실행 : 핸들러 어댑터를 실행핸들러 실행 : 핸들러 어댑터가 실제 핸들러를 실행ModelAndView 반환 : 핸들러 어댑터는 핸들러가 반환하는 정보를 ModelAndView로 변환 후 반환viewResolver 호출 : 뷰 리졸버를 찾고 실행View 반환 : 뷰 리졸버는 뷰의 논리 이름을 물리 이름으로 바꾸고, 렌더링 역할을 담당하는 뷰 객체를 반환View 렌더링 : 뷰를 통해서 뷰를 렌더링 함핸들러(컨트롤러) 조회HandlerMapping핸들러 매핑에서 이 컨트롤러를 찾을 수 있어야 함ex : 스프링 빈의 이름으로 핸들러를 찾을 수.. 2024. 5. 22. 캐시와 검증 헤더 캐시자주 사용하는 데이터나 값을 미리 복사해 놓는 임시 장소로 저장 공간이 작고 비용이 비싼 대신 빠른 성능을 제공캐시가 없는 경우데이터가 변경되지 않아도 계속 네트워크를 통해서 데이터를 다운로드 받아야 함인터넷 네트워크는 매우 느리고 비쌈브라우저 로딩 속도가 느림느린 사용자 경험을 줌캐시가 있는 경우캐시 가능 시간동안 네트워크를 사용하지 않아도 됨비싼 네트워크 사용량을 줄일 수 있음브라우저 로딩 속도가 매우 빠름빠른 사용자 경험을 줌캐시 시간 초과cache-control: max-age=캐시 유효 시간(초) 로 표현캐시 유효 시간이 초과하면 서버를 통해 데이터를 다시 조회하고 캐시를 갱신다시 네트워크 다운로드 발생캐시 유효 시간 초과캐시 유효 시간이 초과 후 서버에 다시 요청 시 다음 2가지 상황이 나.. 2024. 2. 21. 이전 1 ··· 7 8 9 10 11 12 13 14 다음