취업 준비 필수 지식

개발자 취업/이직을 위한 핵심 지식을 체계적으로 정리한 문서다.


목차

  1. 자료구조
  2. 알고리즘
  3. 운영체제
  4. 네트워크
  5. 데이터베이스
  6. 시스템 설계
  7. 언어 & 프레임워크
  8. 개발 방법론
  9. 면접 대비

1. 자료구조

데이터를 효율적으로 저장하고 관리하는 방법

1-1. 배열과 연결리스트

주제세부 내용
배열의 메모리 구조연속된 메모리 공간, 인덱스를 통한 O(1) 접근
정적 배열 vs 동적 배열고정 크기 vs ArrayList/Vector의 자동 확장
단일 연결리스트한 방향 탐색, 삽입/삭제 O(1), 탐색 O(n)
이중 연결리스트양방향 탐색, 이전 노드 접근 가능
시간복잡도 비교삽입/삭제/탐색 연산별 비교
선택 기준랜덤 접근 필요 → 배열, 빈번한 삽입/삭제 → 연결리스트

1-2. 스택과 큐

주제세부 내용
스택 구현배열 기반 vs 연결리스트 기반
콜스택과 재귀함수 호출 스택, 스택 오버플로우
큐 구현선형 큐의 문제점, 원형 큐로 해결
덱(Deque)양쪽에서 삽입/삭제 가능
실무 활용실행취소(Undo), BFS 탐색, 작업 스케줄링

1-3. 해시테이블

주제세부 내용
해시 함수 원리키를 인덱스로 변환, 좋은 해시 함수의 조건
충돌 해결: 체이닝같은 버킷에 연결리스트로 저장
충돌 해결: 개방 주소법선형 탐사, 이차 탐사, 이중 해싱
로드 팩터와 리해싱임계점 도달 시 테이블 확장
Java HashMap 내부버킷당 8개 초과 시 Red-Black Tree로 변환
HashDoS 공격의도적 충돌 유발, 랜덤 시드로 방어

1-4. 트리

주제세부 내용
트리 용어루트, 리프, 높이, 깊이, 차수
이진 트리 순회전위(Pre), 중위(In), 후위(Post), 레벨(Level)
이진 탐색 트리(BST)왼쪽 < 루트 < 오른쪽, 탐색/삽입/삭제 O(log n)
균형 트리AVL Tree: 높이 차이 1 이하 유지
Red-Black Tree색상 규칙으로 균형 유지, Java TreeMap
B-Tree & B+Tree디스크 기반, 다진 트리, DB 인덱스
트라이(Trie)문자열 검색 최적화, 자동완성

1-5. 힙

주제세부 내용
완전 이진 트리마지막 레벨 제외 모든 노드가 채워짐
힙 속성최소힙: 부모 ≤ 자식, 최대힙: 부모 ≥ 자식
heapify배열을 힙으로 변환, O(n) 시간복잡도
우선순위 큐힙 기반 구현, 삽입/삭제 O(log n)
활용 예시힙 정렬, Top-K 문제, 다익스트라 알고리즘

1-6. 그래프

주제세부 내용
인접 행렬2차원 배열, 공간 O(V²), 간선 확인 O(1)
인접 리스트연결리스트 배열, 공간 O(V+E)
방향/무방향 그래프간선의 방향성 유무
가중치 그래프간선에 비용/거리 정보
사이클 탐지DFS로 방문 중인 노드 재방문 체크
Union-Find서로소 집합, 경로 압축, 랭크 기반 합치기

2. 알고리즘

문제를 해결하는 효율적인 절차

2-1. 시간/공간 복잡도

주제세부 내용
Big-O 표기법최악의 경우 상한, O(1) < O(log n) < O(n) < O(n log n) < O(n²)
Big-Ω, Big-Θ하한, 평균 (면접에서는 주로 Big-O)
시간복잡도 계산반복문 중첩 횟수, 재귀 호출 횟수
공간복잡도추가 메모리 사용량, 재귀 스택 포함
마스터 정리T(n) = aT(n/b) + f(n) 형태의 재귀 분석
상수 시간의 중요성데이터 크기가 작을 때 상수 계수 영향

