Client 하나당 sseemitter하나SSE의 기본적인 흐름은 클라이언트가 SSE요청을 보내면 서버에서는 클라이언트와 매핑되는 SSE 통신객체를 만든다(SseEmitter) 해당객체가 이벤트 발생시 eventsource를 client에게 전송하면서 데이터가 전달되는
Cross Origin Resource Sharing 의 약자로클라이언트와 서버의 오리진(origin) 이 다를 때 발생하는 이슈이다.서버의 위치를 나타내는 URL은 사실 여러개의 구성요소로 이루어져있다.이 때 오리진은 앞에 프로토콜과 HOST 그리고 프로토콜에 따른
STOMP를 사용하기 위해서는 여러가지 설정이 필요하다.Gradle 추가여기서 WebSocket과 함께 STOMP 관련 라이브러리도 함께 받아와진다.Config 추가 및 설정Config에서 Soket 연결, SUBSCRIBE 연결 설정, PUBLISH 설정을 해주어야
정규화(Normalization)의 기본 목표는 테이블 간에 중복된 데이타를 허용하지 않는다는 것이다. 중복된 데이터를 허용하지 않음으로써 무결성(Integrity)를 유지할 수 있으며, DB의 저장 용량 역시 줄일 수 있다.이러한 테이블을 분해하는 정규화 단계가 정의
Spring websocket으로 채팅만들기spring 4버전부터 웹소켓을 지원하게 되었다.아래 스펙으로 간단한 채팅 프로그램을 만들어보자=> 스프링 + websocket + STOMP구현하기에 앞서, 우리는 새로운 프로토콜을 도입할 것이다. 바로 STOMP이다.STO
→ 모든 API 동작 시 성능 측정 할 수 있도록 로그를 좀 남겨주세요OOP는 비지니스 로직을 모듈화해 객체를 재사용함으로 코드의 중복을 많이 줄일 수 있었지만, 그럼에도 반복되는 코드를 없앨수는 없다.AOP가 이러한 부분을 해결해주었다. 기능을 비지니스 로직과 공통
어떤 이벤트가 있으면 어떤 동작이 실행된다분산된 시스템에서 이벤트를 생성(발행)하고 발행된 이벤트를 수신자에게 전송하는 구조로 수신자는 그 이벤트를 처리하는 방식의 아키텍처입니다.분산 아키텍처 환경에서 상호 간 결합도를 낮추기 위해 비동기 방식으로 메시지를 전달하는 패
데이터 처리 모델을 쉽게 표현하자면 데이터를 받는 방식이라고 할수 있습니다.이 방식에는 동기식 처리와 비동기식 처리 모델이 존재합니다.이 둘의 개념에 대해 알아보고 둘의 차이점을 알아보겠습니다.https://velog.velcdn.com/images%2Fslo
S3 : (Simple Storage Service) 아마존에서 제공하는 인터넷용 스토리지 서비스.웹 등에서 사용되는 사진, 텍스트 등 여러 데이터를 손쉽게 저장 및 관리할 수 있다.IAM: (Identity and Access Management) AWS 리소스들에
파일을 업로드 하려면 문자가 아닌 바이너리 데이터를 전송해야 한다.또한 파일뿐 아니라 이름, 나이 등도 함께 전송해야 한다.즉, 첨부파일은 바이너리로, 이름과 나이는 문자로 동시에 전송해야 한다.그래서 사용하는게 multipart/form-data이다.• 위와 같은 문
📍빌더 패턴(Bilder pattern)객체를 정의하고 그 객체를 생성할 때 보통 생성자를 통해 생성하는 것을 생각한다.하지만 생성자를 통해 객체를 생성하는데 몇 가지 단점이 있어 객체를 생성하는 별도 builder를 두는 방법이 있다. 이를 빌더 패턴이라고 한다.객
문자열 my_string이 매개변수로 주어질 때, my_string 안에 있는 숫자만 골라 오름차순 정렬한 리스트를 return 하도록 solution 함수를 작성해보세요.숫자로 된 char를 int로 변경하는 방법 : getNumericValue()
아무 원소도 들어있지 않은 빈 배열 X가 있습니다. 길이가 같은 정수 배열 arr과 boolean 배열 flag가 매개변수로 주어질 때, flag를 차례대로 순회하며 flag\[i]가 true라면 X의 뒤에 arr\[i]를 arr\[i] × 2 번 추가하고, flag\
정수 배열 arr 과 delete_list가 있습니다. arr의 원소 중 delete_list의 원소를 모두 삭제하고 남은 원소들은 기존의 arr에 있던 순서를 유지한 배열을 return 하는 solution 함수를 작성해 주세요.정해진 배열의 크기보다 크거나 음수 i
📍 충돌 : 병합하려는 두 브랜치가 서로 같은 내용을 다르게 수정한 상황충돌이 발생했을 때 대처법1\. 충돌을 해결한다(어떤 브랜치의 내용을 반영할지 직접 선별한다.)2\. 다시 커밋한다.
📍 branch : 버전의 분기⭐️ HEAD (자유자재로 변경 가능)현재 작업 중인 브랜치의 커밋을 가리킨다.일반적으로 현재 작업 중인 브랜치의 최신 커밋을 가리킨다.한마디로 "내가 지금 어디에서 작업 중인가"를 가리킨다.⭐️ checkout(체크아웃)특정 브랜치이서
📍 원격 저장소와의 네 가지 상호작용(깃허브 상에 존재하는) 원격 저장소를 로컬 (클론받은 컴퓨터로)로 복제소스트리 -> 새로만들기
📍commit hash : commit(버전) 하나하나를 특정지을 수 있는 고유한 정보 - 제출 ID짧은commit hash📍commit tag : 특정 commit을 가독성 있게 지칭할 수 있는 tag(유의미한 분기점이 되는 commit에 붙이는 정보)ex) 사용
📍로컬 저장소 생성하기 (test 파일)📍 터미널 경로 변경(로컬 저장소로)📍test폴더 내에 a.txt 문서를 생성한다.📍a.txt 내에 변경사항 📍소스트리에 변경사항 표시가 생긴다.📍변경사항 더블클릭하면 창이 나타난다. a.txt : 작업디렉터리에서 변
📍static static :변수의 생성 시점이 클래스가 생성되는 시점 (즉, 자바 어플리케이션이 실행되는 시점에 메모리에 올라감), static 메서드에서 멤버 변수를 수정하지 못함. (멤버 변수는 new를 통해객체가 생성될 때 생기기 때문에.), 공유 자원이기