BoostCource/Back-end 24

#03. BE - Spring MVC의 구성요소

http://www.edwith.org/boostcourse-web * DispatcherServlet 프론트 컨트롤러 (Front Controller)클라이언트의 모든 요청을 받은 후 이를 처리할 핸들러에게 넘기고 핸들러가 처리한 결과를 받아 사용자에게 응답 결과를 보여준다.DispathcerServlet은 여러 컴포넌트를 이용해 작업을 처리한다. * 요청 선처리 작업시 사용된 컴포넌트 org.springframework.web.servlet.LocaleResolver지역 정보를 결정해주는 전략 오브젝트이다.디폴트인 AcceptHeaderLocalResolver는 HTTP 헤더의 정보를 보고 지역정보를 설정해준다. org.springframework.web.servlet.FlashMapManagerFl..

#05. BE - Spring MVC에서 Session 사용하기

참고: [boostcourse full-stack] http://www.edwith.org/boostcourse-web * @SessionAttributes / @ModelAttribute@SessionAttributes 파라미터로 지정된 이름과 같은 이름이 @ModelAttribute에 지정되어 있을 경우 메소드가 반환되는 값은 세션에 저장된다. - 세션에 값을 초기화하기@SessionAttributes("user") public class LoginController { @ModelAttribute("user") public User setUpUserForm() { return new User(); } } @SessionAttributes의 파라미터와 같은 이름이 @ModelAttribute에 있을 ..

#05. BE - Session을 이용한 상태정보 유지하기

참고: [boostcourse full-stack] http://www.edwith.org/boostcourse-web /guess로 요청을 하면 컴퓨터가 1부터 100 사이의 임의의 값 중의 하나를 맞추는 메시지 출력 (해당 값은 세션에 저장)사용자는 1부터 100 사이의 값을 입력 입력한 값이 세션 값보다 작으면, 입력한 값이 작다고 출력입력한 값이 세션 값보다 크면, 입력한 값이 크다고 출력입력한 값이 세션 값과 같다면 몇 번째에 맞췄다고 출력 GuessNumberController1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253package kr.or.connect.gues..

#05. BE - Session

참고: [boostcourse full-stack] http://www.edwith.org/boostcourse-web * 세션클라이언트 별로 서버에 저장되는 정보 웹 클라이언트가 서버측에 요청을 보내게 되면 서버는 클라이언트를 식별하는 session id를 생성한다.서버는 session id를 이용해서 key와 value를 이용한 저장소인 HttpSession을 생성한다.서버는 session id를 저장하고 있는 쿠키를 생성하여 클라이언트에 전송한다.클라이언트는 서버측에 요청을 보낼때 session id를 가지고 있는 쿠키를 전송한다.서버는 쿠키에 있는 session id를 이용해서 그 전 요청에서 생성한 HttpSession을 찾고 사용한다. - 세션 생성 및 얻기HttpSession session ..

#05. BE - 쿠키

참고: [boostcourse full-stack] http://www.edwith.org/boostcourse-web * 쿠키클라이언트 단에 저장되는 작은 정보의 단위클라이언트에서 생성하고 저장될 수 있고, 서버 단에서 전송한 쿠키가 클라이언트에 저장될 수 있다. 서버에서 클라이언트의 브라우저로 전송되어 사용자의 컴퓨터에 저장한다.저장된 쿠키는 다시 해당하는 웹 페이지에 접속할 때, 브라우저에서 서버로 쿠키를 전송한다.쿠키는 이름(name)과 값(value) 쌍으로 정보를 저장한다. - 이름-값 쌍 외에도 도메인(Domain), 경로(Path), 유효기간(Max-Age, Expires), 보안(Secure), HttpOnly 속성을 저장할 수 있다. - 쿠키는 그 수와 크기에 제한이 존재브라우저별로 제..

#05. BE - 상태정보

참고: [boostcourse full-stack] http://www.edwith.org/boostcourse-web * 웹에서의 상태 유지 기술HTTP프로토콜은 상태 유지가 안되는 프로토콜이다. - 이전에 무엇을 했고, 지금 무엇을 했는지에 대한 정보를 갖고 있지 않음 - 웹 브라우저(클라이언트)의 요청에 대한 응답을 하고 나면 해당 클라이언트와의 연결을 지속하지 않는다. * 쿠키(Cookie)와 세션(Session) 쿠키 - 사용자 컴퓨터에 저장 - 저장된 정보를 다른 사람 또는 시스템이 볼 수 있는 단점 - 유효시간이 지나면 사라짐 세션 - 서버에 저장 - 서버가 종료되거나 유효시간이 지나면 사라진다. 쿠키(Cookie) 동작 이해 1/2 => 쿠키는 이름과 값으로 구성이 되어있다. 유지시간 등의..

#03. BE - RestController

http://www.edwith.org/boostcourse-web @RestController Spring 4 에서 Rest API 또는 Web API를 개발하기 위해 등장한 애노테이션이전 버전의 @Controller와 @ResponseBody를 포함한다. * MessageConvertor 자바 객체와 HTTP 요청 / 응답 바디를 변환하는 역할@ResponseBody, @RequestBody@EnableWebMvc 로 인한 기본 설정WebMvcConfigurationSupport 를 사용하여 Spring MVC 구현Default MessageConvertor 를 제공링크 바로가기 의 addDefaultHttpMessageConverters메소드 항목 참조 * MessageConvertor 종류 * J..

#03. BE - 레이어드 아키텍처(Layered Architecture)

http://www.edwith.org/boostcourse-web * Controller에서 중복되는 부분을 처리하려면? 별도의 객체로 분리별도의 메소드로 분리 * 컨트롤러와 서비스 비지니스 메소드를 별도의 Service객체에서 구현하도록 하고 컨트롤러는 Service객체를 사용하도록 한다. * 서비스(Service)객체란?비지니스 로직(Business logic)을 수행하는 메소드를 가지고 있는 객체를 서비스 객체라고 한다. 보통 하나의 비지니스 로직은 하나의 트랜잭션으로 동작한다. * 트랜잭션(Transaction)이란? 트랜잭션의 특징은 크게 4가지원자성 (Atomicity)일관성 (Consistency)독립성 (Isolation)지속성 (Durability) - 원자성 (Atomicity)예를 ..

#03. BE - Spring MVC 실습

http://www.edwith.org/boostcourse-web 전에 했던 실습 순서를 참고하여, Maven 프로젝트 생성 후 pom.xml에 라이브러리를 추가하고, Servlet 버전을 3.1로 올려준다.Spring MVC를 사용하기 위해 아래와 같은 순서로 설정을 추가한 후 실습을 진행한다. - DispatcherServlet을 FrontController로 설정해 주기.세 가지 방법이 존재한다.web.xml 파일에 설정 (가장 많이 사용되는 방법이다.)javax.servlet.ServletContainerInitializer 사용 - 서블릿 3.0 스펙 이상에서 web.xml파일을 대신해서 사용할 수 있다. => 이번 실습에서는 사용하지 않는다.org.springframework.web.WebA..