2-2. 정렬 알고리즘

주제세부 내용
O(n²) 정렬버블, 선택, 삽입 정렬
퀵소트피벗 선택, 파티션, 평균 O(n log n), 최악 O(n²)
병합 정렬분할 정복, 안정 정렬, 항상 O(n log n)
힙 정렬힙 구성 후 추출, 제자리 정렬
비교 기반 하한비교 정렬은 O(n log n)이 하한
선형 시간 정렬계수, 기수, 버킷 정렬 (특수 조건)
TimSortPython/Java 내장, 삽입 + 병합 하이브리드

2-3. 탐색 알고리즘

주제세부 내용
선형 탐색O(n), 정렬 불필요
이진 탐색O(log n), 정렬 필수, 반씩 제거
Lower/Upper Bound경계값 찾기, C++ STL
파라메트릭 서치최적화 문제를 결정 문제로 변환
DFS깊이 우선, 재귀/스택, 경로 탐색
BFS너비 우선, 큐, 최단 거리
백트래킹가지치기로 탐색 공간 축소

2-4. 동적 프로그래밍 (DP)

주제세부 내용
DP 조건최적 부분 구조 + 중복 부분 문제
Top-Down메모이제이션, 재귀 + 캐싱
Bottom-Up타뷸레이션, 반복문으로 테이블 채우기
1차원 DP피보나치, 계단 오르기, 동전 교환
2차원 DPLCS, 배낭 문제, 편집 거리
상태 정의dp[i]가 의미하는 것을 명확히
공간 최적화이전 행만 필요하면 O(n) → O(1) 가능

2-5. 그리디 알고리즘

주제세부 내용
그리디 vs DP그리디: 매 순간 최선, DP: 모든 경우 고려
탐욕적 선택 속성지역 최적 → 전역 최적 증명 필요
활동 선택 문제끝나는 시간 기준 정렬
크루스칼 알고리즘간선 정렬, Union-Find로 MST
프림 알고리즘정점 기반, 우선순위 큐로 MST
다익스트라최단 경로, 음수 가중치 불가

2-6. 그래프 알고리즘

주제세부 내용
DFS/BFS 응용연결 요소, 이분 그래프 판별
위상 정렬DAG에서 선후 관계 정렬, 진입 차수
다익스트라단일 출발점 최단 경로, O(E log V)
벨만-포드음수 가중치 가능, 음수 사이클 탐지
플로이드-워셜모든 쌍 최단 경로, O(V³)
MST최소 신장 트리, 크루스칼/프림
SCC강한 연결 요소, 코사라주/타잔

2-7. 자주 쓰이는 패턴

주제세부 내용
투 포인터정렬된 배열에서 두 포인터 이동
슬라이딩 윈도우고정/가변 크기 윈도우, 연속 부분 문제
구간 합 (Prefix Sum)누적 합 전처리, O(1) 구간 합 쿼리
비트마스킹집합 표현, 부분집합 열거
분할 정복문제를 작은 부분으로 나눠 해결

3. 운영체제

하드웨어와 소프트웨어를 관리하는 시스템

3-1. 프로세스와 스레드

주제세부 내용
프로세스 정의실행 중인 프로그램, 독립된 메모리 공간
PCBProcess Control Block, 프로세스 메타데이터
프로세스 상태생성 → 준비 → 실행 → 대기 → 종료
스레드 정의프로세스 내 실행 단위, 스택만 독립
멀티프로세스 vs 멀티스레드안정성 vs 자원 효율성
컨텍스트 스위칭CPU 상태 저장/복원, 오버헤드 발생
사용자/커널 스레드1:1, N:1, M:N 매핑 모델
코루틴협력적 멀티태스킹, 경량 스레드

