분류 전체보기 (96) 썸네일형 리스트형 김영한 - 스프링 MVC 2편 - 백엔드 웹 개발 핵심 기술 6일차 로그인처리1 - 쿠키, 세션 로그인 상태 유지하기 로그인의 상태를 유지하기 위해 쿠키를 사용해 보았다. 서버에서 로그인에 성공하면 HTTP 응답에 쿠키를 담아서 브라우저에 전달한다. 브라우저는 앞으로 해당 쿠키를 지속해서 보내준다. 쿠키에는 영속쿠키와 세션 쿠키가 있다. 영속 쿠키: 만료 날짜를 입력하면 해당 날짜까지 유지 세션 쿠키: 만료 날짜를 생략하면 브라우저 종료시 까지만 유지 public String login(@Valid @ModelAttribute LoginForm form, BindingResult bindingResult, HttpServletResponse response) { if (bindingResult.hasErrors()) { return "login/loginForm"; } .. 김영한 - 스프링 MVC 2편 - 백엔드 웹 개발 핵심 기술 5일차 Bean Validation Bean Validation 이란 ? Bean Validation 2.0이라는 기술 표준이다. 검증 애노테이션과 여러 인터페이스의 모음이다. Bean Validation을 사용하려면 의존관계를 추가해야 한다. implementation 'org.springframework.boot:spring-boot-starter-validation' package hello.itemservice.domain.item; import lombok.Data; import org.hibernate.validator.constraints.Range; import javax.validation.constraints.Max; import javax.validation.constraints.NotBla.. 김영한 - 스프링 MVC 2편 - 백엔드 웹 개발 핵심 기술 4일차 BindingResult public String addItemV1(@ModelAttribute Item item, BindingResult bindingResult, RedirectAttributes redirectAttributes, Model model) { //검증 로직 if(!StringUtils.hasText(item.getItemName())) { bindingResult.addError(new FieldError("item", "itemName", "상품 이름은 필수 입니다.")); } if(item.getPrice() == null || item.getPrice() 1000000){ bindingResult.addError(new Fiel.. 김영한 - 스프링 MVC 2편 - 백엔드 웹 개발 핵심 기술 3일차 메시지,국제화 기획자가 화면에 보이는 문구를 바꿔달라고 요청하면 어떻게 해야할까? 예를들면 상품명 -> 상품이름으로 바꿔달라고 요청한다. 여러 화면에 보이는 상품명이란 단어를 다 찾아가면서 바꿔야 할 것이다. 화면수가 적으면 문제가 되지 않지만 화면이 수십개 이상이라면 수십개의 파일을 모두 고쳐야한다. 이러한 문제를 해결 하기위해 스프링은 메시지 관리 기능을 제공한다. 메시지 관리 기능을 사용하려면 스프링이 제공하는 MessageSource를 스프링 빈으로 등록하면되는데, MessageSource는 인터페이스이다. 따라서 구현체인 ResourceBundleMessageSource를 스프링 빈으로 등록하면 된다. 스프링 부트는 MessageSource를 자동으로 스프링 빈으로 등록한다. label.item.. 김영한 - 스프링 MVC 2편 - 백엔드 웹 개발 핵심 기술 2일차 타임리프 스프링 통합 타임리프는 스프링과 통합을 위한 다양한 기능을 편리하게 제공한다. 스프링 통합으로 추가되는 기능들 스프링의 SpringEL 문법 통합 ${@myBean.doSomething()}처럼 스프링 빈 호출 지원 편리한 폼 관리를 위한 추가 속성 · th:object · th:field , th:errors , th:errorclass 폼 컴포넌트 기능 · checkbox , radio , button , List 등을 편리하게 사용할 수 있는 기능 지원 스프링의 메시지, 국제화 기능의 편리한 통합 스프링의 검증, 오류 처리 통합 스프링의 변환 서비스 통합 입력 폼 처리 th:object : 커맨드 객체를 지정한다. *{...} : 선택 변수 식 이라고 한다. th:object에서 선택한 객.. 김영한 - 스프링 MVC 2편 - 백엔드 웹 개발 핵심 기술 1일차 타임리프 특징 서버 사이드 HTML 렌더링 (SSR) 타임리프는 백엔드 서버에서 HTML을 동적으로 렌더링 하는 용도로 사용된다. 네츄럴 템플릿 타임리프는 순수 HTML을 최대한 유지하는 특징이 있다. 타임리프로 작성한 파일은 HTML을 유지하기 때문에 웹 브라우저에서 파일을 직접 열어도 내용을 확인할 수 있고, 서버를 통해 뷰 템플릿을 거치면 동적으로 변경된 결과를 확인할 수 있다. 스프링 통합지원 타임리프는 스프링과 자연스럽게 통합되고, 스프링의 다양한 기능을 편리하게 사용할 수 있게 지원한다. 타임리프 사용선언 텍스트 - text , utext 타임리프는 기본적으로 HTML의 콘텐츠에 데이터를 출력할 때 th:text를 사용하면 된다. ex) HTML 태그의 속성이 아니라 HTML 콘텐츠 영역 안에.. 김영한 - 스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 7일차 참고자료 https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-mvc-1/dashboard HTTP 메시지 컨버터 뷰 템플릿으로 HTML을 생성해서 응답하는 것이 아니라, HTTP API처럼 JSON 데이터를 HTTP 메시지 바디에서 직접 읽거나 쓰는 경우 HTTP 메시지 컨버터를 사용하며 편리하다. @ResponseBody를 사용 HTTP의 BODY에 문자 내용을 직접 반환 viewResolver 대신에 HttpMessageConverter가 동작 기본 문자처리: StringHttpMessageConverter 기본 객체처리: MappingJackson2HttpMessageConverter canRead() , canWriter() : 메시지 컨버터.. 김영한 - 스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 6일차 HTTP 요청 - 기본, 헤더 조회 package hello.springmvc.basic.request; import lombok.extern.slf4j.Slf4j; 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.springframework.web.bind.annotation.RequestMapping; import org.springframework.we.. 이전 1 ··· 6 7 8 9 10 11 12 다음