인프런 - 스프링부트 개념 정리(이론) - 정리 14

14강 - 스프링부트가 응답(Response)하는 방법이 궁금해요!

Inflearn 최주호 강사님의 스프링부트 개념정리(이론) 강의를 듣고 정리한 내용입니다. 해당 주소로 요청이 오면 적절한 컨트롤러의 함수를 찾아서 실행한다. 응답 2가지 종류: html, Data html 파일로 응답할 때, ViewResolver가 관여(파일 경로, 확장자를 자동으로 붙여주는 역할) ex. WEB-INF/views/hello.jsp (톰캣이 html로 파일 형식 바꿔줌) Data로 응답하게 되면 MessageConverter가 작동하게 되는데 메시지를 컨버팅할 때 기본전략은 json이다. - @ResponseBody 붙이기 ex. 리턴값 예시: {"id":1, "name":"hong"}

13강 - 애플리케이션 컨텍스트란 무엇인가요?

Inflearn 최주호 강사님의 스프링부트 개념정리(이론) 강의를 듣고 정리한 내용입니다. 톰캣이 실행되면 web.xml 동작 -> 디스패처서블릿(프론트컨트롤러+리쿼스트 서블릿) 동작 - 컴포넌트 스캔(src 내부의 모든 파일을 어노테이션 기반으로 스캔해서 필요한 것들을 메모리에 띄운다.(객체를 ApplicationContext에 등록) (@Controller, @RestController, @Configuration, @Repository, @Service, @Component 등 이미 스프링이 정해놓은 것들 & 커스텀해서 만들 수도 있음) & 메모리에 띄워진 것을 각각 처리할 곳으로 보냄 web.xml에서 디스패처 서블릿으로 넘어갈 때, ContextLoaderListener가 먼저 실행됨. - DB..

12강 - 디스패처 서블릿이 무엇인가요?

Inflearn 최주호 강사님의 스프링부트 개념정리(이론) 강의를 듣고 정리한 내용입니다. FrontController 패턴 최초 앞단에서 request 요청을 받아서 필요한 클래스에 넘겨준다. web.xml에 다 정의하기 힘들기 때문에 FrontController에 정의한다. 요청이 톰캣으로 가면 request-요청한 사람의 데이터를 담고 있음, response-응답할 데이터가 들어갈 것 객체가 생성된다. ->톰캣이 객체를 생성한다. 특정 주소로 요청이 들어오면 FrontController가 낚아채도록 구성 - 해당 요청에서 원하는 자원을 준다. new 발생 -> 최초의 request와 response가 바뀐다. 이런 일이 일어나지 않도록 기존의 request, response를 유지하는 방법이 필요함..

11강 - 웹 배포서술자(web.xml)에 대해서 알려줘요!

Inflearn 최주호 강사님의 스프링부트 개념정리(이론) 강의를 듣고 정리한 내용입니다. web.xml: 웹 서버에 진입하면 최초로 작동하는 것 - ServletContext의 초기 파라미터 설정 내부에서 인증받을 수 있는 암호 부여받기 - Session의 유효시간 설정 인증을 통해 내부 체류 가능 시간 설정 및 재설정 - Servlet/JSP에 대한 정의, Servlet/JPS 매핑 요청한 곳이 어디인지 알려주는 역할 - Mime Type 매핑 Mime Type: 갖고 오려고 하는 데이터가 어떤 타입인가 알려주는 것 아무것도 안 가져 오면? Get 방식(Select) 무언가 가져왔다면? 활용할 수 있도록 가공 - Welcome File list 아무 데이터도 안 갖고 오고, 목적지도 정해지지 않은 경..

10강 - 서블릿 객체의 생명주기가 궁금해요!

Inflearn 최주호 강사님의 스프링부트 개념정리(이론) 강의를 듣고 정리한 내용입니다. URL: 자원 접근(ex. http://naver.com/a.png), URI: 식별자 접근(ex.http://naver.com/picture/a) 스프링은 URL을 통한 자원 요청을 막아놨다. -> 특정한 파일을 요청할 수 없다! 즉, 요청 시에는 무조건 JAVA를 거쳐야한다. -> 무조건 톰켓이 작동한다! JAVA 자원 request가 오면 서블릿컨테이너(톰켓)에서 첫 번째 request 일 때, 서블릿 객체 생성(new) - init() -> 스레드1 생성 -> service() - POST, GET, PUT, DELETE 등의 메소드 중 어떤 메소드로 요청으로 왔는지 식별, 해당하는 메소드(GET, POST..

9강 - 톰켓이란 무엇인가요?

Inflearn 최주호 강사님의 스프링부트 개념정리(이론) 강의를 듣고 정리한 내용입니다. 웹서버: 데이터를 갖고 있어서 요청 받고 응답하는 주체, 톰켓: 웹 브라우저가 읽을 수 있게 데이터를 변환하는 역할 - 클라이언트가 IP주소와 URL을 이용해서 자원 요청(request)하면 자원을 줌.(응답 - response) -- static 자원(계속 변하는 자원X) - 서버는 클라이언트의 IP주소를 모르기 때문에 클라이언트가 요청하지 않았을 때, 클라이언트에 자원을 줄 수 없음. -- 이런 통신을 하려면 소켓을 사용해야함. 웹서버를 아파치(Apache)로만 사용할 때, JAVA코드로 된 요청을 받으면 JAVA를 이해하지 못하기 때문에 처리 불가 -> 아파치에 톰켓을 붙여서 사용하면 아파치가 이해하지 못하는..

8강 - HTTP가 무엇일까요? 정확히 알아야 해요

Inflearn 최주호 강사님의 스프링부트 개념정리(이론) 강의를 듣고 정리한 내용입니다. 소켓 통신: statefulSocket: 운영체제가 가지고 있는 것5000번 포트에 소켓 오픈 - 새로운 요청과 연결 - main 스레드 역할연결되면 5000번 포트와의 연결은 끊고 5001번, 5002번 등 다른 포트로 연결을 하도록 하여 상대와 지속적으로 연결하도록 한다. +: 상대가 누군지 계속 알고 있음, -: 큰 부하! HTTP 통신: stateless 목적: html 문서를 전달 상대에게 문서를 전달하고 연결을 끊어버림 +: 적은 부하, -: 문서를 달라고 한 상대가 이전과 같은 사람인지 다른 사람인지 모름

7강 - OOP 관점에서 모델링이란 무엇일까요?

Inflearn 최주호 강사님의 스프링부트 개념정리(이론) 강의를 듣고 정리한 내용입니다. 6. JPA는 OOP의 관점에서 모델링을 할 수 있게 해준다. (상속, 콤포지션, 연관관계) JPA는 클래스 구성을 토대로 DB 테이블을 자동생성하는 기법이므로 만약 class Car{ int id; String name; String color; Engine engine; } 클래스가 이렇게 구성되어 있다면 Car 테이블과 Engine 테이블이 자동생성된다. 만약 Car 클래스와 Engine 클래스에 Timestamp createDate, Timestamp updateDate 이런식으로 중복된 속성을 만들고자한다면 extends (상속)을 이용하자. Timestamp createDate, Timestamp upd..

6강 - 영속성 컨텍스트란 무엇인가요?

Inflearn 최주호 강사님의 스프링부트 개념정리(이론) 강의를 듣고 정리한 내용입니다. 4. JPA는 영속성 컨텍스트를 가지고 있다. 컨텍스트(Context)란? 대상에 대한 모든 정보 영속성 컨텍스트란? 데이터를 영구적으로 저장하기 위한 모든 (메타데이터)정보 - Java와 DB 사이에서 왔다갔다하는 모든 정보 ex. 동물 데이터를 저장해보자 Java가 동물 데이터 갖고 있음 -> 영속성 컨텍스트에 동물 데이터 넘겨줌 -> DB에 전달함 Java, 영속성컨텍스트, DB 정보는 동기화 Java와 DB는 영속성데이터를 통해서 정보를 주고받는다. 5. JPA는 DB와 OOP의 불일치성을 해결하기 위한 방법론을 제공한다. (DB는 객체 저장 불가능) DB의 데이터는 Object가 아니라 기본 자료형(int..

5강 - ORM이란 무엇인가요?

Inflearn 최주호 강사님의 스프링부트 개념정리(이론) 강의를 듣고 정리한 내용입니다. 2. JPA는 ORM 기술이다. 3. JPA는 반복적인 CRUD 작업을 생략하게 해준다. ORM이란? Object를 DB에 연결하는 방법론 Java가 사용하는 Object 데이터의 타입과 DB에서 사용하는 데이터의 타입이 다르다. class 파일이 DB 테이블 데이터의 타입을 Java가 사용하는 Object 데이터의 타입으로 바꿔준다. 원래는 DB 테이블 데이터 -> Java에서 사용하는 Object 데이터 생성하는 것이지만, ORM에서는 Java에서 사용하는 Object 데이터 -> DB 테이블 데이터를 생성한다. ORM이 세션 오픈, 커넥션, 쿼리 전송 등의 반복적인 작업을 하나의 함수로 해결할 수 있게 해준다..