Gradle 의존성 설정// web socketimplementation 'org.springframework.boot:spring-boot-starter-websocket' Config설정import com.practice.common.socket.WebSocketHandler;import lombok.RequiredArgsConstructor;import org.springframework.context.annotation.Configuration;import org.springframework.web.socket.config.annotation.EnableWebSocket;import org.springframework.web.socket.config.annotation.WebSocketConf..
Gradle 의존성 추가// mongoDBimplementation 'org.springframework.boot:spring-boot-starter-data-mongodb'// web socketimplementation 'org.springframework.boot:spring-boot-starter-websocket' MongoDB 설정spring: data: mongodb: host: localhost port: 27017 authentication-database: admin username: MongoDB 아이디 password: MongoDB 비밀번호 database: MongoDB 데이터베이스명 STOMP 설정import com..
HTTP 통신을 위한 도구 RESTful API 웹 서비스와의 상호작용을 쉽게외부 도메인에서 데이터를 가져오거나 전송할 때 사용 다양한 HTTP 메서드 ( GET,POST,PUT,DELETE 등 )를 사용하며 원격 서버와 ' 동기식 방식 '으로 JSON , XML 등의 다양한 데이터 형식으로 통신동기식 방식으로 요청을 보내고 응답을 받을 때 까지 블로킹되며, 요청과 응답이 완료되기 전까지 다음 코드로 진행되지 않음.( Spring Framework 5.X버전부터 WebClient로 Migration하라는 말이있지만 현재까지 Deprecated 되지 않음 ) HTTP 요청 및 응답에 대한 메서드 MethodHTTP MethodReturn Type설명getForObject()GETObjectGET 요청에 대..
하이퍼 바이저란 호스트 컴퓨터에서 여러 개의 운영 체제를 동시에 실행하기 위한 논리적인 플랫폼. 가상 머신 모니터 또는 가상 머신 매니저라고도 불리며, 컴퓨터의 하드웨어 자원을 가상화하여 각 운영체제에 할당하고 관리. 쉽게 말해 하이퍼 바이저는 우리가 사용하는 일반적인 컴퓨터 안에 작은 가상 컴퓨터를 만드어주는데 이 가상 컴퓨터는 각각 다른 종류이 운영체제를 가질 수 있으며, 각각이 독립적으로 작동하면서 서로 영향을 주지 않는다. 즉, 하이퍼 바이저는 한 대의 컴퓨터 안에서 여러개의 가상 컴퓨터를 만들어주는 프로그램 하이퍼 바이저의 역할 큰 컴퓨터의 자원을 작은 가상 컴퓨터들에게 나눠주고 관리하는 것 각 가상 컴퓨터는 필요한 만큼의 메모리,CPU 성능, 저장 공간 등의 자원을 할당받아 독립적으로 실행되며..
CORS란 Cross-Origin Resource Sharing 의 약자로 한글로는 " 교차 출처 리소스 공유 정책 " 이라고 해석할 수 있는데, 여기서 교차 출처 라는것은 ( 엇갈린 ) 다른 출처 라는 의미로 보면 된다. XMLHttpReqeust,Fetch API 스크립트 기본적으로 Same-Origin 정책을 따름. 다른 도메인의 소스에 대해 자바스크립트 Ajax 요청 API 호출 시, 웹 폰트 CSS 파일 내 @font-face에서 다른 도메인의 폰트 사용 시 자바스크립트에서의 요청은 기본적으로 서로 다른 도메인에 대한 요청을 보안상 제한한다. 브라우저는 기본적으로 하나의 서버 연결만 허용되도록 설정되어 있기 때문이다 출처 ( Origin ) 란? 우리가 어떤 사이트를 접속할때 인터넷 주소창에 우..
클래스 로더는 컴파일 된 자바의 클래스 파일 ( *.class ) 을 동적으로 로드하고, JVM의 메모리 영역인 Runtime Data Areas에 배치하는 작업을 수행한다. 클래스 로더에서 class 파일을 로딩하는 순서는 다음과 같이 3단계로 구성된다 Loading ( 로드 ) : 클래스 파일을 가져와서 JVM의 메모리에 로드한다. 클래스를 메모리에 올리는 Loading 기능은 한번에 메모리에 올리는게 아니라 애플리케이션에서 필요한 경우 동적으로 메모리에 적재한다. Linking ( 링크 ) : 클래스 파일을 사용하기 위해 검증하는 과정이다. Initialization ( 초기화 ) : 클래스 변수들을 적절한 값으로 초기화한다.\ JVM은 실행될때 모든 클래스를 메모리에 올려놓지 않고, 그때마다 필요..