3-2. 동기화

주제세부 내용
경쟁 조건Race Condition, 공유 자원 동시 접근
임계 영역Critical Section, 한 번에 하나만 진입
뮤텍스상호 배제, 락/언락
세마포어카운팅 세마포어, P/V 연산
모니터언어 수준 동기화, Java synchronized
스핀락 vs 슬립락바쁜 대기 vs 블로킹
데드락 조건상호배제, 점유대기, 비선점, 순환대기
데드락 해결예방, 회피(은행원), 탐지, 복구
라이브락 & 기아진행은 하지만 해결 안됨, 영원히 대기

3-3. 메모리 관리

주제세부 내용
메모리 계층레지스터 → L1/L2/L3 캐시 → RAM → SSD/HDD
논리 vs 물리 주소MMU를 통한 주소 변환
연속 할당고정/가변 분할, 외부 단편화
페이징고정 크기 페이지, 내부 단편화
페이지 테이블가상 → 물리 주소 매핑
TLB페이지 테이블 캐시, 변환 속도 향상
세그멘테이션가변 크기, 논리적 단위 분할
가상 메모리물리 메모리보다 큰 주소 공간
요구 페이징필요할 때만 메모리에 적재
페이지 교체FIFO, LRU, LFU, Clock 알고리즘
스래싱과도한 페이지 폴트로 성능 저하

3-4. CPU 스케줄링

주제세부 내용
선점 vs 비선점실행 중 CPU 뺏기 가능 여부
FCFSFirst Come First Serve, 호위 효과
SJFShortest Job First, 최적이지만 기아
SRTF선점형 SJF
Round Robin타임 퀀텀, 공정성
다단계 큐우선순위별 큐 분리
다단계 피드백 큐큐 간 이동 허용
우선순위 역전높은 우선순위가 낮은 우선순위 대기
CFSLinux, 완전 공정 스케줄러

3-5. I/O 시스템

주제세부 내용
블로킹 I/O요청 후 완료까지 대기
논블로킹 I/O즉시 반환, 상태 확인 필요
동기 vs 비동기완료 통보 방식의 차이
I/O 멀티플렉싱select, poll, epoll
Reactor 패턴이벤트 기반 I/O 처리
인터럽트하드웨어 신호로 CPU 작업 중단

3-6. 파일 시스템

주제세부 내용
파일 시스템 구조부트 블록, 슈퍼 블록, inode, 데이터 블록
inode파일 메타데이터, 데이터 블록 포인터
파일 디스크립터열린 파일 테이블 인덱스
하드 링크 vs 심볼릭 링크같은 inode vs 경로 참조
저널링트랜잭션 로그로 일관성 보장
디스크 스케줄링FCFS, SSTF, SCAN, C-SCAN

4. 네트워크

컴퓨터 간 데이터 통신의 원리

4-1. OSI 7계층 & TCP/IP

주제세부 내용
OSI 7계층물리-데이터링크-네트워크-전송-세션-표현-응용
TCP/IP 4계층네트워크 인터페이스-인터넷-전송-응용
캡슐화각 계층에서 헤더 추가
PDU세그먼트(L4), 패킷(L3), 프레임(L2)
계층별 장비허브(L1), 스위치(L2), 라우터(L3)
계층별 프로토콜Ethernet, IP, TCP/UDP, HTTP

4-2. TCP와 UDP

주제세부 내용
TCP 특징연결 지향, 신뢰성, 순서 보장
3-way handshakeSYN → SYN-ACK → ACK
4-way handshakeFIN → ACK → FIN → ACK
TIME_WAIT지연 패킷 대기, 2MSL
흐름 제어슬라이딩 윈도우, 수신자 버퍼 고려
혼잡 제어Slow Start, AIMD, Fast Retransmit
UDP 특징비연결, 빠름, 신뢰성 없음
UDP 활용DNS, 실시간 스트리밍, 게임
QUICUDP 기반 신뢰성 프로토콜, HTTP/3
Keep-Alive연결 유지, 재사용

