Spring/Spring 기초 이론

    [Spring 기초 이론] 스프링부트의 Response 방식

    [Spring 기초 이론] 스프링부트의 Response 방식

    Handler Mapping GET 요청으로 해당 주소 요청이 오면 적절한 컨트롤러의 함수를 찾아서 실행하는 방식이다. 그 후 응답을 할 때 html 파일을 응답할 지 Data로 응답할 지 결정해야 하는데 html 파일을 응답하게 되면 ViewResolver가 관여해서 응답할 파일의 패턴을 만들어준다. 응답할 파일의 경로에 확장자를 붙여서 패턴을 만드는 방식이다. Data로 응답하게 되면 MessageConverter가 작동하게 된다. 메세지를 컨버팅할 때 기본 전략은 json이다. 스프링 동작 과정 ​ ​ 출처 [무료] 스프링부트 개념정리(이론) - 인프런 | 강의 스프링부트를 공부하며 헷갈리는 개념이 많았던 분 스프링부트에 대해 공부하고 싶었던 모든 분, - 강의 소개 | 인프런... www.infl..

    [Spring 기초 이론] 애플리케이션 컨텍스트

    [Spring 기초 이론] 애플리케이션 컨텍스트

    스프링 컨테이너 DispatchServlet에 의해 생성되어지는 수 많은 객체들은 어디에서 관리될까? 1. ApplicationContext 객체들이 DispatchServlet에 의해 컴포넌트 스캔이 될 때 ApplicationContext에 등록되는 것을 IoC(제어의 역전)이라고 한다. 직접 new를 통해 객체를 생성하면 해당 객체의 레퍼런스 변수를 관리하기 어렵기 때문에 스프링이 직접 해당 객체를 관리한다. 우리는 이 객체의 주소를 몰라도 된다. 필요할 때 DI(의존성 주입)를 통해 사용하면 된다. DI는 필요한 곳에서 ApplicationContext에 접근해 필요한 객체를 가져오는 방법이다. ApplicationContext는 싱글톤이므로 어디에서 몇번을 접근하든 동일한 객체를 보장한다. se..

    [Spring 기초 이론] 디스패처 서블릿

    [Spring 기초 이론] 디스패처 서블릿

    FrontController 패턴 문지기가 web.xml에 너무 많은 Servlet/JSP 정의가 들어있으면 매핑하는 내용이 굉장히 많아지기 때문에 web.xml에 다 정의하기가 힘들다. 따라서 최초 앞단에서 request 요청을 받아서 FrontController에 넘겨준다. 여기서 a.do, b.do가 자원에 내부적으로 request를 다시 보내면 기존에 톰캣이 자동으로 생성해준 request, response를 다시 정의해야 한다. 그러면 기존의 정보들이 사라지니까 새로운 기법을 사용해야 한다. 재요청시에 최초의 request, reponse를 다시 새로 정의하는 것이 아니라 기존의 정보를 유지하고 덮어씌우는 requestDispatcher라는 기법을 사용한다. RequestDispatcher 필요..

    [Spring 기초 이론] 웹 배포서술자 (web.xml)

    [Spring 기초 이론] 웹 배포서술자 (web.xml)

    web.xml 엄청나게 큰 성이 있다고 생각해보자. 그 성의 입구가 있고, 그 입구를 지키는 문지기가 있다. 이 문지기는 스스로 일을 할 수가 없어서 이 문지기에서 성의 관리자가 어떻게 일을 하면 되는 지가 적힌 문서를 던져준다. 이 문서는 관리자에 따라 달라질 수 있다. 여기서 좋은 점은 관리자가 바뀌고 문서가 바뀌어도 문지기는 변할 일이 없다. 문지기는 그저 주어진 문서에 따라 일만하면 되는 것이다. ServletContext 초기 파라미터 생성 성의 입구를 통해 들어가는 A와 몰래 침입한 B가 있다고 가정하자. A는 초기 파라미터로 암호가 '왈라'인 것을 알고 있다. 따라서 성 안에서 누군가가 암호를 물어봤을 때 정상적으로 대답이 가능하므로 초기에 한번 설정한 파라미터로 인해 성 안 어디서든지 동작..

    [Spring 기초 이론] Springboot - 서블릿 컨테이너

    [Spring 기초 이론] Springboot - 서블릿 컨테이너

    서블릿 컨테이너 Client가 Tomcat이라 불리는 서블릿 컨테이너에 요청 Tomcat이 요청을 받은 후 최초 요청이면 서블릿 객체를 생성. 아니면 이미 생성된 객체 재사용 요청할 때 html, css, png 파일 요청 시에는 Tomcat이 작동하지 않고 아파치만 실행이 된다. 자바 파일 요청 시에만 Tomcat 작동된다. 스프링에서도 마찬가지로 html, css, png 파일 요청시에는 Tomcat이 작동하지 않는다. 그러나 사실 스프링에서는 이런 파일들을 요청할 수가 없다. 왜냐하면 URL은 html, css, png 파일들을 직접 요청해서 자원을 접근할 때 사용하고 URI는 식별자를 통해 접근할 때 사용하는데 URL 방식을 스프링이 막아두었기 때문이다. URL : http://naver.com/..

    [Spring 기초 이론] Springboot - Apache Tomcat

    [Spring 기초 이론] Springboot - Apache Tomcat

    Springboot 동작 원리 내장 톰켓을 가진다. 먼저 소켓에 대해 알아야 한다. 소켓이란 ? 운영체제가 가지고 있는 것으로 A와 B가 통신하고 싶을 때 이 운영체제가 제공해주는 소켓을 이용해야 한다. 처음에 A가 포트번호로 소켓을 오픈한다. B는 A가 오픈한 소켓의 포트 번호와 A의 IP 주소를 이용해서 통신을 시도한다. 연결이 완료되면 통신이 완료된다. 그런데 이렇게 만들면 문제는 C가 A와 통신하고 싶을 때 A와 B가 5000번 포트를 사용 중이라서 C는 그 소켓을 이용할 수가 없다. 그래서 5000번 포트 소켓은 연결 용도로만 사용하고 연결이 완료되면 새로운 소켓을 만든다. 새로운 소켓의 포트 번호는 보통 랜덤이고 새로운 소켓이 만들어지면 B와 A가 연결했던 5000번 포트 소켓과의 통신은 끊어..

    [Spring 기초 이론] JPA

    [Spring 기초 이론] JPA

    JPA는 Java Persistence API 이다. 영속성(persistency)는 데이터를 영구적으로 저장하는 것을 의미한다. 데이터를 생성한 프로그램의 실행이 종료되더라도 사라지지 않는 특성을 뜻한다. Java Persistence API라는 것은 자바의 데이터를 영구히 기록할 수 있는 환경을 제공하는 API를 의미한다. API란? Application Programming Interface로 프로그램들이 서로 상호작용하는 것을 도와주는 매개체이다. 프로토콜 vs 인터페이스 프로토콜과 인터페이스 모두 어떤 약속을 의미하지만 방식이 조금 다르다. 인터페이스 : 상하관계가 존재하는 약속 프로토콜 : 동등한 관계간의 약속 - 거절이 가능하기 때문에 모두 동의하는 약속을 만들어야 한다. 따라서 JPA는 J..

    [Spring 기초 이론] Spring

    [Spring 기초 이론] Spring

    Spring은 프레임워크이다. Java 기반의 웹 프레임워크 Spring makes Java simple. Level up your Java code and explore what Spring can do for you. spring.io 스프링은 오픈소스이다. 무료, 기여 가능 IoC (Inversion of Controll) Class가 설계도라면 Object는 실체화 가능한 것이다. 실체화가 가능한 것이란? 예를 들어 제드를 만들기위한 설계도인 제드 class가 있으면 제드는 실제로 게임에 등장하니까 실체화가 가능한 것, 즉 Object이다. 반면 캐릭터라는 것은 많은 것들을 포함하는 추상적인 class이고 제드, 누누 등은 전부 캐릭터라고 불린다. 캐릭터는 추상적인 것이기 때문에 실제로 게임속에 ..