본문 바로가기

전체 글29

WebSocket+STOMP: 개념 이해부터 구현까지 [목차]- 프롤로그- STOMP- STOMP의 Prefix- 채팅 흐름을 이해해 보자  0. 프롤로그우선, 웹소켓이 처음이면 아래 글을 참고하자!  [Network] Web Socket목차0. 프롤로그1. 다양한 통신 방법2. WebSocket 통신 원리 3. HTTP vs WebSocket4. WebSocket의 한계와 해결 방법 0. 프롤로그지금까지 프로젝트를 하면서 사용했던 통신은 클라이언트가 먼저 요청을 보내hwanheejung.tistory.com 프로젝트를 시작하기 전 구글링으로 다른 사람들의 채팅 프로젝트를 구경했는데 프로토콜, 라이브러리에 대한 전반적인 이해 없이는 깔끔하게 코드를 관리하기가 힘들겠다는 생각이 들었다. STOMP, 메시지브로커, 메시지큐... 등등 알아들을 수 없는 말들이 .. 2024. 5. 29.
[Network] Web Socket 목차0. 프롤로그1. 다양한 통신 방법2. WebSocket 통신 원리 3. HTTP vs WebSocket4. WebSocket의 한계와 해결 방법 0. 프롤로그지금까지 프로젝트를 하면서 사용했던 통신은 클라이언트가 먼저 요청을 보내면 서버가 응답을 보내주는 방식이었다. 이 말은, 서버는 클라이언트가 먼저 말을 걸어주지 않으면(요청이 없으면) 선톡을 할 수 없다는 의미이다. 이를 반이중 통신(half duplex communication)이라고 한다.채팅, 주식과 같이 데이터가 실시간으로 바뀌는 기능. 노션이나 피그마에서 팀원의 마우스가 화면에 보이는 기능은? 이와 같은 실시간 통신을 구현하기 위해 전통적인 HTTP 통신을 선택했다가는 뭐 가능이야 하겠지만 조금만 생각해 봐도 명확한 한계가 보인다. 클.. 2024. 5. 24.
[자료구조] Hash Table 목차 - Intro - Array vs Hash Table - 어떻게 O(1)을 만들었을까? - Hash function과 Collision - Collision을 최소화해 보자 - JavaScript의 Hash Table - 마치면서Intro코드를 더 빠르게 만들어주는 Hash Table에 대해 배워보자! Hash Table이란 단어를 처음 들어봤어도 개발하다가 이미 써봤을 확률이 매우 높다. Hash Table은 key-value 쌍으로 데이터를 저장하는 자료구조이다. 이 자료구조는 생각보다 똑똑한 방법으로 효율성을 높이는데, 어떤 식으로 구현되어 있는지 뜯어보자. Array vs Hash Table배열은 index를 통해 데이터를 순차적으로 저장한다. 특정 index의 값을 읽거나 추가할 때는 O(.. 2024. 5. 9.
Stack 2개로 Queue, Queue 2개로 Stack 만들기 Stack 2개로 Queue를, Queue 2개로 Stack을 만드는 방법과, 그 시간복잡도에 대해 알아보겠다.  1. Stack 2개로 Queue 만들기 아이데이션inStack과 outStack이 있다. inStack의 입구가 Qin이 되고, outStack의 출구가 Qout이 된다. enqueue 호출 시 1, 2, 3번 공이 순서대로 Stack1에 입력된다. 위에서부터 [3, 2, 1] dequeue 호출 시 outStack이 비어있으면, inStack의 모든 항목을 outStack으로 이동. inStack에서 하나씩 pop해서 outStack에 push한다. 완료되면 outStack은 위에서부터 [1, 2, 3]이 되고, dequeue 호출 시 가장 위에 있는 1부터 제거된다. (그 후의 dequ.. 2024. 5. 7.
[Network] 물리 계층(L1)과 데이터 링크 계층(L2) 목차1. 이더넷2. NIC와 케이블3. 허브4. 스위치 이번 글에서는 물리 계층(L1)과 데이터 링크 계층(L2)에 쓰이는 장비들에 대해 알아본다. 우선, 두 계층을 구분하는 기준은 주소 개념의 유무이다. 물리 계층은 주소 개념이 없다. 물리 계층에서는 호스트와 통신 매체 간의 연결과 통신 매체상의 송수신만 이루어지기 때문에 물리 계층의 네트워크 장비는 송수신되는 정보를 조작하거나 판단하지 않는다. 반면 데이터 링크 계층에는 주소 개념(ex. MAC 주소)이 있다. 데이터 링크 계층NIC, 스위치물리 계층케이블, 허브 1. 이더넷두 대의 컴퓨터가 서로 정보를 주고받으려면 케이블과 같은 매체로 연결되어 있어야 한다. 이때 이 통신 매체의 규격들과 송수신되는 프레임의 형태, 프레임을 주고받는 방법 등이 정의.. 2024. 5. 6.
[Network] 네트워크 시작하기! 목차1. 네트워크 거시적 관점   - 네트워크의 기본 구조   - 네트워크의 분류2. 네트워크 미시적 관점   - 프로토콜   - 네트워크 참조 모델   - 캡슐화와 역캡슐화3. 트래픽과 네트워크 성능 지표 1. 네트워크 거시적 관점에서 보기 ① 네트워크의 기본 구조네트워크는 그래프 형태, 즉 노드가 간선으로 연결된 구조로 호스트, 네트워크 장비, 통신 매체로 구성된다.  호스트가장자리 노드, 즉 네트워크 정보를 최초로 송신하거나 최종으로 수신하는 노드를 호스트라고 한다. 우리가 친구에게 메시지를 보낼 때, 내 스마트폰도 호스트, 그 메시지를 받은 친구의 스마트폰도 호스트이다. 네트워크를 통해서 정보를 보내고, 전달받은 정보를 최종적으로 수신했기 때문이다. 요즘에는 스마트폰, 노트북, 데스크탑, 서버 컴.. 2024. 5. 4.