4-3. HTTP/HTTPS

주제세부 내용
HTTP 메서드GET, POST, PUT, PATCH, DELETE
멱등성같은 요청 여러 번 = 같은 결과
상태 코드2xx 성공, 3xx 리다이렉트, 4xx 클라이언트 에러, 5xx 서버 에러
주요 헤더Content-Type, Cache-Control, Cookie, Authorization
HTTP/1.1Keep-Alive, 파이프라이닝
HTTP/2멀티플렉싱, 헤더 압축, 서버 푸시
HTTP/3QUIC 기반, 연결 수립 빠름
HTTPSTLS 암호화, 기밀성/무결성/인증
TLS 핸드셰이크인증서 교환, 세션 키 협상
대칭키/비대칭키세션 키(대칭), 키 교환(비대칭)
REST API자원 중심 설계, 무상태성

4-4. DNS와 CDN

주제세부 내용
DNS 역할도메인 → IP 주소 변환
재귀적 vs 반복적 질의클라이언트 vs 서버 주도
DNS 레코드A, AAAA, CNAME, MX, NS, TXT
DNS 캐싱브라우저, OS, ISP 캐시
TTLTime To Live, 캐시 유효 시간
CDN 역할지리적으로 가까운 서버에서 응답
엣지 서버사용자 근처 캐시 서버
오리진 서버원본 콘텐츠 서버
캐시 무효화버저닝, Purge API

4-5. IP와 라우팅

주제세부 내용
IPv4 vs IPv632비트 vs 128비트, 주소 고갈
서브넷 마스크네트워크/호스트 부분 구분
CIDR클래스리스 주소 할당, /24 표기
공인 IP vs 사설 IP인터넷 vs 내부 네트워크
NAT사설 → 공인 IP 변환, 포트 포워딩
라우팅 테이블목적지별 다음 홉 정보
ARPIP → MAC 주소 변환

4-6. WebSocket과 실시간 통신

주제세부 내용
HTTP Polling주기적 요청, 비효율적
Long Polling응답 지연, 연결 유지
SSEServer-Sent Events, 단방향
WebSocket양방향, 지속 연결, 낮은 오버헤드
WebSocket 핸드셰이크HTTP Upgrade 헤더
Socket.IO폴백 지원, 룸/네임스페이스
실시간 채팅 구현메시지 브로드캐스트, 접속 관리

4-7. 보안

주제세부 내용
Same-Origin Policy동일 출처만 접근 허용
CORSCross-Origin 요청 허용 설정
XSS스크립트 삽입 공격, 이스케이핑으로 방어
CSRF사용자 권한 도용, 토큰으로 방어
SQL Injection쿼리 조작, Prepared Statement
OAuth 2.0권한 위임 프로토콜
JWTJSON Web Token, 서명된 토큰
HTTPS 필요성중간자 공격 방지

5. 데이터베이스

데이터 저장, 관리, 조회의 모든 것

5-1. SQL 기본

주제세부 내용
DDLCREATE, ALTER, DROP, TRUNCATE
DMLSELECT, INSERT, UPDATE, DELETE
DCLGRANT, REVOKE
TCLCOMMIT, ROLLBACK, SAVEPOINT
SELECT 실행 순서FROM → WHERE → GROUP BY → HAVING → SELECT → ORDER BY
JOIN 종류INNER, LEFT, RIGHT, FULL OUTER, CROSS
서브쿼리스칼라, 인라인 뷰, 중첩
서브쿼리 vs JOIN성능 비교, 실행 계획 확인
집계 함수COUNT, SUM, AVG, MAX, MIN
GROUP BY / HAVING그룹화와 그룹 조건
윈도우 함수ROW_NUMBER, RANK, DENSE_RANK, LAG, LEAD
UNION vs UNION ALL중복 제거 여부

