CS
-
[CS] Blocking / Non-Blocking, Sync / Async 구분하기CS 2025. 12. 6. 16:53
개발자로 일하다 보면 Blocking과 Synchronous, Non-Blocking과 Asynchronous라는 용어를 자주 접하게 됩니다. 많은 경우 이 용어들이 혼용되어 쓰이곤 하지만, 엄밀히 말해 이들은 서로 다른 차원의 개념입니다.오늘은 백엔드 개발자가 I/O 모델을 설계하거나 고성능 애플리케이션을 이해하기 위해 반드시 구분해야 할 이 네 가지 개념을 '제어권'과 '결과 처리'라는 핵심 키워드로 명확히 정리해 보겠습니다.1. 두 개념의 결정적 차이: "관심사(Focus)가 다르다"이 용어들이 헷갈리는 이유는 결과적으로 비슷해 보이기 때문입니다. 하지만 이들을 구분하는 기준, 즉 관심사가 다릅니다.1) Blocking / Non-Blocking (제어권의 관점)핵심 질문: 호출된 함수가 제어권(C..
-
[CS] Http란 무엇이고 어떤 특징이 있을까?CS 2025. 12. 5. 00:29
우리가 매일 사용하는 웹 브라우저는 인터넷이라는 거대한 네트워크 위에서 동작합니다. 주소창에 URL을 입력하고 엔터를 치는 순간, 클라이언트는 서버와 통신을 시작합니다. 이때 가장 핵심이 되는 통신 규약이 바로 HTTP(HyperText Transfer Protocol)입니다.따라서 개발자라면 HTTP에 대해 잘 알고 있어야 합니다. 단순히 데이터를 주고받는 것을 넘어, 네트워크의 효율성, 보안, 그리고 아키텍처 설계를 이해하는 기반이 되기 때문입니다. 이번 글에서는 HTTP의 정의부터 시작해 그 구조와 특징을 깊이 있게 다뤄보겠습니다.1. HTTP란?HTTP(HyperText Transfer Protocol)는 인터넷상에서 데이터를 주고받기 위한 애플리케이션 계층(Application Layer)의 프..
-
[CS] URI, URL, URN 완벽정리CS 2025. 12. 4. 11:53
웹 개발자, 특히 백엔드 개발자에게 '리소스(Resource)'를 다루는 것은 굉장히 중요합니다. 우리는 매일 클라이언트의 요청을 받아 특정 리소스를 조회하거나 생성하고, 그 결과를 응답으로 반환해줍니다. 이 과정에서 우리는 브라우저 주소창에 입력된 주소를 흔히 URL(Uniform Resource Locator)이라고 부릅니다.하지만 RFC 표준 문서나 Java의 java.net 패키지, 혹은 Spring Framework의 내부 코드를 들여다보면 URL 대신 URI(Uniform Resource Identifier)라는 용어가 더 포괄적으로 사용되는 것을 발견할 수 있습니다. 많은 개발자가 이 두 용어를 혼용하지만, 엄밀한 기술적 문맥에서 URI와 URL은 분명한 포함 관계와 의미적 차이를 가집니다...
-
[CS] 인터넷 네트워크와 핵심 개념 정리: IP, TCP/UDP, PORT, DNSCS 2025. 12. 3. 21:11
우리는 웹 브라우저나 모바일 애플리케이션을 통해 끊임없이 서버와 데이터를 주고받습니다. 클라이언트가 요청(Request)을 보내고 서버가 응답(Response)을 주는 이 일련의 과정은 개발자에게는 너무나 익숙한 루틴입니다. 하지만 단순히 API를 호출하고 응답받는 것을 넘어, "실제로 데이터가 어떤 규칙과 경로를 통해 목적지까지 도달하는가?"에 대한 이해는 시스템의 안정성과 성능을 고민하는 단계에서 필수적인 역량이 됩니다.인터넷(Internet)은 수많은 컴퓨터가 거미줄처럼 연결된 거대한 네트워크망입니다. 이 복잡한 망 속에서 데이터가 유실되지 않고 정확한 목적지를 찾아가기 위해서는 약속된 규칙, 즉 프로토콜(Protocol)이 필요합니다.이번 포스팅에서는 인터넷 통신을 지탱하는 실제 기술 용어들을 중..
-
[CS] OSI 7계층에 대해서 알아보기CS 2025. 12. 1. 19:41
각 계층별 특징1. Physical Layer (L1, 물리 계층)정의: 상위 계층(L2)의 데이터(Frame)를 물리 매체(케이블 등)를 통해 전송하기 위해 전기적/광학적 신호(Signal)로 변환하는 계층입니다.PDU: Bit (비트)핵심 기술 용어:Encoding/Decoding: 디지털 데이터(0, 1)를 전송 가능한 신호 패턴(예: NRZ, Manchester)으로 변환.Signaling: 전기 신호의 동기화(Synchronization) 및 타이밍 제어.Multiplexing (TDM/FDM): 하나의 회선을 여러 채널로 분할하여 사용.주요 장비: Hub, Repeater, Cable (UTP, Fiber), NIC(Network Interface Card - PHY 칩셋 부분).2. Data..