IT/CS 16

[CS] Web Socket

Web Socket 에 대한 정리가 필요하여 글을 포스팅 한다. 1. 정의 - TCP 접속에 전이중 통신 채널을 제공하는 컴퓨터 통신 프로토콜 로써, 두 프로그램 간의 메시지를 교환하기 위한 통신 방법 중 하나 2. 특징 - 양방향 통신 (Full-Duplex) - 데이터 송수신을 동시에 처리할 수 있는 통신 방법 - 클라이언트와 서버가 서로에게 원할 때 데이터를 주고 받을 수 있음 - 통상적인 HTTP 통신은 Client 가 요청을 보내는 경우에만 Server 가 응답하는 단방향 통신 - 실시간 네트워킹 (Real Time-Networking) - 웹 환경에서 연속된 데이터를 빠르게 노출 - Ex) 채팅, 주식, 비디오 데이터 - 여러 단말기에 빠르게 데이터를 교환 - 최초 접속 에서만 HTTP 프로토..

IT/CS 2023.05.16

[CS] TCP vs UDP

통신 프로토콜 중 TCP 와 UDP 의 개념을 정리, 비교하기 위하여 글을 쓴다. 1. TCP (Transmission Control Protocol) - 연결형, 신뢰성 전송 프로토콜 - 연결 지향적 서비스를 제공하기 위해 데이터를 전송하기 전에 3-way handshaking 을 하여 두 호스트의 전송 계층 사이에 논리적 연결을 설립 - 신뢰성 있는 서비스를 제공하기 위하여 오류제어, 흐름제어, 혼잡제어 등을 실행 - 신뢰성을 보장하기 위해 header 가 더 크고 속도가 비교적 느림 - 신뢰성이 중요한 통신(HTTP, File 전송 등)에 사용 2. UDP (User Datagram Protocol) - 비연결형 프로토콜로 3-way handshaking 등의 세션 수립 과정이 없음 - 비신뢰성 프..

IT/CS 2023.05.15

[CS] Hash Table

Hash Table 에 대한 개념 정리를 위해 포스팅 한다. 1. 정의 - 효율적인 탐색(빠른 탐색)을 위한 자료구조로써 key-value 쌍의 데이터를 입력 받고 Hash Function h에 key 값을 입력으로 넣어 얻은 해시값 h(k)을 위치로 지정하여 key-value 데이터 쌍을 저장 2. 특징 - Collision 발생 가능성 존재 - 서로 다른 key의 해시값이 존재할 때 발생 - Collision 이 발생하는 경우, Open Addressing 또는 Separate Chaining 등의 방법을 통해 해결 - Open Addressing (개방 주소 방법) - Collision 이 발생하면 미리 정한 규칙에 따라 Hash Table 의 비어 있는 slot 을 찾음, 메모리를 적게 사용 - ..

IT/CS 2023.05.14

[CS] Index

DB 를 사용할 때 자주 고려해야 할 Index 의 개념을 일목요연하게 정리하기 위해 글을 쓴다. 1. 정의 - RDBMS(관계형 데이터베이스 관리 시스템) 에서 테이블에 대한 검색 속도를 높여주는 자료 구조로, 테이블 내에 1개 이상의 컬럼을 이용하여 생성 2. 특징 - 검색 속도를 향상하는 장점을 가지지만, 정렬된 상태를 유지하기 때문에 insert, update, delete 과정에는 상대적으로 속도가 저하되는 단점을 가짐 - 따라서, 데이터 갱신 보다는 조회에 사용되는 컬럼에 사용하는 것이 합리적 - Cardinality 가 높은 칼럼에 적용하는 것이 좋음 - Cardinality 가 높은 것은 중복도가 낮은 것을 의미 - Cardinality 가 낮은 것은 중복도가 높은 것을 의미 - B+tre..

IT/CS 2023.05.13

[CS] OSI 7 Layer

OSI 7 Layer 에 대한 개념 정리를 위해 포스팅 한다. 1. 정의 - 국제 표준화 기구(ISO) 에서 개발한 모델로, 컴퓨터 네트워크 프로토콜 디자인과 통신을 계층으로 나누어 설명한 것 2. 각 계층의 기능 계층 1. 물리 계층 물리적으로 연결된 두 대의 컴퓨터가 데이터를 송수신 할 수 있게 해주는 기능 수행 계층 2. 데이터 링크 계층 같은 네트워크에 있는 컴퓨터들이 데이터를 주고 받게 해주는 기능 수행 MAC - 물리적 주소 계층 3. 네트워크 계층 IP 주소를 활용해 서로 다른 네트워크에 속한 컴퓨터 간에 데이터를 주고 받게 해주는 기능 수행 주소 부여 (IP) 경로 설정 (Route) 계층 4. 전송 계층 양 끝단 (End to End)의 사용자들이 서로 데이터를 주고 받게 해주는 기능 수..

IT/CS 2023.05.10

[CS] Multi-Process vs Multi-Thread

멀티 프로세스와 멀티 스레드에 대한 개념 정리를 위해 포스팅 한다. 0. Process 와 Thread 란? - Process 운영체제 로부터 시스템 자원을 할당 받는 작업의 단위 Code, Data, Stack, Heap 의 메모리 영역 구성 - Thread Process 내에서 실행되는 작업의 단위 CPU 이용의 기본 단위 Code, Data, Heap 영역 공유 각 Thread 는 별도의 Stack 영역을 가짐 1. Multi-Process - 개념 2개 이상의 프로세스가 동시에 실행되는 것, 이 때 프로세스 들은 CPU 와 메모리를 공유함 여러 프로세스가 동시에 메모리에 적재된 경우, 각 프로세스가 자신의 메모리 영역에만 접근하도록 운영체제가 관리 2. Multi-Thread - 개념 하나의 프로..

IT/CS 2023.05.07