5-2. 정규화

주제세부 내용
이상 현상삽입, 갱신, 삭제 이상
함수적 종속성X → Y, X가 Y를 결정
1NF원자값, 반복 그룹 제거
2NF부분 함수 종속 제거
3NF이행 함수 종속 제거
BCNF결정자가 모두 후보키
반정규화성능을 위한 중복 허용
정규화 vs 성능조인 비용 vs 갱신 이상

5-3. 인덱스와 최적화

주제세부 내용
인덱스 필요성테이블 풀 스캔 방지
B+Tree 구조리프 노드에 데이터, 범위 검색 효율
클러스터드 인덱스테이블당 1개, 물리적 정렬
논클러스터드 인덱스별도 구조, 포인터로 연결
복합 인덱스컬럼 순서 중요, 왼쪽 우선
커버링 인덱스인덱스만으로 쿼리 해결
인덱스 안 타는 경우함수 적용, LIKE ’%…’, OR 조건
EXPLAIN실행 계획 분석, type/key/rows
쿼리 최적화인덱스 활용, 조인 순서, 서브쿼리 제거

5-4. 트랜잭션

주제세부 내용
트랜잭션 정의논리적 작업 단위, All or Nothing
ACID원자성, 일관성, 격리성, 지속성
Dirty Read커밋 안 된 데이터 읽음
Non-Repeatable Read같은 쿼리, 다른 결과
Phantom Read같은 조건, 다른 행 개수
격리 수준READ UNCOMMITTED → SERIALIZABLE
Shared Lock읽기 락, 여러 트랜잭션 공유
Exclusive Lock쓰기 락, 독점
낙관적 락버전 체크, 충돌 시 롤백
비관적 락선점 락, 대기
MVCC다중 버전으로 동시성 확보
2PCTwo-Phase Commit, 분산 트랜잭션

5-5. NoSQL

주제세부 내용
SQL vs NoSQL스키마, 확장성, 일관성
CAP 이론Consistency, Availability, Partition Tolerance
Redis 자료구조String, List, Set, Hash, Sorted Set
Redis 영속성RDB 스냅샷, AOF 로그
Redis 캐시 전략Cache-Aside, Write-Through
Redis 클러스터샤딩, 복제, 센티넬
MongoDB문서 지향, 스키마리스, 샤딩
Elasticsearch역인덱스, 전문 검색, 분석
시계열 DBInfluxDB, TimescaleDB, 시간 기반 최적화

5-6. 복제와 샤딩

주제세부 내용
복제 목적가용성, 읽기 분산
Master-Slave쓰기는 Master, 읽기는 Slave
Master-Master양방향 쓰기, 충돌 해결 필요
동기 vs 비동기 복제일관성 vs 성능
복제 지연읽기 후 쓰기 문제
샤딩 목적쓰기 분산, 대용량 처리
해시 샤딩균등 분배, 범위 쿼리 불리
범위 샤딩범위 쿼리 유리, 핫스팟 위험
리샤딩샤드 추가 시 데이터 이동
Vitess, ProxySQL샤딩 미들웨어

6. 시스템 설계

대규모 시스템을 설계하는 원칙과 패턴

6-1. 확장성

주제세부 내용
수직 확장Scale Up, 더 좋은 하드웨어
수평 확장Scale Out, 서버 추가
Stateless 설계서버에 상태 저장 안 함
세션 관리Sticky Session, Redis Session Store
DB 확장Read Replica, 샤딩
마이크로서비스서비스 분리, 독립 배포
모놀리식단일 배포 단위, 간단함

6-2. 로드밸런싱

주제세부 내용
L4 로드밸런서TCP/UDP 레벨, 빠름
L7 로드밸런서HTTP 레벨, 콘텐츠 기반 라우팅
Round Robin순차 분배
Least Connections연결 수 적은 서버 선택
IP Hash같은 클라이언트 → 같은 서버
헬스 체크서버 상태 확인, 장애 감지
Nginx, HAProxy대표적인 로드밸런서
DNS 로드밸런싱여러 IP 반환

