분류 전체보기 88

[메타코딩] 11강. 스프링 부트의 동작원리?

4. FrontController 패턴 : 최초 앞단에서 request 요청을 받아 필요한 클래스에 넘겨준다.왜? web.xml에 모든 내용을 정의하기가 어렵기 때문이다. : 웹에서 request가 들어오면, 톰캣은 요청을 받아, request/response 객체를 만들어 응답을 처리하도록 한다. 이러한 방식은 BufferedReader/BufferedWriter 형태로 주고 받았던 데이터들을 객체화 시키므로써, 관련 내장함수를 이용할 수 있게 해준다. : 이 때 새로운 요청이 생기기 때문에 request와 response가 새롭게 new 될 수 있고, 이로 인해 RequestDispatcher가 필요하게 된다. : RequestDispatcher는 필요한 클래스 요청이 도달했을 때, FrontCont..

Spring 2023.09.25

[메타코딩] 10강. 스프링 부트의 동작원리?

3. web.xml 3.1 web.xml의 역할 : web.xml은 웹 에서 들어오는 요청을 어떻게 처리할 지 설정해놓은 일종의 설정파일이다.web.xml에서 처리하는 일들은 아래와 같다. ServletContext의 초기 파라미터 Session의 유효시간 설정 Servlet/JSP에 대한 정의 Servlet/JSP 매핑 Mime Type 매핑 Welcome File list Error Pages 처리 리스터/필터 설정 : 특정 요청에 대한 처리만 수행 보안

Spring 2023.09.24

[메타코딩] 9강. 스프링 부트의 동작원리?

