목록2024/12 (27)
개발자공부일기

데이터베이스에서 인덱스는 테이블 데이터를 효율적으로 검색하기 위해 사용되는 자료 구조로, 데이터를 빠르게 찾기 위한 추가적인 정보를 생성하고 유지합니다. 이를 통해 데이터 검색 속도가 비약적으로 향상되지만, 쓰기 작업의 성능에는 영향을 줄 수 있습니다. 인덱스는 데이터를 저장하고 검색하는 구조에 따라 여러 유형으로 나뉘며, 각 유형은 특정 사용 사례와 쿼리 패턴에 적합합니다.인덱스의 구조1. B-트리 구조B-트리는 대부분의 관계형 데이터베이스에서 기본적으로 사용되는 인덱스 구조입니다.특징:데이터를 정렬된 상태로 유지하며, 검색, 삽입, 삭제 작업에서 O(log n)의 시간 복잡도를 가짐.노드 안에서 키가 정렬되어 있어 이진 검색처럼 키를 탐색.노드의 자식 노드로 내려갈 때 포인터를 따라가며 원하는 데이터..
IOCP (Input/Output Completion Port) 상세 설명IOCP(Input/Output Completion Port)는 논 블로킹 프로세스로 Windows 환경에서 비동기 I/O 작업을 효율적으로 관리하기 위해 제공되는 고성능 I/O 관리 기법입니다. 비동기 프로세스와 최소한의 스레드로 최대한의 성능을 끌어내는 것이 주요 목표입니다. 이를 위한 스레드 풀링이나 비동기 처리등을 운영체제에서 관리해주기 때문에 사용자는 IOCP를 이용해서 쉽고 빠르게 고성능의 입출력 처리가 가능해집니다.이는 네트워크 서버, 데이터베이스 서버, 파일 서버 등 높은 동시성을 요구하는 애플리케이션에서 널리 사용됩니다. 1. IOCP의 핵심 개념IOCP는 비동기적으로 수행된 I/O 작업의 완료 상태를 관리하기 위..