6-3. 캐싱

주제세부 내용
캐시 필요성DB 부하 감소, 응답 속도 향상
캐시 히트/미스적중률이 성능 좌우
Cache-Aside애플리케이션이 캐시 관리
Write-Through캐시와 DB 동시 쓰기
Write-Behind캐시만 쓰고 나중에 DB
캐시 무효화TTL, 이벤트 기반 삭제
로컬 vs 분산 캐시단일 서버 vs Redis
캐시 스탬피드동시 미스로 DB 폭주, 락으로 방어
CDN 캐싱정적 자원 엣지 캐싱

6-4. 메시지 큐

주제세부 내용
동기 vs 비동기즉시 응답 vs 나중에 처리
메시지 큐 장점디커플링, 버퍼링, 비동기 처리
Kafka높은 처리량, 로그 기반, 파티션
RabbitMQAMQP, 복잡한 라우팅
Redis Pub/Sub간단한 메시징, 영속성 없음
순서 보장파티션 키, 단일 컨슈머
Exactly-Once멱등성 + 트랜잭션
데드 레터 큐처리 실패 메시지 격리
이벤트 소싱상태 대신 이벤트 저장

6-5. API 설계

주제세부 내용
REST 원칙자원 중심, HTTP 메서드 활용
API 버저닝URL, 헤더, 쿼리 파라미터
Offset 페이지네이션페이지 번호, 대량 데이터 시 느림
Cursor 페이지네이션마지막 ID 기준, 일관성 유지
Rate Limiting요청 제한, 토큰 버킷/슬라이딩 윈도우
GraphQL클라이언트가 필요한 데이터만 요청
gRPCProtocol Buffers, 바이너리, 빠름

6-6. 설계 사례

주제핵심 고려사항
URL 단축기해시 함수, Base62 인코딩, 충돌 처리
실시간 채팅WebSocket, 메시지 브로커, 읽음 처리
뉴스피드팬아웃(Push vs Pull), 랭킹 알고리즘
검색 자동완성트라이, 인기도 가중치, 캐싱
파일 저장소청킹, 메타데이터 분리, CDN
예약 시스템동시성 제어, 비관적 락, 멱등성

7. 언어 & 프레임워크

주요 언어와 프레임워크의 핵심 개념

7-1. Java & JVM

주제세부 내용
JVM 구조클래스 로더, 런타임 데이터 영역, 실행 엔진
메모리 영역Heap, Stack, Method Area, PC Register, Native Stack
Heap 구조Young(Eden, Survivor), Old, Metaspace
GC 동작Mark-Sweep-Compact, Stop-The-World
GC 종류Serial, Parallel, CMS, G1, ZGC, Shenandoah
Minor vs Major GCYoung 영역 vs Old 영역
String Pool문자열 리터럴 재사용, intern()
불변 객체String, 스레드 안전, 캐싱 용이
equals/hashCode동등성 비교, HashMap 키 조건
Checked/Unchecked 예외컴파일 시점 vs 런타임
제네릭타입 안전성, 타입 소거
직렬화객체 → 바이트 스트림, Serializable
리플렉션런타임 클래스 정보 조회/수정

7-2. Java 동시성

주제세부 내용
synchronized메서드/블록 동기화, 모니터 락
volatile가시성 보장, 원자성 보장 안 함
java.util.concurrent동시성 유틸리티 패키지
ExecutorService스레드 풀, 작업 제출/관리
Future비동기 결과 조회
CompletableFuture비동기 체이닝, 조합
ConcurrentHashMap세그먼트 락 → 노드 락 (Java 8+)
Atomic 클래스CAS 기반 원자 연산
ThreadLocal스레드별 독립 변수
Lock 인터페이스ReentrantLock, ReadWriteLock

7-3. Spring

