어떤 객체를 핸들링하기 위한 접근 수단ex) print를 하기 위해서는 printContext를 사용해야하고, Servlet을 수행하기 위해서는 Servlet Context를 사용해야한다.web.xml에서 ContextLoaderListener(root-context)
HTTP 프로토콜로 들어오는 모든 요청을 가장 먼저 받아 적합한 컨트롤러에 위임해주는 프론트 컨트롤러다. \- 프론트 컨트롤러란, 주로 서블릿 컨테이너의 제일 앞에서 서버로 들어오는 클라이언트의 모든 요청을 받아서 처리해주는 컨트롤러로, MVC 구조에서 함께 사용
스프링이 실행되면 스프링 컨테이너가 생성된다. 이때 Controller, Service, Repository 관계에 맞춰 스프링 컨테이너가 알맞은 java 클래스들을 객체로 생성하게되고 이를 관리한다. 하지만 스프링이 알아서 이러한 클래스들을 빈으로 가져오지는 않으며,
Container은 Spring의 핵심이다.스프링 컨테이너는 스프링에서 자바 객체들을 관리하는 공간을 말한다. 자바 객체를 스프링에서는 빈(Bean)이라고 한다.Container는 개발자를 대신해서 Bean을 생성, 관리, 제거한다. Container가 Bean을 관리
servlet은 JAVA EE의 표준 중 하나로, javax.servlet Package를 기반으로 Server에서 동작하는 Class들을 의미한다.각 Servlet은 init(), service(), destroy() 3개의 method를 반드시 정의해야 한다.ini
Web Container는 내부 프로그램 로직 처리를 한 후, 데이터를 만들어서 Web Server로 다시 전달한다.\*Web Server에 따른 처리를 Java 진영에서는 Servlet Container라고 부르고 있다.Servlet Container의 예시로는 To
ResponseEntity란 HttpEntity를 상속받고, 결과 데이터와 HTTP 상태코드를 직접 제어할 수 있는 클래스이다.ResponseEntity에는 사용자의 HttpRequest에 대한 응답데이터가 포함된다.또한 HTTP 아키텍처 형태에 맞게 Response를
HashMapTreeMapLinkedHashMap Map의 기본형식이다. 키:밸류 인 한쌍으로 데이터를 저장하며중복된 키가 존재하지않는다.Map에있는 데이터를(밸류값) 뽑을때, 키를 기준으로 가져온다.마치 키를 리스트나 배열에존재하는 idx(인덱스)처럼 가져와 밸
https://gngsn.tistory.com/154
호출된 함수의 수행 결과 및 종료를 호출한 함수가(호출된 함수뿐 아니라 호출한 함수도 함께) 신경 쓰면 Synchronous호출된 함수의 수행 결과 및 종료를 호출된 함수 혼자 직접 신경 쓰고 처리한다면(as a callback fn.) Asynchronous호출된 함
HTTP(HyperText Transfer Protocol)는 HTML 파일을 전송하는 프로토콜이라는 의미다.웹브라우저에서 통신이 일어나며, 초기에는 HTML파일을 전송하려는 목적으로 만들어졌으나 현재는 JSON, Image 파일 등 또한 전송한다.HTTP 통신은 클라
: 네트워크의 계층 중 전송계층에서 사용하는 프로토콜 중에서 데이터를 보내기 위해 사용하는 프로토콜이다.전송계층은 송신자와 수신자를 연결하는 통신서비스를 제공하는 계층으로, 데이터의 전달을 담당한다.➡︎ OSI 7Layer, TCP/IP 4Layer: Transmiss
https://mangkyu.tistory.com/20?category=872426
: 클린코드로 유명한 로버트 마틴이 정리한 원칙이다.한 클래스는 하나의 책임을 가져야 함하나의 책임이란 기준이 모호하다 → 변경이 있을 때 파급효과가 적으면 SRP를 따른 것으로 생각한다.확장에는 열려있으나 변경에는 닫혀있어야 한다.클라이언트가 인터페이스에 의존하면,
실습용 폴더 (working directory) 생성 : D:\\255\\MyGit\\master로컬저장소 생성 : git init원격저장소와 연결할 user.name, user.email 설정 : git config --global user.name "설정하고싶은 내
마크업 : 태그 등을 이용하여 문서나 데이터를 구조화하는 것마크다운 : 마크업의 일종태그를 이용하는 html문서와 달리, 간단한 텍스트를 사용하여 보다 읽고 쓰기가 용이하다md(MarkDown)언어의 확장자는 .md
servlet/jsp 프로젝트에서는 프론트와 백을 분리하지 않아서 session을 마음대로 사용가능했는데프론트랑 백이랑 완전히 분리하다보니까 세션을 프론트에서 직접 사용하기가 힘들어짐트래킹 방법 : token으로 인증HTTP 프로토콜의 특징인 stateless을 보완하
product, customer 를 하나하나 처리해주는 servlet(ProductController)으로 만들었지만, 모든 요청을 처리해주는 servlet을 하나 만들어서 사용할 수도 있다. : dispatcherServletcontroller는 무조건 control
쿠키와 세션?상태정보 유지기술HTTP프로토콜은 상태정보값이 유지되지 않는 Stateless프로토콜이기 때문에 상태정보 유지기술이 필요하다.쿠키 : client Side세션 : Server Side, 내부 기술로 쿠키(JSessionID)를 사용
세션은 내장돼있는 쿠키를 쓰는데 세션이나 쿠키는 호스트가 다른url로 요청이 들어왔을 경우 유지되지 않는다. -> 해결방법 : withCredentials컨트롤러에는 아래 코드 추가같은 프론트의 5500의 자원을 쓰는게 아니라 다른 출처인 8888번의 자원을 쓰려고 하
웹서버를 쓰면 servlet/jsp 실행 엔진이 내장돼있음. 톰캣이 알아서 객체도 만들어주고 요청이 있을때마다 알아서 클래스도 찾고,만들어주는 역할을 함. 객체를 만들어서 특정 메서드(init())도 요청함\-> 개발자가 원래 해야할 일을 엔진이 해주는 것임\-> 우리
tomcat웹서버 - 요청 시에 html, css, js, jpg/png/txt 등 응답을 받아갈때 내용을 그대로 응답해줌a.jsp요청이 들어오게 되면 컨테이너가 역할을 함엔진(컨테이너) - jsp페이지를 서버에서 실행을 함. -> a에대한 서블릿 객체가 있는지 확인.
설정이 많아지면 복잡한 xml을 건드릴수도 있기 때문에 configuration 클래스로 설정함dataSourceSimple은 우리가 만든 클래스가아니라 웹용 외부 라이브러리 이기 때문에 컴포넌트 스캔을 할 수 없음 -> bean으로 등록해줘야함! 빈으로 자동 관리되도
context root : url의 path로 사용될 주소기본 spring lib외에 spring mvc 라이브러리가 있어야 한다.\-> dynamic web으로 하면 lib폴더에 파일을 다 넣어야하는데 그러기엔 너무 많으니까 maven프로젝트로 바꿔보자~war: we
톰캣이 구동될 때 servlet Context는 자동생성되고, 이게 다 생성 완료 돼야 요청을 처리할 수 있는 단계가 됨.\-> servlet Context가 다 생성됐다는 것을 감시, 소멸됐음을 감시하는 감시자가 있다.\-> serlvet ,HttpServletReq
객체지향 프로그래밍 목적 -> 재사용성 높이자!객체지향 프로그래밍 특징상속다형성캡슐화중복되는 코드들을 부모클래스로 만드는 것 -> 상속추상클래스 : 하위클래스의 공통점을 모아두는 곳 (new 생성자 이용불가)final클래스 : 객체를 만드는 틀의 역할 (하위클래스 가질
main이 아니라 junit만들어서 테스트스프링 부트에 내장돼있는 junit 버전이 5이기 때문에 5로 사용할 것!테스트 할때는 톰캣의 스프링 컨테이너를 사용하는 것이 아니라, 나름의 컨테이너를 구동해서 사용할 것실행하고 싶은 메서드를 더블클릭 후 run As -> J
REST : 자원을 정의하고 자원에 대한 주소를 지정하는 방법 전반을 일컫는다. 자원의 식별 쿼리스트링을 사용하면 네트워크를 중간에 가로채서 조작될 수 있음 ➡︎ REST 구조: path만 가지고 자원을 식별하고, 요청방식으로 기능을 처리(설정) http:/
: Object Relational Mapping\-> 객체와 entity간의 매핑객체와 RDBMS Entity의 매핑을 도와주는 기술.자바 기반 ORM을 구현해놓은 대표적인 프레임워크가 하이버네이트(Hibernate)이다.hibernate는 처음엔 쉽지만 좀더들어가면
MSA 방식은 엔티티마다 db를 따로 두고 요청과 응답을 하는 것임.Fk가 없기때문에 무결성 위배조건이 없지만 있는것처럼 쓰는 것이 어렵다.응답방식동기 : Http 프로토콜 이용. GET, POST, PUT, DELETE비동기 : 요청보내놓고 기다리지 않고 나중에 오면
부모 엔티티 : 먼저 자료가 저장돼있어야 하는 쪽자식 엔티티 : 부모엔티티의 PK를 FK로 참조하는 쪽주 식별자 : 부모 엔티티의 pK를 자식 엔티티의 pk로 참조비 식별자 : 부모 엔티티의 pK를 자식 엔티티의 일반컬럼으로 참조@ManyToOne : 자식 엔티티 객체
도커와 vm의 차이점?가장 큰 차이점 : vm은 하드웨어를 가상화, 도커는 OS를 가상화vm을 사용한다 했을 때, 하드웨어 위에 OS가 있어야함그 위에 OS를 올려야하는데 컨테이너 기반의 도커는 OS가 가상화된거기때문에 도커에서 기본적으로 채택한 리눅스를 사용하는 것임
https://ppaksang.tistory.com/18WebSocket 만을 사용하기만해도 기본적인 실시간 메세징 서비스는 구축할 수 있을 것입니다.하지만 WebSocket 은 텍스트 데이터를 교환한다는 것 외에 어떠한 형식도 존재하지 않기 때문에 클라이언트