전송 계층은 OSI 모델의 4번째 계층으로, 애플리케이션 계층과 네트워크 계층 사이에 존재합니다. 응용 계층(Application Layer)에서 내려온 데이터를 처리하고 네트워크 계층(Network Layer)을 통해 전송하기 위한 중간다리 역할을 합니다. 이 계층은 데이터 패킷을 전달하고, 오류 검출 및 수정, 흐름 제어, 연결 수립 등의 기능을 수행합니다. 또한, 전송 계층에서는 TCP(전송 제어 프로토콜)와 UDP(사용자 데이터그램 프로토콜)와 같은 프로토콜을 사용해 데이터를 전달합니다. 이러한 프로토콜들은 각기 다른 전송 방식과 특징을 가지고 있습니다. 전송 계층은 송신자와 수신자 간의 논리적인 종단 간(end-to-end) 통신을 관리하며, 데이터의 신뢰성, 정확성, 순서를 보장합니다 전송..
최고기록 갱신시 접속중인 모든 유저에게 전송배경 : 서버에 저장한다고 가정하는 src쪽 전역변수 highScore에 모든 유저들중 최고기록을 저장하고 갱신될때마다 실시간으로 모든 유저에게 업데이트(브로드캐스트)해주고 싶었는데 새로 접속(새로고침)해야만 최고점수가 갱신되는걸 발견발단 : 이렇게 되면 실시간통신이라 보기 힘들었다.전개 : 그래서 AI와 힘을 합쳐 코드를 천천히 읽어봤다.위기 : 아무리 봐도 코드상으로 이상한게 없었고 못찾을뻔했다.절정 : 데이터가 잘 전달 되는지(서로 응답이 잘 주고받아 지는지) 확인하던 도중 socket.on을 작동시켜줄 이벤트이름이 return 데이터에서 누락된걸 발견했다.setupSocketListeners(socket) { // 전역 최고 점수 업데이트 수신 ..
OSI 네트워크 계층이란?데이터를 목적지까지 최적의 경로(안전하고 빠르게)로 전달하기 위한 계층입니다.이러한 경로 탐색 과정을 라우팅(Routing)이라고 부릅니다. 목적지에 도달하기 위한 경로를 선택하고, 경로에 따라 패킷을 전달하는 것이 네트워크 계층의 역할입니다.네트워크 계층에서는 라우팅,흐름 제어, 세그먼테이션,오류 제어,인터네트워킹등의 기능을 수행합니다.이러한 기능들은 전송 계층(Transport)에서 요구하는 서비스 품질(QoS)을 제공하기 위한 수단이 됩니다. 네트워크 계층의 대표적인 프로토콜로는 IP프로토콜이 있으며, 기본 데이터 단위는 패킷(Packet)입니다.네트워크 계층의 장비는 라우터,공유기,스위치(L3 스위치)가 있습니다. 패킷이란?인터넷을 통해 발송되는 모든 데이터는 패킷이라는 ..
주요 라우팅 프로토콜네트워킹에서 프로토콜은 연결된 모든 컴퓨터가 데이터를 이해할 수 있도록 데이터 형식을 지정하는 표준화된 방법입니다. 라우팅 프로토콜은 네트워크 경로를 식별하거나 알리는 데 사용되는 프로토콜입니다.다음과 같은 프로토콜은 데이터 패킷이 인터넷을 통해 길을 찾아가는 데 도움이 됩니다.IP: 인터넷 프로토콜(IP)은 각 데이터 패킷의 원본과 대상을 지정합니다.라우터는 각 패킷의 IP 헤더를 검사하여 패킷을 보낼 위치를 식별합니다.BGP( Border Gateway Protocol )경로 벡터 알고리즘 (BGP) 라우팅 프로토콜은 인터넷에서 데이터를 전송하는 데 가장 적합한 네트워크 경로를 결정하는 일련의 규칙입니다. 인터넷은 표준화된 프로토콜, 디바이스 및 통신 기술을 통해 서로 연결된 수천..

라우터와 라우팅(동적 라우팅, 정적 라우팅)라우터란?라우터는 둘 이상의 패킷 전환 네트워크 또는 서브네트워크를 연결하는 장치입니다.라우터는 데이터 패킷을 의도한 IP주소로 전달하여 이러한 네트워크 간의 트래픽을 관리하고, 여러 장치가 동일한 인터넷 연결을 사용할 수 있도록 하는 등, 두 가지 주요 기능을 제공합니다. 라우터에는 여러 유형이 있지만, 대부분의 라우터는 근거리 통신망(LAN)과 광역 네트워크(WAN)간에 데이터를 전달합니다.LAN은 특정 지리적 영역으로 제한된, 연결된 장치 그룹입니다.LAN에는 일반적으로 단일 라우터가 필요합니다.반면, WAN은 넓은 지리적 영역에 분산된 대규모 네트워크입니다. 예를 들어, 전국의 여러 위치에서 운영되는 대규모 조직 및 회사는 각 위치에 대해 별도의 LAN이..

오늘은 브라우저 주소창에 무언가를 입력했을때 네트워크상에서 일어나는 일들을 알아보겠습니다. 브라우저에서 주소창에 "사과"를 입력하면 다음과 같은 과정이 일어납니다.브라우저는 사용자가 입력한 내용을 분석합니다. 입력된 " 사과 "는 URL 형식이 아니므로 기본 설정된 검색 엔진을 통해 검색하려고 합니다. 검색 엔진의 URL을 생성합니다. 예를 들어, https://www.google.com/search?q= 사과 와 같은 형태로 변환하여 요청을 준비합니다. 검색 엔진의 도메인 이름인 www.google.com을 IP 주소로 변환하기 위해 DNS(Domain Name System)를 확인합니다. 이때 브라우저는 먼저 자신의 캐시를 확인하고, 없으면 운영 체제(OS) 캐시와 라우터 캐시를 차례로 조회합니다. ..