주제세부 내용
IoC제어의 역전, 객체 생성을 프레임워크에 위임
DI의존성 주입, 생성자/세터/필드 주입
Bean스프링 컨테이너가 관리하는 객체
Bean 생명주기생성 → 의존성 주입 → 초기화 → 사용 → 소멸
Bean 스코프singleton, prototype, request, session
싱글톤 주의점상태 공유 금지, 스레드 안전
AOP관점 지향, 횡단 관심사 분리
프록시JDK Dynamic Proxy, CGLIB
@Transactional선언적 트랜잭션, 프록시로 구현
트랜잭션 전파REQUIRED, REQUIRES_NEW, NESTED
Spring MVC 흐름DispatcherServlet → Handler → View
Filter vs Interceptor서블릿 레벨 vs 스프링 레벨
Spring Security인증/인가, FilterChain
자동 설정@EnableAutoConfiguration, 조건부 빈 등록

7-4. JavaScript/TypeScript

주제세부 내용
이벤트 루프콜 스택, 태스크 큐, 마이크로태스크 큐
마이크로 vs 매크로태스크Promise vs setTimeout
클로저함수와 렉시컬 환경의 조합
this 바인딩호출 방식에 따라 결정, bind/call/apply
프로토타입객체 간 상속, proto, prototype
Promise비동기 처리, then/catch/finally
async/awaitPromise 문법적 설탕, try/catch
TypeScript 타입interface, type, generic, union
타입 가드typeof, instanceof, in, is
Node.js 이벤트 루프libuv, 6단계 페이즈

7-5. OOP vs FP

주제세부 내용
OOP 4대 특성캡슐화, 상속, 다형성, 추상화
캡슐화정보 은닉, 접근 제어
상속코드 재사용, is-a 관계
다형성같은 인터페이스, 다른 동작
SOLIDSRP, OCP, LSP, ISP, DIP
디자인 패턴싱글톤, 팩토리, 전략, 옵저버, 데코레이터
FP 특징함수가 일급 시민, 불변성 강조
순수 함수같은 입력 → 같은 출력, 부수 효과 없음
불변성상태 변경 대신 새 객체 생성
고차 함수map, filter, reduce
참조 투명성표현식을 값으로 대체 가능

8. 개발 방법론

효율적인 개발을 위한 도구와 프로세스

8-1. Git

주제세부 내용
Git 내부 구조blob, tree, commit 객체
3가지 상태Working Directory, Staging, Repository
merge vs rebase병합 커밋 vs 선형 히스토리
Git Flowfeature, develop, release, hotfix, main
GitHub Flowmain + feature 브랜치, 단순
Trunk Based짧은 브랜치, 잦은 통합
커밋 컨벤션feat, fix, docs, refactor, test
cherry-pick특정 커밋만 가져오기
stash임시 저장
reset vs revert히스토리 수정 vs 취소 커밋
충돌 해결수동 머지, 도구 활용

8-2. 테스트

주제세부 내용
테스트 피라미드단위 > 통합 > E2E
단위 테스트함수/클래스 단위, 빠름, 격리
테스트 더블Mock, Stub, Spy, Fake, Dummy
Mock vs Stub행위 검증 vs 상태 검증
통합 테스트모듈 간 상호작용
TDD 사이클Red → Green → Refactor
테스트 커버리지코드 실행 비율, 100%가 목표 아님
E2E 테스트실제 사용자 시나리오
테스트 격리독립 실행, 순서 무관

8-3. CI/CD

주제세부 내용
CIContinuous Integration, 자동 빌드/테스트
CD (Delivery)배포 준비 자동화
CD (Deployment)프로덕션 배포 자동화
Jenkins파이프라인, 플러그인 생태계
GitHub ActionsYAML 기반, 이벤트 트리거
Docker컨테이너화, 이미지, Dockerfile
Kubernetes컨테이너 오케스트레이션, Pod, Service
블루-그린 배포두 환경 전환, 빠른 롤백
카나리 배포일부 트래픽만 새 버전
롤링 배포점진적 교체
롤백이전 버전 복구 전략

