목록TIL(Today I Learned) (65)
개발자공부일기

백엔드 아키텍처의 중요성현대의 소프트웨어 개발에서 백엔드 아키텍처는 시스템의 성능, 확장성, 유지보수성을 결정짓는 핵심 요소입니다. 왜냐하면 백엔드 아키텍처가 잘 설계되어 있지 않으면, 애플리케이션의 성능 저하, 확장 곤란, 유지보수 어려움 등의 문제가 발생할 수 있기 때문입니다.현대적인 백엔드 아키텍처는 이러한 문제들을 해결하기 위해 모듈성, 재사용성, 테스트 용이성을 고려하여 설계됩니다. 이는 애플리케이션의 신속한 개발과 효율적인 운영을 가능하게 합니다.백엔드 아키텍처를 설계할 때는 시스템의 요구 사항과 목표를 명확하게 이해하는 것이 중요합니다. 왜냐하면 아키텍처는 이러한 요구 사항과 목표를 충족시키기 위한 해결책을 제공하기 때문입니다.또한, 현대적인 아키텍처 설계는 지속적인 변화와 기술의 진화에 유..

데이터베이스에서 인덱스는 테이블 데이터를 효율적으로 검색하기 위해 사용되는 자료 구조로, 데이터를 빠르게 찾기 위한 추가적인 정보를 생성하고 유지합니다. 이를 통해 데이터 검색 속도가 비약적으로 향상되지만, 쓰기 작업의 성능에는 영향을 줄 수 있습니다. 인덱스는 데이터를 저장하고 검색하는 구조에 따라 여러 유형으로 나뉘며, 각 유형은 특정 사용 사례와 쿼리 패턴에 적합합니다.인덱스의 구조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 작업의 완료 상태를 관리하기 위..
주요 라우팅 프로토콜네트워킹에서 프로토콜은 연결된 모든 컴퓨터가 데이터를 이해할 수 있도록 데이터 형식을 지정하는 표준화된 방법입니다. 라우팅 프로토콜은 네트워크 경로를 식별하거나 알리는 데 사용되는 프로토콜입니다.다음과 같은 프로토콜은 데이터 패킷이 인터넷을 통해 길을 찾아가는 데 도움이 됩니다.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) 캐시와 라우터 캐시를 차례로 조회합니다. ..

IP의 개념인터넷 프로토콜(Internet Protocol)의 약자로, 인터넷이 통하는 네트워크에서 어떤 정보를 수신하고 송신하는 통신에 대한 규약을 의미합니다. 인터넷 계층의 IP 프로토콜은 IP 주소를 사용하여 호스트나 네트워크 장비를 식별합니다. 인터넷에 접속한 컴퓨터와 라우터에 고유한 IP 주소를 할당하고, 그 IP 주소를 사용해서 컴퓨터를 특정하거나 통신 상대방으로 지정합니다. IP 프로토콜에서는 현재 IPv4(Internet Protocol version 4)의 주소 체계를 사용하고 있습니다. 하지만 스마트폰의 등장 및 모든 사물이 인터넷으로 연결되는 사물 인터넷으로 인해 IP 주소를 사용하는 기기가 폭발적으로 증가하면서 IPv4보다 월등히 많은 수의 IP 주소를 할당할 수 있는 IPv6(In..
CDN(Content Delivery Network)이란? CDN(Content Delivery Network)은 지리적으로 분산된 서버들을 연결한 네트워크로서 웹 컨텐츠의 복사본을 사용자에 가까운 곳에 두거나 동적 컨텐츠(예: 라이브 비디오 피드)의 전달을 활성화하여 웹 성능 및 속도를 향상할 수 있게 합니다.각 CDN 서버는 이른바 "네트워크 에지(네트워크에서 데이터가 생성되고 소비되는 사용자 또는 장치와 가까운 지점을 의미합니다 )"에 위치합니다. 웹사이트의 출처라 할 수 있는 호스트 서버와 비교하면 사용자와의 거리가 더 가깝습니다. 이러한 이유로 CDN 서버는 흔히 "에지 서버"로 불리곤 합니다. 각 서버는 호스트 서버에 있던 웹 컨텐츠(HTML 파일, 이미지, 오디오, 비디오, 애플리케이션 등)..