목록Spring/인프런_개념 (25)
빙응의 공부 블로그

📝로그인과 쿠키 로그인을 할때 매번 로그인을 하게 만들면 매우 불편하다. 한번 로그인을 하면 어느 시점까지 자동로그인이 되게 해야 편리한 웹 사이트라 할 수 있다. 쿠키는 이러한 기능을 제공한다. 비상태적 웹 프로토콜에서 상태 정보를 가질 수 있다. 이번 포스팅에서는 이러한 자동 로그인을 만들어보자 일단 로그인 컨트롤러를 만들어보자, 사용자 로그인 정보를 보는 쿠키도 추가해서 @PostMapping("/login") public String login(@Valid @ModelAttribute LoginForm form, BindingResult bindingResult, HttpServletResponse response) { //사용자 오류 if (bindingResult.hasErrors()) { r..

📝소프트웨어 개발 프로세스 - 검증&확인 검증과 확인 스프트웨어 테스트 기준에서 사용자&개발자 관점에서 하는 것을 말한다. 검증(Validation) 시스템이 실제 요구사항을 충족하는지 확인한다. 사용자 관점에서 테스트를 진행하는 것이다. 확인(Verification) 개발된 소프트웨어가 실제 요구사항을 정확히 따르고 있는지 확인한다. 개발자 관점에서 테스트를 진행하는 것이다. 📝스프링에서의 검증 지금까지 만든 웹 애플리케이션은 폼 입력시 숫자를 문자로 작성하면 검증 오류가 발생하여 오류 화면으로 이동하였다. 이렇게 되면 사용자는 처음부터 해당 폼을 다시 입력해야 하기 때문에 검증을 통해서 오류가 발생하면 따로 처리해야 한다. 컨트롤러의 중요한 역할 중 하나는 HTTP 요청이 정상인지 검증하는 것이다. ..

📝메시지 만약 요구사항을 수정하는 중에 각 웹 페이지의 상품명이라는 단어를 모두 상품이름으로 고쳐야 한다면 어떻게 해야할까? 그러면 HTML 구현 기준으로 모두 고쳐야 한다. 이것을 HTML 하드 코딩이라고 한다. 하드 코드 예) 상품명 가격 수량 이것을 해결하는 방법이 메시지 일관 관리 기능이다. messages.properties 라는 메시지 관리용 파일을 만들고 item=상품 item.id=상품ID item.itemName=상품명 item.price=가격 item.quantity=수량 각 HTML들은 다음과 같이 해당 데이터를 key 값으로 불러서 사용할 것이다. addForm.html editForm.html 📝국제화 메시지에서 한 발 더 기능을 업그레이드해보자. 메시지에서 설명한 메시지 파일(m..

📝HTTP 응답 - 정적 리소스, 뷰 템플릿 스프링에서 응답 데이터를 만드는 방법은 크게 3가지이다. 정적 리소스 웹브라우저의 정적인 HTML, CSS, JS를 제공할 때, 정적 리소스를 사용한다. 뷰 템플릿 사용 웹 브라우저에 동적인 HTML을 제공할 때는 뷰 템플릿을 사용 HTTP 메시지 사용 HTTP API를 제공하는 경우에는 HTML이 아니라 데이터를 전달해야 하므로, HTTP 메시지 바디에 JSON 같은 데이터를 실어서 보낸다. 🚩정적리소스 스프링 부트는 클래스패스의 다음 디렉토리에 있는 정적 리소스를 제공한다. /static, /public, /resources, /META-INF/resources 정적 리소스 경로 src/main/resources/static 다음 경로에 파일이 들어있으면 ..

📝요청 매핑 스프링 컨트롤러는 다양한 방법으로 요청을 매핑할 수 있다. 기본 요청 /** * 기본 요청 * 둘다 허용 /hello-basic, /hello-basic/ * HTTP 메서드 모두 허용 GET, HEAD, POST, PUT, PATCH, DELETE */ @RequestMapping("/hello-basic") public String helloBasic() { log.info("helloBasic"); return "ok"; } HTTP 메서드 매핑 /** * method 특정 HTTP 메서드 요청만 허용 * GET, HEAD, POST, PUT, PATCH, DELETE */ @RequestMapping(value = "/mapping-get-v1", method = RequestMeth..

📝@RequestMapping 스프링은 애노테이션을 활용한 매우 유연하고, 실용적인 컨트롤러를 만들었다. 이것이 바로 @RequestMapping이다. @RequestMapping RequestMappingHandlerMapping - 핸들러 매핑 RequestMappingHandlerAdapter - 핸들러 어댑터 @Controller public class SpringMemberFormControllerV1 { @RequestMapping("/springmvc/v1/members/new-form") public ModelAndView process(){ return new ModelAndView("new-form"); } } @Controller 스프링이 자동으로 스프링 빈으로 등록한다. 스프링 MV..