목록2025/11 (7)
개발자공부일기
1. 서론 - Hash와 Map의 개요맵(Map)은 키(Key)와 값(Value) 쌍을 저장하는 연관 컨테이너를 말합니다. 한편 해시 테이블(Hash Table)은 키를 해시 함수로 변환하여 나온 해시값을 이용해 데이터를 배열의 특정 위치(버킷)에 저장하는 자료구조입니다. 사실 Map은 인터페이스 혹은 추상 자료구조이고, Hash Table은 그 구현 방식 중 하나입니다. Map vs Unordered_map이라고 쓰여있긴 하지만, 더 정확하게는 이진 탐색 트리 vs 해시 테이블의 차이라고 볼 수 있습니다.C++ 표준 라이브러리에서는 이러한 구조를 각각 `std::map`과 `std::unordered_map` 클래스로 제공합니다. `std::map`은 이진 탐색 트리(레드-블랙 트리) 기반으..
프로그램은 컴퓨터가 실행할 수 있는 명령어의 집합입니다. 프로세스는 컴퓨터에서 실행 중인 프로그램으로 각각의 프로세스는 독립된 메모리 공간을 OS로부터 할당받습니다. CPU는 명령어를 실행하는 연산장치고메인 메모리는 프로세스가 CPU에서 실행되기 위해 대기하는곳입니다.IO(Input/output) 이름에서 알 수 있듯 네트워크라던가 우리의 마우스나 키보드같은 입출력장치와 데이터를 주고받는 것입니다. 간단히 필요한 용어들을 알아봤고 이제 어떻게 여러 그로그램이 동시에 실행되는지 알아보겠습니다. 단일 프로세스 시스템처음에는 한 번에 하나의 프로그램만 실행 할 수 있었습니다.다른 프로그램을 실행하고 싶다면 지금 프로그램을 종료하고 실행해야했죠.그냥 듣기에도 비효율적입니다. 단일 프로세스에서 프로세스는 cpu..
1. 트랜잭션이란 무엇인가?트랜잭션(Transaction)은논리적으로 한 번에 처리되어야 하는 작업들의 묶음이라고 이해하면 된다.조금 더 풀어서 말하면:하나의 비즈니스 작업(계좌이체, 주문, 게시글 작성 등)을 수행하기 위해여러 개의 SQL이 실행될 때그 전체를 하나의 단위로 묶어서전부 성공하거나, 전부 실패하도록 만든 것을 트랜잭션이라고 부른다.1-1. 계좌이체 예시로 보는 트랜잭션계좌이체를 예로 들면 A가 B에게 10,000원을 송금한다고 했을때 다음과 같은 과정이 논리적으로 한 번에 처리되어야 한다.A 계좌에서 10,000원 출금B 계좌에 10,000원 입금이 두 작업 중 하나만 성공하고 하나는 실패하면 안 된다.출금만 되고 입금이 안 되면? → 돈이 사라짐입금만 되고 출금이 안 되면? → 돈이 생..
흐름제어·혼잡제어·오류제어 네트워크에서 송신자 → 인터넷(라우터들) → 수신자 흐름이 있을 때,흐름제어: 수신자 보호(버퍼 넘침 방지)혼잡제어: 네트워크 보호(라우터 큐 과부하 방지)오류제어: 손상·유실 복구(정확성 보장)실제 전송 가능량은 보통실제 송신 윈도 = min(수신자 광고 윈도 rwnd, 혼잡윈도 cwnd) rwnd (receiver window, 수신자가 광고하는 윈도)수신 측 애플리케이션/커널 버퍼의 남은 여유를 바이트 단위로 광고한 값.송신자는 아직 ACK로 확인되지 않은 데이터 총량이 rwnd를 넘지 않도록 전송량을 제한한다cwnd (congestion window, 혼잡 윈도)송신 측이 네트워크 혼잡을 추정해 스스로 설정하는 전송 한도. 네트워크가 견딜 만한 속도로만 보내려는 자가 규..
네트워크에서 “스위치”라고 부르지만, 실제로는 처리할 수 있는 계층(Layer)에 따라 능력이 크게 달라진다.L2는 단순하고 빠르며, L7은 할 수 있는 게 많지만 복잡하고 비싸다. 핵심은 “무엇을 보고, 어디까지 판단하느냐”L2스위치(데이터링크 계층)무엇을 본다이더넷 헤더의 출발지/목적지 MAC무엇을 한다MAC 학습: 들어오는 프레임의 출발지 MAC과 유입 포트를 MAC 테이블에 저장포워딩: 목적지 MAC이 테이블에 있으면 해당 포트로만 전송, 없으면 플러딩플러딩:스위치에서 특정 목적지 주소에 대한 정보를 찾지 못했을 때, 허브처럼 패킷을 입력 포트를 제외한 모든 포트로 보내는 현상입니다브로드캐스트 도메인 관리: VLAN으로 논리 분리 가능 => 브로드캐스트 범위를 분리하여 불필요한 확산을 줄일 수 있..
HTTP 메서드HTTP 메서드는 클라이언트가 서버에게 “무엇을 어떻게 하길 원하는지”를 표현하는 표준화된 동사다. 같은 URL이라도 메서드에 따라 의미와 서버 동작이 달라진다.메서드 종류GET: 자원 조회. 본문 없이 조회 중심. 안전하고 멱등. 캐싱 우선.POST: 자원 생성·처리. 안전·멱등 아님. 폼 제출, 명령형 작업.PUT: 전체 업데이트(치환). 멱등. 전체 상태를 보내 재설정.PATCH: 부분 업데이트. 멱등 아님(보통 그렇지만 멱등하도록 설계 가능).DELETE: 자원 삭제. 멱등.HEAD: 헤더만 조회(본문 없음). 빠른 존재 확인·사이즈 확인.OPTIONS: 지원 메서드·CORS 프리플라이트 확인.TRACE/CONNECT: 특수 목적. 일반 API에서는 거의 사용 안 함.GET리소스 조..
IP의 개념인터넷 프로토콜(Internet Protocol)의 약자로, 인터넷이 통하는 네트워크에서 어떤 정보를 수신하고 송신하는 통신에 대한 규약을 의미합니다. 인터넷 계층의 IP 프로토콜은 IP 주소를 사용하여 호스트나 네트워크 장비를 식별합니다. 인터넷에 접속한 컴퓨터와 라우터에 고유한 IP 주소를 할당하고, 그 IP 주소를 사용해서 컴퓨터를 특정하거나 통신 상대방으로 지정합니다. IP 프로토콜에서는 현재 IPv4(Internet Protocol version 4)의 주소 체계를 사용하고 있습니다. 하지만 스마트폰의 등장 및 모든 사물이 인터넷으로 연결되는 사물 인터넷으로 인해 IP 주소를 사용하는 기기가 폭발적으로 증가하면서 IPv4보다 월등히 많은 수의 IP 주소를 할당할 수 있는 IPv6(In..