8-4. 클린 코드

주제세부 내용
의미 있는 이름의도 드러내기, 검색 가능한 이름
함수 설계작게, 한 가지만, 추상화 수준 일관
주석코드로 표현 우선, 필요시 Why 설명
에러 처리예외 사용, null 반환 지양
경계외부 코드 래핑, 변경 격리
클래스 설계SRP, 작은 클래스, 높은 응집도
코드 스멜중복, 긴 메서드, 큰 클래스, 긴 파라미터
리팩토링작은 단계, 테스트 보호, 지속적 개선

8-5. 모니터링

주제세부 내용
로깅 레벨TRACE, DEBUG, INFO, WARN, ERROR
구조화된 로그JSON 형식, 파싱 용이
분산 트레이싱요청 추적, Trace ID, Span
메트릭수치 데이터, 시계열
Prometheus메트릭 수집, PromQL
Grafana시각화 대시보드
알림 설정임계치 기반, 알림 피로 방지
APMApplication Performance Monitoring
Datadog, New Relic상용 APM 도구

9. 면접 대비

기술 외적인 면접 준비

9-1. 인성 면접 (Behavioral)

주제세부 내용
STAR 기법Situation, Task, Action, Result
갈등 해결의견 충돌 경험, 해결 과정
실패 경험실패 인정, 배운 점 강조
협업 경험팀 기여, 커뮤니케이션
리더십주도적 역할, 팀 이끈 경험
지원 동기회사 연구, 진정성
커리어 목표성장 방향, 회사와의 연결

9-2. 프로젝트 발표

주제세부 내용
프로젝트 선정기술적 도전, 임팩트 있는 것
기술 선택 이유Why this tech, 대안 비교
문제 해결 스토리상황 → 원인 분석 → 해결 → 결과
성능 개선 수치화Before/After, 측정 방법
트러블슈팅디버깅 과정, 원인 파악
아키텍처 설명전체 구조, 기술 스택
아쉬운 점개선 방향, 배운 점

9-3. 빈출 질문

주제준비 포인트
자기소개30초, 1분, 3분 버전 준비
기술 스택 깊이사용한 기술 Why, How, 내부 동작
왜 이 회사?회사 제품, 기술 블로그, 비전 연구
5년 후 계획구체적 목표, 회사 내 성장
최근 관심 기술트렌드 파악, 학습 중인 것
장단점솔직하되 개선 노력 포함
질문 있으신가요?팀 문화, 기술 스택, 온보딩 과정

9-4. 코딩 면접

주제세부 내용
문제 이해요구사항 확인, 엣지 케이스 질문
시간 분배이해 5분, 설계 10분, 구현 20분, 검증 5분
브루트포스 먼저일단 동작하는 해법, 이후 최적화
면접관 소통생각 과정 설명, 막히면 힌트 요청
테스트 케이스정상, 엣지, 예외 케이스
시간/공간 복잡도분석 후 설명
화이트보드 팁큰 글씨, 구조적 배치
온라인 코딩IDE 없이 연습, 손코딩

학습 로드맵

Phase 1: 기초 다지기 (CS 필수)

  1. 자료구조 전체
  2. 알고리즘 (복잡도, 정렬, 탐색)
  3. 운영체제 (프로세스, 메모리, 동기화)
  4. 네트워크 (TCP/IP, HTTP)

Phase 2: 심화 학습

  1. 데이터베이스 (SQL, 인덱스, 트랜잭션)
  2. 알고리즘 (DP, 그래프)
  3. 언어/프레임워크 심화

Phase 3: 실무 역량

  1. 시스템 설계
  2. 개발 방법론
  3. 면접 대비

각 주제는 면접에서 자주 나오는 순서대로 정리했다. 우선순위가 높은 주제부터 깊이 있게 학습한다.

1 item under this folder.