목록분류 전체보기 (159)
개발자공부일기
흐름제어·혼잡제어·오류제어 네트워크에서 송신자 → 인터넷(라우터들) → 수신자 흐름이 있을 때,흐름제어: 수신자 보호(버퍼 넘침 방지)혼잡제어: 네트워크 보호(라우터 큐 과부하 방지)오류제어: 손상·유실 복구(정확성 보장)실제 전송 가능량은 보통실제 송신 윈도 = 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..
Express란?Express는 웹 및 모바일 애플리케이션을 위한 일련의 강력한 기능을 제공하는 간결하고 유연한 Node.js 웹 애플리케이션 프레임워크이다. 사실상 Nodejs의 표준 웹서버 프레임워크로 불려질 만큼 많은 곳에서 사용하고 있다. 그렇다면 Node.js와 Express는 무슨 관계인가? Node.js는 Chrome의 V8엔진을 이용하여 javascript로 브라우저가 아니라 서버를 구축하고, 서버에서 JavaScript가 작동되도록 해주는 런타임 환경(플랫폼)이라고 했다. Express는 이런 Nodejs의 원칙과 방법을 이용하여 웹애플리케이션을 만들기 위한 프레임워크이다. 프레임워크란?이처럼 목적에 필요한 것을 고민할 필요 없이 이용할 수 있도록 일괄로 가져다 쓰도록 만들어 놓은 '구조..
────────────────1.화살표 함수(Arrow Function)란?────────────────화살표 함수는 ES6에서 추가된 새로운 함수 문법이다.기본 형태const add = (a, b) => { return a + b;};조금 더 줄이면const add = (a, b) => a + b; // 한 줄이면 return 생략 가능매개변수가 하나면 괄호도 생략 가능const square = x => x * x;객체를 바로 반환할 때는 소괄호로 감싸야 한다const makeUser = (name, age) => ({ name, age });여기서 객체를 반환할때 소괄호를 쓰는 이유는 {}만 있으면 이게 로직을 감싼건지 객체인지 구별하지 못하기 때문이다. ────────────────2. this와..
1) SSR (Server-Side Rendering)서버가 매 요청마다 HTML을 생성해 응답하는 방식. 사용자는 첫 화면을 HTML로 즉시 받고, 이후 브라우저가 JS를 받아 하이드레이션(Hydration)을 수행.요청 흐름클라이언트가 /page 요청서버가 데이터 fetch → HTML 렌더링HTML 전달(콘텐츠 보임) → JS 로드 → 하이드레이션장점SEO 최상: 첫 응답에 실제 콘텐츠 포함개인화/권한 기반 UI에 유리: 쿠키·세션을 보고 매 요청마다 다르게 그림실시간성 높은 페이지(주가, 대시보드)에 적합단점서버 부하↑, TTFB↑매 요청 렌더링 비용 큼(스케일 비용)캐시 전략이 까다로움(쿠키 등으로 CDN 캐시가 깨질 수 있음)적합한 상황로그인 대시보드, 장바구니/주문내역 등 사용자별 화면크롤러..
C++에서 new / delete를 직접 다루다 보면 메모리 누수, 이중 해제, 예외 안전성 문제가 자주 발생합니다.이를 자동으로 처리해주는 도구가 바로 스마트 포인터(smart pointer)입니다.스마트 포인터는 객체의 수명을 자동으로 관리하는 RAII(Resource Acquisition Is Initialization) 기법의 대표적인 예 입니다.이 글에서는 unique_ptr, shared_ptr, weak_ptr의 동작을 아주 간단한 예제로 살펴보겠습니다.RAIIRAII(Resource Acquisition Is Initialization)란,"자원의 생명주기를 객체의 생명주기에 묶는 것”을 의미합니다.스마트 포인터는 이 원칙을 그대로 따릅니다.생성 시 → new로 자원 획득소멸 시 → del..