목록Spring (29)
그라가승훈
- 의존성 설정 (JSP 파일 연동) 1. 프로젝트 생성 (의존성 체크) 의존성 체크 (강의에서는 Spring Boot 버전 2.2.6) Spring Boot DevTools Lombok Spring Data JPA MySQL Driver Spring Security Spring Web OAuth2 Client (지금은 체크 X 노가다로 진행할 예정) 2. 의존성 설명 Spring Boot DevTools 자동 재시작 프로젝트에서 어떤 파일이 변경되면 자동으로 라이브러리 리로드 기능을 제공해준다. LomBok Getter/Setter 또는 생성자 등 어노테이션을 통해 자동생성을 해 줌. Spring Data JPA DataBase를 할때 JPA를 통해 만듦으로써 ORM을 활용할 수 있다. MySQL Dr..
1. JDK 1.8 설치 강의에서 사용한 JDK Oracle JDK 1.8 설치 링크(Oracle 회원가입 필요) https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html 내가 사용한 JDK Azul JDK Zulu 1.8 설치 링크 https://www.azul.com/downloads/zulu-community/?version=java-8-lts&os=windows&architecture=x86-64-bit&package=jdk 2. MySQL 설치 강의 버전 : 5.7 설치링크 https://dev.mysql.com/downloads/windows/installer/5.7.html 내가 사용한 버전 : 8.0 3. 쿠키런 ..
1. 톰캣 실행시 web.xml로 일 처리 시작 2. ContextLoaderListener가 Create 3. root-context.xml가 읽어진다. 4. root-context.xml가 읽어지고 DB관련된 객체들을 컴포넌트 스캔해서 메모리에 올려진다. 5. 사용자로부터 request 요청이 들어온다. 6~7. DispatcherServlet이 FrontController 패턴을 이용해서 web.xml에서 불려진다. servlet-context.xml이 웹과 관련된 메모리를 올리고, DispatcherServlet이 주소를 분배한다. 8. 실행되고 응답을 할때 Data로 응답할지 html파일로 응답할지 결정.
- 요청 주소에 따른 적절한 컨트롤로 요청 (Handler Mapping) 및 응답 GET 요청 ⇒ http://localhost:8080/post/1 해당 주소 요청이 오면 적절한 컨트롤러의 함수를 찾아서 실행한다. - 개념 알기 Dispachservlet이 컴포넌트 스캔을 사용하여 A클래스가 메모리에 띄우면, Dispachservlet이 주소분배를 하기 위해 handlermapping에게 넘긴다. handlermapping이 적절한 함수를 찾고 실행한 것을 ‘hello’라고 하자. hello 리턴값을 response 할 텐데 이런 hello라는 메세지가 응답되면 이건 데이터 리턴이다. 만약 hello 메세지가 아닌 파일을 리턴하려면 ViewResolver가 관여한다. 관여한다면, 굵은 글씨 Web-I..
- DispatchServlet의 목적 (컴포넌트 스캔, 주소 분배) 1. 주소 분배 DispatchServlet은 FrontController 의 역할처럼 주소를 분배해준다. 주소를 분배해줄 때는 메모리에 올라가있어야 분배를 해줄 수 있는데, 그것을 컴포넌트 스캔을 활용한다. 2. 컴포넌트 스캔 스프링 부트 부터는 패키지 아래에 있는 자바파일들을 모두 컴포넌트 스캔한다. 스캔할 때 어노테이션이 사용되는 자바파일이 있으면 IoC로 알아서 메모리에 올려준다. - ApplicationContext 개발자가 직접 new를 통해 객체를 생성하게 된다면 해당 객체를 가르키는 레퍼런스 변수를 관리하기 어렵다. 그래서 스프링이 직접 객체를 관리하는 IoC로 수 많은 객체들이 ApplicationContext에 등록된..
- FrontController 패턴 web.xml에 다 정의하기 힘듦으로 최초 앞단에서 request 요청을 받아 필요한 클래스에 넘겨준다. 특정주소(.do)를 FrontController에서 처리하도록 하면, A가 request할때 특정주소(.do)가 있을시 FrontController에서 가져와 처리한다. 이때 새로운 요청이 생기기 때문에 Request와 Response가 새롭게 new 될 수 있다. 그래서 RequestDispatcher를 사용하면 기존 A의 Request와 Response를 사용할 수 있다. - RequestDispatcher 필요한 클래스 요청이 도달했을 때 FontController에 도착한 Request와 Response를 그대로 유지시켜 준다. A 페이지에서 a데이터를 받..