2. 서블릿 컨테이너 : 서블릿이란 java로 웹을 동작시킬 수 있게 만드는 것을 의미한다. 서블릿 컨테이너는 이러한 자원을 모아둔 컨테이너를 의미한다. : 정적인 자원(.html, .css, .png)에 대한 요청은 무조건 웹 서버가 동작하고, 톰캣은 실행되지 않는다. **URL: 자원에 접근할 때의 주소 접근 방식(ex>http://naver.com/a.png), URI: 식별자를 통해 주소 접근 방식(ex>http://naver.com/picture/a) : 스프링은 정적인 자원에 대한 요청 방식(URL 접근방식)을 모두 막아두었기 때문에, 특정한 파일에 대한 요청을 할 수가 없다.즉, 요청 시에 무조건 java를 거쳐야 한다.결국, 톰캣을 이용해 자원을 접근하게 된다. : Request가 동시에 ..

Spring 2023.09.21

[메타코딩] 8강. 스프링 부트의 동작원리?

1. 스프링은 내장 톰캣을 지닌다. : 톰캣을 따로 설치할 필요없이 바로 실행이 가능하다. 1.1 웹 서버 : 클라이언트가 정적인(static) 자원(ex>.html..)을 요청할 경우, 이에 대한 처리를 해주는 서버 : 정적인 데이터를 주고 받으므로 각 클라이언트와 소켓 통신을 하게 된다. 1.2 톰캣 : 클라이언트로부터 동적인 자원(ex>.jsp..)을 요청받는 경우, 웹 서버는 권한을 톰캣에 넘겨주게 된다. : 권한을 넘겨받은 톰캣은 해당 요청을 수행하기 위해 자원을 컴파일 하고, 이를 HTML에 덮어씌운 후 다시 웹 서버에 권한을 이관한다. : 웹 서버는 이관받은 파일을 response하여 클라이언트에게 전달한다. 1.3 웹 브라우저 : 통신을 통해 .html,javaScript, css. avi..

Spring 2023.09.21

[메타코딩] 7강. 스프링 부트의 동작원리?

1. 소켓통신이란? - socket: 운영체제가 가지고 있는 것.프로세스가 드넓은 네트워크 세계로 데이터를 내보내거나 혹은 그 세계로부터 데이터를 받기 위한 실제적인 창구 역할을 하는 것을 의미한다. : A라는 클라이언트가 C에 통신을 요청하게 되면, 메인 소켓이 이 요청을 받아 이 통신을 처리할 소켓과 쓰레드를 추가적으로 생성해 통신을 할당한다. 이후 A와C의 연결은 끊기고, 메인 소켓은 B의 연결요청을 받아 또 다시 새로운 소켓과 쓰레드를 생성해 통신을 할당할 수 있게 된다. 위와 같은 작업을 반복해 소켓을 통해 통신을 하는 방식을 소켓 통신이라고 한다. : 소켓통신은 연결된 통신이 자동적으로 끊어지지 않고, 유지되기 때문에 통신을 요청하는 수가 많아질 수록 부하가 비례해서 증가하게 된다. 2. ht..

Spring 2023.09.20

[메타코딩] 6강. JPA(Java Persistence API)란?

6. JPA는 OOP 관점에서 모델링을 할 수 있게 해준다.(상속, 콤포지션(결합), 연관관계) : JPA를 이용해 JAVA 객체내에서 다른 객체를 자료형으로 사용할 경우 결합이 가능하다. class car{ int id; String name; String color; Engine engine; } class Engine{ int id; int power; } : 위와 같이 2개의 객체가 있을 때, car와 engine은 결합관계라고 하며, car를 ORM 할 경우 아래와 같은 데이터 베이스 테이블들이 생성된다. : JPA를 이용할 경우, 객체간 상속이 가능해진다. class car extends EntityDate{ int id; String name; String color; Engine engin..

Spring 2023.09.15

[메타코딩] 5강. JPA(Java Persistence API)란?

4. JPA는 영속성 컨텍스트를 가지고 있다. - 영속성: 데이터를 영구적으로 저장하게 해주는 속성 - 컨텍스트(context): 대상에 대한 모든 정보를 담고 있는 것, 컨텍스틀 넘겨준다는 것은 대상에 대한 모든 정보를 넘겨준다는 의미와 같다. - 영속성 컨텍스트:영속성 컨텍스트는 데이터를 영구히 저장하기 위한 방법을 의미하며, 자바에서 DB에 접근해 작업하는 모든 내용을 알고 있다. 영속성 컨텍스트에 있는 데이터와 DB의 데이터는 동기화 된다.영속성 컨텍스트의 데이터들은 데이터베이스 타입의 데이터들이 아니라 변경된 JAVA Object 들로 JAVA에서 이용할 수 있는 데이터들이다. 5. JPA는 DB와 OOP의 불일치를 해결하기 위한 방법론을 제공한다.(DB는 객체 저장이 불가능하다.) : 데이터 ..

Spring 2023.09.15

[메타코딩] 4강. JPA(Java Persistence API)란?

- JPA 란? 1. JPA는 Java Persistence API이다. : JPA는 java에서 DBMS에 데이터를 영구히 저장할 수 있도록 하는 API 환경을 의미힌다. : API(Application Programming Interface)는 프로그램을 만들기 위해 제공해주는 인터페이스를 의미한다.프로토콜과 인터페이스는 모두 일종의 약속을 의미하지만, 인터페이스는 상하관계가 있는 약속이고, 프로토콜(ex>www)은 동등한 관계에서 적용되는 약속을 의미한다.즉, JPA는 자바로 프로그램을 할 때 영구적으로 데이터를 저장하기 위해 필요한 인터페이스를 의미한다. 2. JPA는ORM(Object Relational Mapping) 기술이다. : ORM이란, 객체를 데이터베이스에 연결하기 위한 방법론을 의미..

Spring 2023.09.10

[메타코딩] 3강. 스프링 프레임워크란?

- 스프링의 특징 5. 스프링은 MessageConvert를 가지고 있고, 기본값은 현재 JSON이다. : javaObject와 PythonObject는 객체를 읽는 방식이 달라 상호 데이터를 주고받는 경우, 양식을 맞춰 변환해야 하는 문제가 발생한다. 이에 따라 중간언어가 필요하게 되고, xml 또는 JSON으로 변경해 전달하게 된다. : Jackson 라이브러리는 객체를 JSON 형태로 변경해주는 대표적인 변라이브러리이다. 6. 스프링은 BufferedReader와 BufferedWriter를 쉽게 사용할 수 있다. : byteStream을 통해 받은 데이터를 java에서는 문자열 형태로 변환해 이용해야 하고, 이에 사용되는 함수가 BufferedReader/BufferedWriter이다. : 스프링..

Spring 2023.09.10

[Artifact와 SnapShot이란?]

1. SnapShot : 사진을 찍듯이 특정 시간(시점)에 데이터 저장 장치(스토리지) 파일 시스템을 포착해 별도의 파일이나 이미지로 저장, 보관하는 기술을 의미한다. 2. Artifact : Maven등에서 빌드 결과로 나오는 개발 산출물을 의미한다. 또한 Java외에 기타 다른 다양한 산출물을 Artifact라고 부르며, Delivery 및 Deploy를 위해 최종적으로 관리되는 산출물을 의미하기도 한다.

기타 2023.09.10