<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ko">
  <title>CS 지식백과 — DevFit</title>
  <link rel="self" href="https://devfit.app/cs/feed.xml"/>
  <link rel="alternate" href="https://devfit.app/cs/"/>
  <id>https://devfit.app/cs/</id>
  <updated>2026-11-05T00:00:00+09:00</updated>
  <author><name>Dozer Labs</name></author>
  <entry>
    <title>Array vs ArrayList vs LinkedList</title>
    <link href="https://devfit.app/cs/array-vs-arraylist-vs-linkedlist/"/>
    <id>https://devfit.app/cs/array-vs-arraylist-vs-linkedlist/</id>
    <published>2026-08-17T00:00:00+09:00</published>
    <updated>2026-11-05T00:00:00+09:00</updated>
    <summary>배열, ArrayList, LinkedList의 내부 저장 방식과 연산별 시간 복잡도를 비교한다. 캐시 지역성 때문에 실무에서 ArrayList가 유리한 이유와 상황별 선택 기준을 정리했다.</summary>
    <category term="자료구조"/>
  </entry>
  <entry>
    <title>B 트리와 B+ 트리 (B-Tree &amp; B+ Tree)</title>
    <link href="https://devfit.app/cs/b-tree-bp-tree/"/>
    <id>https://devfit.app/cs/b-tree-bp-tree/</id>
    <published>2026-08-17T00:00:00+09:00</published>
    <updated>2026-11-05T00:00:00+09:00</updated>
    <summary>한 노드에 여러 키를 담아 높이를 낮춘 B 트리와 리프에 데이터를 모아 연결한 B+ 트리를 다룬다. 디스크 I/O 최소화 원리와 데이터베이스 인덱스가 B+ 트리를 쓰는 이유를 정리했다.</summary>
    <category term="자료구조"/>
  </entry>
  <entry>
    <title>이분 탐색 (Binary Search)</title>
    <link href="https://devfit.app/cs/binary-search/"/>
    <id>https://devfit.app/cs/binary-search/</id>
    <published>2026-08-17T00:00:00+09:00</published>
    <updated>2026-11-05T00:00:00+09:00</updated>
    <summary>정렬된 배열에서 탐색 범위를 절반씩 줄여 O(log n)에 값을 찾는 이분 탐색의 원리와 동작 과정을 그림으로 정리했다. lower bound와 upper bound, 코딩테스트 단골인 파라메트릭 서치와 회전 정렬 배열, 구현 코드와 자주 하는 실수까지 다룬다.</summary>
    <category term="알고리즘"/>
  </entry>
  <entry>
    <title>캐시 메모리 (Cache Memory)</title>
    <link href="https://devfit.app/cs/cache-memory/"/>
    <id>https://devfit.app/cs/cache-memory/</id>
    <published>2026-08-17T00:00:00+09:00</published>
    <updated>2026-11-05T00:00:00+09:00</updated>
    <summary>CPU와 주기억장치의 속도 차이를 메우는 캐시 메모리의 원리를 다룬다. 메모리 계층 구조, 시간과 공간 지역성, 매핑 방식 비교, 쓰기 정책과 MESI 캐시 일관성까지 정리한다.</summary>
    <category term="컴퓨터 구조"/>
  </entry>
  <entry>
    <title>쿠키와 세션 (Cookie, Session)</title>
    <link href="https://devfit.app/cs/cookie-session/"/>
    <id>https://devfit.app/cs/cookie-session/</id>
    <published>2026-08-17T00:00:00+09:00</published>
    <updated>2026-11-05T00:00:00+09:00</updated>
    <summary>쿠키는 서버가 브라우저에 저장하도록 지시하는 작은 키와 값의 쌍이고, 세션은 쿠키를 운반 수단으로 삼아 사용자별 상태를 서버 저장소에 보관하는 기법이다. 두 개념의 동작 원리와 보안 속성, 위협 대응을 다룬다.</summary>
    <category term="웹"/>
  </entry>
  <entry>
    <title>CORS (Cross-Origin Resource Sharing)</title>
    <link href="https://devfit.app/cs/cors/"/>
    <id>https://devfit.app/cs/cors/</id>
    <published>2026-08-17T00:00:00+09:00</published>
    <updated>2026-11-05T00:00:00+09:00</updated>
    <summary>CORS는 브라우저의 동일 출처 정책을 안전하게 완화하는 HTTP 헤더 기반 메커니즘이다. 단순 요청과 프리플라이트, 자격 증명, 서버 설정에서 자주 하는 실수까지 정리했다.</summary>
    <category term="네트워크"/>
  </entry>
  <entry>
    <title>CPU 스케줄링 (CPU Scheduling)</title>
    <link href="https://devfit.app/cs/cpu-scheduling/"/>
    <id>https://devfit.app/cs/cpu-scheduling/</id>
    <published>2026-08-17T00:00:00+09:00</published>
    <updated>2026-11-05T00:00:00+09:00</updated>
    <summary>운영체제가 준비 상태의 여러 프로세스 중 다음에 CPU를 쓸 프로세스를 고르는 CPU 스케줄링을 다룬다. 선점과 비선점, FCFS부터 라운드 로빈과 MLFQ까지 알고리즘 비교, 리눅스 CFS와 EEVDF까지 정리한다.</summary>
    <category term="운영체제"/>
  </entry>
  <entry>
    <title>CSR과 SSR (Client Side Rendering, Server Side Rendering)</title>
    <link href="https://devfit.app/cs/csr-ssr/"/>
    <id>https://devfit.app/cs/csr-ssr/</id>
    <published>2026-08-17T00:00:00+09:00</published>
    <updated>2026-11-05T00:00:00+09:00</updated>
    <summary>CSR은 브라우저가 자바스크립트로 화면을 그리는 방식, SSR은 서버가 완성된 HTML을 내려보내는 방식이다. 초기 로딩, SEO, 서버 부하 관점의 차이와 SSG, ISR을 포함한 혼합 전략까지 정리한다.</summary>
    <category term="웹"/>
  </entry>
  <entry>
    <title>CSRF와 XSS (Cross Site Request Forgery, Cross Site Scripting)</title>
    <link href="https://devfit.app/cs/csrf-xss/"/>
    <id>https://devfit.app/cs/csrf-xss/</id>
    <published>2026-08-17T00:00:00+09:00</published>
    <updated>2026-11-05T00:00:00+09:00</updated>
    <summary>XSS는 공격자의 스크립트를 피해자 브라우저에서 실행시키는 공격이고, CSRF는 로그인된 브라우저를 속여 피해자 명의의 요청을 보내는 공격이다. 두 공격이 악용하는 신뢰 관계의 차이와 방어 수단을 정리한다.</summary>
    <category term="웹"/>
  </entry>
  <entry>
    <title>인덱스 (Index)</title>
    <link href="https://devfit.app/cs/db-index/"/>
    <id>https://devfit.app/cs/db-index/</id>
    <published>2026-08-17T00:00:00+09:00</published>
    <updated>2026-11-05T00:00:00+09:00</updated>
    <summary>인덱스는 컬럼 값과 저장 위치를 별도 자료구조로 정리해 검색 속도를 높이는 장치다. B+Tree 동작 원리, 클러스터드와 논클러스터드 비교, 복합 인덱스와 커버링 인덱스, 설계 시 주의점을 다룬다.</summary>
    <category term="데이터베이스"/>
  </entry>
  <entry>
    <title>교착 상태 (Deadlock)</title>
    <link href="https://devfit.app/cs/deadlock/"/>
    <id>https://devfit.app/cs/deadlock/</id>
    <published>2026-08-17T00:00:00+09:00</published>
    <updated>2026-11-05T00:00:00+09:00</updated>
    <summary>둘 이상의 프로세스가 서로가 점유한 자원을 기다리며 영원히 멈추는 교착 상태를 다룬다. 네 가지 필요조건, 예방과 회피와 탐지 회복 전략, 기아와 라이브락의 구분, 데이터베이스 데드락 실무 사례까지 정리한다.</summary>
    <category term="운영체제"/>
  </entry>
  <entry>
    <title>DFS와 BFS (Depth First Search, Breadth First Search)</title>
    <link href="https://devfit.app/cs/dfs-bfs/"/>
    <id>https://devfit.app/cs/dfs-bfs/</id>
    <published>2026-08-17T00:00:00+09:00</published>
    <updated>2026-11-05T00:00:00+09:00</updated>
    <summary>그래프의 모든 정점을 방문하는 DFS와 BFS의 원리와 방문 순서 차이를 스택과 큐로 설명하고, O(V + E) 복잡도, 구현 코드, 문제 유형별 선택 기준을 정리한다.</summary>
    <category term="알고리즘"/>
  </entry>
  <entry>
    <title>다익스트라 알고리즘 (Dijkstra&apos;s Algorithm)</title>
    <link href="https://devfit.app/cs/dijkstra/"/>
    <id>https://devfit.app/cs/dijkstra/</id>
    <published>2026-08-17T00:00:00+09:00</published>
    <updated>2026-11-05T00:00:00+09:00</updated>
    <summary>음수 간선이 없는 그래프에서 한 정점으로부터의 최단 거리를 구하는 다익스트라 알고리즘의 그리디 원리, 우선순위 큐 구현, 복잡도 비교와 한계를 정리한다.</summary>
    <category term="알고리즘"/>
  </entry>
  <entry>
    <title>DNS (Domain Name System)</title>
    <link href="https://devfit.app/cs/dns/"/>
    <id>https://devfit.app/cs/dns/</id>
    <published>2026-08-17T00:00:00+09:00</published>
    <updated>2026-11-05T00:00:00+09:00</updated>
    <summary>DNS는 도메인 이름을 IP 주소로 변환하는 분산 계층형 이름 해석 시스템이다. 루트, TLD, 권한 서버와 재귀 리졸버의 역할, 해석 과정, 레코드 타입, 캐싱과 DNSSEC, DoH까지 정리한다.</summary>
    <category term="네트워크"/>
  </entry>
  <entry>
    <title>동적 계획법 (Dynamic Programming)</title>
    <link href="https://devfit.app/cs/dynamic-programming/"/>
    <id>https://devfit.app/cs/dynamic-programming/</id>
    <published>2026-08-17T00:00:00+09:00</published>
    <updated>2026-11-05T00:00:00+09:00</updated>
    <summary>겹치는 부분 문제와 최적 부분 구조를 전제로 부분 문제의 답을 저장해 재사용하는 동적 계획법을 다룬다. 하향식과 상향식 비교, 문제 풀이 단계, 배낭 문제 구현을 정리한다.</summary>
    <category term="알고리즘"/>
  </entry>
  <entry>
    <title>해시 테이블 구현 (Hash Table Implementation)</title>
    <link href="https://devfit.app/cs/hash-table-implementation/"/>
    <id>https://devfit.app/cs/hash-table-implementation/</id>
    <published>2026-08-17T00:00:00+09:00</published>
    <updated>2026-11-05T00:00:00+09:00</updated>
    <summary>키를 해시 함수로 인덱스에 대응시켜 평균 O(1) 연산을 제공하는 해시 테이블을 직접 구현한다. 체이닝과 개방 주소법, 적재율과 재해싱, 파이썬 구현 코드를 정리한다.</summary>
    <category term="알고리즘"/>
  </entry>
  <entry>
    <title>브라우저 동작 원리 (Browser Rendering)</title>
    <link href="https://devfit.app/cs/how-browser-works/"/>
    <id>https://devfit.app/cs/how-browser-works/</id>
    <published>2026-08-17T00:00:00+09:00</published>
    <updated>2026-11-05T00:00:00+09:00</updated>
    <summary>브라우저가 URL을 받아 서버에서 자원을 가져오고 HTML, CSS, 자바스크립트를 해석해 픽셀로 바꾸는 과정을 다룬다. DNS 조회부터 파싱, 레이아웃, 페인트, 합성까지 렌더링 파이프라인과 이벤트 루프를 설명한다.</summary>
    <category term="웹"/>
  </entry>
  <entry>
    <title>HTTP와 HTTPS (HTTP and HTTPS)</title>
    <link href="https://devfit.app/cs/http-https/"/>
    <id>https://devfit.app/cs/http-https/</id>
    <published>2026-08-17T00:00:00+09:00</published>
    <updated>2026-11-05T00:00:00+09:00</updated>
    <summary>HTTP는 웹의 요청과 응답을 주고받는 프로토콜이고, HTTPS는 이를 TLS 위에 얹어 암호화한 것이다. 무상태성, 인증서 신뢰 사슬, HTTP/1.1과 2, 3의 차이까지 비교해 정리한다.</summary>
    <category term="네트워크"/>
  </entry>
  <entry>
    <title>Call by Value와 Call by Reference</title>
    <link href="https://devfit.app/cs/java-call-by-value-call-by-reference/"/>
    <id>https://devfit.app/cs/java-call-by-value-call-by-reference/</id>
    <published>2026-08-17T00:00:00+09:00</published>
    <updated>2026-11-05T00:00:00+09:00</updated>
    <summary>자바는 기본형이든 참조형이든 언제나 값에 의한 호출만 사용하며, 참조형은 객체가 아니라 참조값이 복사되어 전달된다. swap 실패 예제와 스택 프레임 관점으로 그 근거를 설명한다.</summary>
    <category term="Java"/>
  </entry>
  <entry>
    <title>Java 면접 질문 모음</title>
    <link href="https://devfit.app/cs/java-interview-questions/"/>
    <id>https://devfit.app/cs/java-interview-questions/</id>
    <published>2026-08-17T00:00:00+09:00</published>
    <updated>2026-11-05T00:00:00+09:00</updated>
    <summary>언어 기초와 OOP, JVM과 메모리, 컬렉션, 동시성, Java 8 이후 기능, Spring 연계까지 Java 개발자 면접 단골 질문 60여 개를 영역별로 정리하고 꼬리 질문 대비 요령을 담았다.</summary>
    <category term="면접 질문 모음"/>
  </entry>
  <entry>
    <title>String, StringBuilder, StringBuffer 차이</title>
    <link href="https://devfit.app/cs/java-string-stringbuilder-stringbuffer/"/>
    <id>https://devfit.app/cs/java-string-stringbuilder-stringbuffer/</id>
    <published>2026-08-17T00:00:00+09:00</published>
    <updated>2026-11-05T00:00:00+09:00</updated>
    <summary>String은 불변 문자열이고 StringBuilder와 StringBuffer는 버퍼를 수정하는 가변 클래스다. 불변 설계의 이유, 루프 연결이 느린 원리, 동기화 유무에 따른 선택 기준을 정리한다.</summary>
    <category term="Java"/>
  </entry>
  <entry>
    <title>클로저 (Closure)</title>
    <link href="https://devfit.app/cs/javascript-closure/"/>
    <id>https://devfit.app/cs/javascript-closure/</id>
    <published>2026-08-17T00:00:00+09:00</published>
    <updated>2026-11-05T00:00:00+09:00</updated>
    <summary>클로저는 함수가 선언된 시점의 렉시컬 환경을 기억해 스코프 밖에서도 변수에 접근하게 하는 JavaScript 특성이다. 동작 원리, 카운터 예시, 데이터 은닉 활용, var와 let의 루프 함정까지 정리한다.</summary>
    <category term="JavaScript / Python"/>
  </entry>
  <entry>
    <title>객체와 프로토타입 (Object and Prototype)</title>
    <link href="https://devfit.app/cs/javascript-object-prototype/"/>
    <id>https://devfit.app/cs/javascript-object-prototype/</id>
    <published>2026-08-17T00:00:00+09:00</published>
    <updated>2026-11-05T00:00:00+09:00</updated>
    <summary>JavaScript의 모든 객체는 프로토타입을 내부 링크로 참조하며, 프로토타입 체인을 따라 프로퍼티를 탐색해 상속을 구현한다. prototype과 __proto__의 구분, class 문법, 프로토타입 오염까지 다룬다.</summary>
    <category term="JavaScript / Python"/>
  </entry>
  <entry>
    <title>JPA(Java Persistence API)</title>
    <link href="https://devfit.app/cs/jpa/"/>
    <id>https://devfit.app/cs/jpa/</id>
    <published>2026-08-17T00:00:00+09:00</published>
    <updated>2026-11-05T00:00:00+09:00</updated>
    <summary>JPA는 자바 객체와 관계형 데이터베이스 테이블의 매핑을 표준으로 정의한 ORM 명세다. 명세와 구현체의 관계, 영속성 컨텍스트의 기능, 엔티티 생명주기, N+1 문제까지 면접 관점에서 정리한다.</summary>
    <category term="Spring / JPA"/>
  </entry>
  <entry>
    <title>자바 가상 머신 (JVM)</title>
    <link href="https://devfit.app/cs/jvm/"/>
    <id>https://devfit.app/cs/jvm/</id>
    <published>2026-08-17T00:00:00+09:00</published>
    <updated>2026-11-05T00:00:00+09:00</updated>
    <summary>JVM은 바이트코드를 로딩하고 검증한 뒤 실행하는 가상 컴퓨터로 클래스 로더, 런타임 데이터 영역, 실행 엔진으로 구성된다. 힙과 스택과 메타스페이스, JIT와 가비지 컬렉션을 정리한다.</summary>
    <category term="Java"/>
  </entry>
  <entry>
    <title>JWT (JSON Web Token)</title>
    <link href="https://devfit.app/cs/jwt-json-web-token/"/>
    <id>https://devfit.app/cs/jwt-json-web-token/</id>
    <published>2026-08-17T00:00:00+09:00</published>
    <updated>2026-11-05T00:00:00+09:00</updated>
    <summary>JWT는 JSON 정보에 디지털 서명을 붙여 위조할 수 없는 자기 완결적 토큰으로 만든 웹 표준이다. 헤더, 페이로드, 서명의 구조와 검증 절차, 무효화 문제와 리프레시 토큰 전략, 저장 위치별 보안을 다룬다.</summary>
    <category term="웹"/>
  </entry>
  <entry>
    <title>최장 증가 부분 수열 (LIS, Longest Increasing Subsequence)</title>
    <link href="https://devfit.app/cs/lis-longest-increasing-sequence/"/>
    <id>https://devfit.app/cs/lis-longest-increasing-sequence/</id>
    <published>2026-08-17T00:00:00+09:00</published>
    <updated>2026-11-05T00:00:00+09:00</updated>
    <summary>수열에서 가장 긴 증가 부분 수열을 찾는 LIS 문제를 다룬다. O(n^2) 동적 계획법과 이분 탐색을 결합한 O(n log n) 풀이, tails 배열의 의미와 수열 복원 방법을 정리한다.</summary>
    <category term="알고리즘"/>
  </entry>
  <entry>
    <title>로드 밸런싱 (Load Balancing)</title>
    <link href="https://devfit.app/cs/load-balancing/"/>
    <id>https://devfit.app/cs/load-balancing/</id>
    <published>2026-08-17T00:00:00+09:00</published>
    <updated>2026-11-05T00:00:00+09:00</updated>
    <summary>로드 밸런싱은 트래픽을 여러 서버에 분산해 처리량과 가용성을 높이는 기술이다. L4와 L7의 차이, 라운드 로빈과 최소 연결 등 분산 알고리즘, 헬스 체크와 세션 처리 전략을 정리한다.</summary>
    <category term="네트워크"/>
  </entry>
  <entry>
    <title>병합 정렬 (Merge Sort)</title>
    <link href="https://devfit.app/cs/mergesort/"/>
    <id>https://devfit.app/cs/mergesort/</id>
    <published>2026-08-17T00:00:00+09:00</published>
    <updated>2026-11-05T00:00:00+09:00</updated>
    <summary>배열을 절반씩 나눠 정렬한 뒤 합치는 분할 정복 정렬인 병합 정렬을 다룬다. 항상 O(n log n)을 보장하는 이유, 안정성이 결정되는 지점, 구현 코드와 활용을 정리한다.</summary>
    <category term="알고리즘"/>
  </entry>
  <entry>
    <title>마이크로서비스 아키텍처 (MSA)</title>
    <link href="https://devfit.app/cs/msa/"/>
    <id>https://devfit.app/cs/msa/</id>
    <published>2026-08-17T00:00:00+09:00</published>
    <updated>2026-11-05T00:00:00+09:00</updated>
    <summary>마이크로서비스 아키텍처는 애플리케이션을 비즈니스 기능 단위의 서비스로 나눠 독립적으로 개발, 배포, 확장하는 설계 방식이다. 모놀리식과의 비교, 사가 패턴과 서킷 브레이커, 도입 판단 기준을 정리한다.</summary>
    <category term="소프트웨어 공학"/>
  </entry>
  <entry>
    <title>정규화 (Normalization)</title>
    <link href="https://devfit.app/cs/normalization/"/>
    <id>https://devfit.app/cs/normalization/</id>
    <published>2026-08-17T00:00:00+09:00</published>
    <updated>2026-11-05T00:00:00+09:00</updated>
    <summary>정규화는 함수 종속을 기준으로 테이블을 분리해 중복과 이상 현상을 막는 설계 과정이다. 제1정규형부터 BCNF까지 각 단계가 제거하는 종속 관계와 예시, 반정규화와의 균형을 다룬다.</summary>
    <category term="데이터베이스"/>
  </entry>
  <entry>
    <title>객체지향 프로그래밍 (OOP)</title>
    <link href="https://devfit.app/cs/object-oriented-programming/"/>
    <id>https://devfit.app/cs/object-oriented-programming/</id>
    <published>2026-08-17T00:00:00+09:00</published>
    <updated>2026-11-05T00:00:00+09:00</updated>
    <summary>객체지향 프로그래밍은 데이터와 동작을 묶은 객체들의 협력으로 프로그램을 구성하는 패러다임이다. 캡슐화, 상속, 다형성, 추상화의 네 가지 특성과 SOLID 원칙, 실무 적용의 한계까지 정리한다.</summary>
    <category term="소프트웨어 공학"/>
  </entry>
  <entry>
    <title>OSI 7계층 (OSI 7 Layers)</title>
    <link href="https://devfit.app/cs/osi-7-layers/"/>
    <id>https://devfit.app/cs/osi-7-layers/</id>
    <published>2026-08-17T00:00:00+09:00</published>
    <updated>2026-11-05T00:00:00+09:00</updated>
    <summary>OSI 7계층은 네트워크 통신을 물리 계층부터 응용 계층까지 일곱 단계의 역할로 나눈 개념 모델이다. 각 계층의 역할과 캡슐화 과정, TCP/IP 4계층 모델과의 비교를 정리한다.</summary>
    <category term="네트워크"/>
  </entry>
  <entry>
    <title>페이지 교체 알고리즘 (Page Replacement Algorithm)</title>
    <link href="https://devfit.app/cs/page-replacement-algorithm/"/>
    <id>https://devfit.app/cs/page-replacement-algorithm/</id>
    <published>2026-08-17T00:00:00+09:00</published>
    <updated>2026-11-05T00:00:00+09:00</updated>
    <summary>물리 메모리가 가득 찼을 때 내보낼 페이지를 고르는 페이지 교체 알고리즘을 다룬다. FIFO와 LRU와 클럭 알고리즘 비교, 벨라디의 모순, 스래싱과 작업 집합 모델까지 정리한다.</summary>
    <category term="운영체제"/>
  </entry>
  <entry>
    <title>페이징과 세그먼테이션 (Paging and Segmentation)</title>
    <link href="https://devfit.app/cs/paging-and-segmentation/"/>
    <id>https://devfit.app/cs/paging-and-segmentation/</id>
    <published>2026-08-17T00:00:00+09:00</published>
    <updated>2026-11-05T00:00:00+09:00</updated>
    <summary>프로세스 주소 공간을 물리 메모리에 비연속적으로 배치하는 페이징과 세그먼테이션을 다룬다. 주소 변환과 TLB, 다단계 페이지 테이블, 두 기법의 단편화와 보호 관점 비교까지 정리한다.</summary>
    <category term="운영체제"/>
  </entry>
  <entry>
    <title>PCB와 컨텍스트 스위칭 (Context Switching)</title>
    <link href="https://devfit.app/cs/pcb-context-switching/"/>
    <id>https://devfit.app/cs/pcb-context-switching/</id>
    <published>2026-08-17T00:00:00+09:00</published>
    <updated>2026-11-05T00:00:00+09:00</updated>
    <summary>커널이 프로세스를 관리하는 자료구조인 PCB와 실행 문맥을 저장하고 복원하는 컨텍스트 스위칭을 다룬다. PCB의 구성, 전환 절차, 캐시와 TLB 오염이라는 간접 비용, 비용을 줄이는 설계까지 정리한다.</summary>
    <category term="운영체제"/>
  </entry>
  <entry>
    <title>프로세스와 스레드 (Process vs Thread)</title>
    <link href="https://devfit.app/cs/process-vs-thread/"/>
    <id>https://devfit.app/cs/process-vs-thread/</id>
    <published>2026-08-17T00:00:00+09:00</published>
    <updated>2026-11-05T00:00:00+09:00</updated>
    <summary>독립된 자원을 가진 프로세스와 그 안의 실행 흐름인 스레드를 다룬다. 공유하는 것과 따로 가지는 것, 멀티프로세스와 멀티스레드의 선택 기준, 커널 수준 스레드와 고루틴 같은 경량 스레드까지 정리한다.</summary>
    <category term="운영체제"/>
  </entry>
  <entry>
    <title>퀵 정렬 (Quick Sort)</title>
    <link href="https://devfit.app/cs/quicksort/"/>
    <id>https://devfit.app/cs/quicksort/</id>
    <published>2026-08-17T00:00:00+09:00</published>
    <updated>2026-11-05T00:00:00+09:00</updated>
    <summary>피벗을 기준으로 배열을 분할해 재귀적으로 정렬하는 퀵 정렬을 다룬다. 평균 O(n log n)과 최악 O(n^2)의 조건, 피벗 전략, 로무토 분할 구현과 퀵 셀렉트를 정리한다.</summary>
    <category term="알고리즘"/>
  </entry>
  <entry>
    <title>React Hook: 함수 컴포넌트의 상태와 로직 재사용</title>
    <link href="https://devfit.app/cs/react-hook/"/>
    <id>https://devfit.app/cs/react-hook/</id>
    <published>2026-08-17T00:00:00+09:00</published>
    <updated>2026-11-05T00:00:00+09:00</updated>
    <summary>React Hook은 함수 컴포넌트에서 상태 관리와 사이드 이펙트 처리를 가능하게 하는 함수들의 모음이다. 훅의 등장 배경, 호출 순서 기반 동작 원리와 규칙, 커스텀 훅을 통한 로직 재사용까지 면접 관점에서 정리한다.</summary>
    <category term="React / Vue"/>
  </entry>
  <entry>
    <title>레디스 (Redis)</title>
    <link href="https://devfit.app/cs/redis/"/>
    <id>https://devfit.app/cs/redis/</id>
    <published>2026-08-17T00:00:00+09:00</published>
    <updated>2026-11-05T00:00:00+09:00</updated>
    <summary>레디스는 모든 데이터를 메모리에서 처리하는 인메모리 키-값 저장소다. 단일 스레드 구조가 빠른 이유, 주요 자료구조, RDB와 AOF 영속성, 캐싱 전략, 센티널과 클러스터 구성을 정리한다.</summary>
    <category term="데이터베이스"/>
  </entry>
  <entry>
    <title>세마포어와 뮤텍스 (Semaphore, Mutex)</title>
    <link href="https://devfit.app/cs/semaphore-mutex/"/>
    <id>https://devfit.app/cs/semaphore-mutex/</id>
    <published>2026-08-17T00:00:00+09:00</published>
    <updated>2026-11-05T00:00:00+09:00</updated>
    <summary>공유 자원 접근의 질서를 잡는 동기화 도구인 뮤텍스와 세마포어를 다룬다. 소유권 유무라는 핵심 차이, wait와 signal 연산, 생산자 소비자 문제 적용, 우선순위 역전과 상속까지 정리한다.</summary>
    <category term="운영체제"/>
  </entry>
  <entry>
    <title>코딩테스트 최적화 기법 (Optimization Techniques)</title>
    <link href="https://devfit.app/cs/simple-optimizations/"/>
    <id>https://devfit.app/cs/simple-optimizations/</id>
    <published>2026-08-17T00:00:00+09:00</published>
    <updated>2026-11-05T00:00:00+09:00</updated>
    <summary>시간 초과를 피하는 실전 요령을 모았다. 입력 크기로 목표 복잡도를 역산하는 기준표, 빠른 입출력, 누적 합, 투 포인터와 슬라이딩 윈도우, 가지치기를 정리한다.</summary>
    <category term="알고리즘"/>
  </entry>
  <entry>
    <title>싱글톤 패턴 (Singleton Pattern)</title>
    <link href="https://devfit.app/cs/singleton-pattern/"/>
    <id>https://devfit.app/cs/singleton-pattern/</id>
    <published>2026-08-17T00:00:00+09:00</published>
    <updated>2026-11-05T00:00:00+09:00</updated>
    <summary>인스턴스를 단 하나만 만들어 전역 접근 지점을 제공하는 생성 패턴이다. 이중 검사 잠금과 volatile, 정적 내부 클래스, enum까지 구현 방식의 진화와 안티 패턴 논쟁을 정리한다.</summary>
    <category term="디자인 패턴"/>
  </entry>
  <entry>
    <title>SOLID 원칙 (SOLID Principles)</title>
    <link href="https://devfit.app/cs/solid/"/>
    <id>https://devfit.app/cs/solid/</id>
    <published>2026-08-17T00:00:00+09:00</published>
    <updated>2026-11-05T00:00:00+09:00</updated>
    <summary>객체지향 설계의 다섯 원칙인 SRP, OCP, LSP, ISP, DIP를 위반 코드와 개선 코드로 각각 설명한다. 다섯 원칙이 서로 어떻게 연결되는지와 위반 신호를 표로 정리한다.</summary>
    <category term="디자인 패턴"/>
  </entry>
  <entry>
    <title>Spring MVC 구조와 요청 처리 흐름</title>
    <link href="https://devfit.app/cs/spring-mvc/"/>
    <id>https://devfit.app/cs/spring-mvc/</id>
    <published>2026-08-17T00:00:00+09:00</published>
    <updated>2026-11-05T00:00:00+09:00</updated>
    <summary>Spring MVC는 프론트 컨트롤러 패턴 기반으로 모든 요청이 디스패처 서블릿을 거친다. 핸들러 매핑과 어댑터, HttpMessageConverter를 통한 요청 처리 흐름과 필터, 인터셉터 차이를 설명한다.</summary>
    <category term="Spring / JPA"/>
  </entry>
  <entry>
    <title>SQL 조인 (JOIN)의 종류</title>
    <link href="https://devfit.app/cs/sql-join/"/>
    <id>https://devfit.app/cs/sql-join/</id>
    <published>2026-08-17T00:00:00+09:00</published>
    <updated>2026-11-05T00:00:00+09:00</updated>
    <summary>SQL 조인은 여러 테이블을 공통 컬럼으로 연결해 하나의 결과로 조회하는 연산이다. INNER, LEFT, FULL, CROSS, SELF 조인의 차이와 예시 쿼리, ON과 WHERE의 차이, 조인 알고리즘을 정리한다.</summary>
    <category term="데이터베이스"/>
  </entry>
  <entry>
    <title>SQL과 NoSQL의 차이</title>
    <link href="https://devfit.app/cs/sql-vs-nosql/"/>
    <id>https://devfit.app/cs/sql-vs-nosql/</id>
    <published>2026-08-17T00:00:00+09:00</published>
    <updated>2026-11-05T00:00:00+09:00</updated>
    <summary>SQL은 고정 스키마의 관계형 모델, NoSQL은 문서, 키-값, 그래프 등 다양한 모델의 저장소다. 스키마, 일관성, 확장 방식의 차이를 표로 비교하고 실무 선택 기준과 폴리글랏 구성을 다룬다.</summary>
    <category term="데이터베이스"/>
  </entry>
  <entry>
    <title>스택과 큐 (Stack &amp; Queue)</title>
    <link href="https://devfit.app/cs/stack-queue/"/>
    <id>https://devfit.app/cs/stack-queue/</id>
    <published>2026-08-17T00:00:00+09:00</published>
    <updated>2026-11-05T00:00:00+09:00</updated>
    <summary>후입선출 스택과 선입선출 큐의 개념, O(1) 핵심 연산과 원형 큐 구현을 다룬다. 호출 스택, DFS와 BFS 등 활용처와 스택 두 개로 큐를 만드는 고전 문제까지 정리했다.</summary>
    <category term="자료구조"/>
  </entry>
  <entry>
    <title>동기/비동기와 블로킹/논블로킹 (Sync/Async and Blocking/Non-blocking)</title>
    <link href="https://devfit.app/cs/sync-async-blocking-nonblocking/"/>
    <id>https://devfit.app/cs/sync-async-blocking-nonblocking/</id>
    <published>2026-08-17T00:00:00+09:00</published>
    <updated>2026-11-05T00:00:00+09:00</updated>
    <summary>동기와 비동기는 완료를 누가 챙기는가, 블로킹과 논블로킹은 제어권을 돌려받는가의 구분이다. 두 축의 2x2 조합 네 가지를 식당 비유와 이벤트 루프 동작으로 정리한다.</summary>
    <category term="네트워크"/>
  </entry>
  <entry>
    <title>TCP 3-way와 4-way 핸드셰이크 (TCP 3-way and 4-way Handshake)</title>
    <link href="https://devfit.app/cs/tcp-3-way-handshake-4-way-handshake/"/>
    <id>https://devfit.app/cs/tcp-3-way-handshake-4-way-handshake/</id>
    <published>2026-08-17T00:00:00+09:00</published>
    <updated>2026-11-05T00:00:00+09:00</updated>
    <summary>TCP 3-way 핸드셰이크는 연결 수립, 4-way 핸드셰이크는 연결 종료 절차이다. SYN과 FIN의 교환 단계, TIME_WAIT의 의미, SYN 플러딩 공격과 방어까지 정리한다.</summary>
    <category term="네트워크"/>
  </entry>
  <entry>
    <title>테스트 주도 개발 (TDD, Test Driven Development)</title>
    <link href="https://devfit.app/cs/tdd-test-driven-development/"/>
    <id>https://devfit.app/cs/tdd-test-driven-development/</id>
    <published>2026-08-17T00:00:00+09:00</published>
    <updated>2026-11-05T00:00:00+09:00</updated>
    <summary>TDD는 실패하는 테스트를 먼저 작성하고 이를 통과시키는 최소한의 코드를 만든 뒤 다듬는 과정을 반복하는 개발 방법이다. 레드 그린 리팩터 사이클, 설계 효과, 장단점과 실무 함정을 정리한다.</summary>
    <category term="소프트웨어 공학"/>
  </entry>
  <entry>
    <title>신입 개발자 기술면접 질문 모음</title>
    <link href="https://devfit.app/cs/tech-interview-questions/"/>
    <id>https://devfit.app/cs/tech-interview-questions/</id>
    <published>2026-08-17T00:00:00+09:00</published>
    <updated>2026-11-05T00:00:00+09:00</updated>
    <summary>자료구조, 알고리즘, 운영체제, 네트워크, 데이터베이스, 웹, 소프트웨어 공학까지 신입 개발자 CS 면접 단골 질문 80여 개를 영역별로 정리했다. 출제 경향과 답변 연습 방법도 함께 담았다.</summary>
    <category term="면접 질문 모음"/>
  </entry>
  <entry>
    <title>트랜잭션 (Transaction)과 ACID</title>
    <link href="https://devfit.app/cs/transaction/"/>
    <id>https://devfit.app/cs/transaction/</id>
    <published>2026-08-17T00:00:00+09:00</published>
    <updated>2026-11-05T00:00:00+09:00</updated>
    <summary>트랜잭션은 전부 반영되거나 전부 취소되어야 하는 논리적 작업 단위다. 원자성, 일관성, 격리성, 지속성의 ACID 성질과 언두, 리두 로그 기반 구현, 실무 트랜잭션 관리 원칙을 다룬다.</summary>
    <category term="데이터베이스"/>
  </entry>
  <entry>
    <title>REST API</title>
    <link href="https://devfit.app/cs/web-rest-api/"/>
    <id>https://devfit.app/cs/web-rest-api/</id>
    <published>2026-08-17T00:00:00+09:00</published>
    <updated>2026-11-05T00:00:00+09:00</updated>
    <summary>REST는 HTTP의 설계 의도를 활용해 자원을 URI로 식별하고 메서드로 행위를 표현하는 아키텍처 스타일이다. 여섯 가지 제약 조건과 URI 설계 원칙, 버전 관리, GraphQL과 gRPC와의 비교를 정리한다.</summary>
    <category term="웹"/>
  </entry>
  <entry>
    <title>웹소켓 (WebSocket)</title>
    <link href="https://devfit.app/cs/websocket/"/>
    <id>https://devfit.app/cs/websocket/</id>
    <published>2026-08-17T00:00:00+09:00</published>
    <updated>2026-11-05T00:00:00+09:00</updated>
    <summary>웹소켓은 하나의 TCP 연결에서 클라이언트와 서버가 양방향으로 메시지를 주고받는 프로토콜이다. 폴링과 비교하고 핸드셰이크, 프레임, 재접속과 확장 전략을 정리했다.</summary>
    <category term="웹"/>
  </entry>
</feed>
