cs-fundamentalsdraft2026-09-08

CS 기초 & 아키텍처 가이드

CS 기초 & 아키텍처 영역은 특정 언어나 프레임워크에 매이지 않는 컴퓨터과학(Computer Science)의 근본 원리를 다룹니다. 자료구조와 알고리즘처럼 모든 개발 분야의 밑바탕이 되는 지식과, 시스템을 크게 설계하는 아키텍처 감각을 함께 기릅니다.

학습 순서

기초는 컴퓨터과학 전반(자료 표현, 운영체제, 네트워크, 데이터베이스의 원리)을 조망하는 데서 시작해, 자료구조와 알고리즘(Data Structures and Algorithms)으로 문제를 효율적으로 푸는 방법을 익힙니다. 이 지식을 코딩 테스트 형태로 훈련하고 싶다면 리트코드(LeetCode) 학습 주제로 실전 문제 풀이 감각을 다질 수 있습니다.

자료구조와 알고리즘을 다진 뒤에는 시스템 설계(System Design)로 대규모 서비스를 어떻게 구조화하는지 배우고, 소프트웨어 설계·아키텍처(Software Design & Architecture) 원칙과 소프트웨어 아키텍트(Software Architect)로서 갖춰야 할 의사결정 역량으로 이어갑니다. 스칼라(Scala)·러스트(Rust) 같은 언어는 함수형 프로그래밍이나 메모리 안전성처럼 CS 기초 개념을 실제 언어 설계에서 확인하고 싶을 때 참고할 수 있습니다.

지금까지 설명한 흐름을 한눈에 정리하면 [그림 1]과 같습니다.

CS 기초 & 아키텍처 로드맵

[그림 1] CS 기초 & 아키텍처 로드맵 구성도

먼저 읽을 문서

CS 기초 영역의 핵심 개념을 작은 예제와 그림으로 먼저 확인하고 싶다면 다음 위키 문서를 참고할 수 있습니다.

  • 프로세스와 스레드 구분하기: 독립된 메모리를 갖는 프로세스와 메모리를 공유하는 스레드의 차이를 이해하고 동시성과 병렬성을 구분합니다.
  • 스택과 힙 메모리 나눠 보기: 함수 호출에 따라 쌓이고 비워지는 스택과 동적으로 할당되는 힙의 차이를 이해하고 메모리 관리 원리를 살펴봅니다.
  • URL을 입력하면 일어나는 일: DNS와 TCP: 브라우저가 주소를 IP로 바꾸는 DNS 조회부터 3-way 핸드셰이크와 TLS를 거쳐 HTTP 요청이 도달하는 과정을 짚어 봅니다.
  • HTTP 요청과 응답: 클라이언트와 서버가 웹 자원을 주고받는 요청·응답 메시지 구조와 상태 코드의 역할을 다룹니다.
  • 트랜잭션으로 변경 묶기: 여러 데이터 변경을 단일 작업 단위로 묶고 COMMIT과 ROLLBACK으로 원자성을 보장하는 원리를 다룹니다.
  • DB 인덱스가 조회를 빠르게 하는 이유: 전체 테이블 스캔과 B-트리 인덱스 탐색의 비용 차이를 비교하고 인덱스 동작 원리와 설계 주의점을 알아봅니다.
  • 자료구조 선택의 첫걸음: 순서 보존, 중복 허용, 키 조회 방식에 따라 리스트·집합·딕셔너리 중 알맞은 자료구조를 고르는 기준을 다룹니다.
  • 시간 복잡도와 Big-O 읽기: 입력 크기 증가에 따른 연산 횟수의 변화를 Big-O로 분석하고 리스트와 집합의 탐색 비용 차이를 확인합니다.

학습 주제

학습 주제다루는 내용
컴퓨터과학컴퓨터과학 전반의 핵심 개념 조망
자료구조와 알고리즘효율적인 문제 해결을 위한 자료구조·알고리즘
LeetCode코딩 테스트 실전 문제 풀이
시스템 설계대규모 서비스 아키텍처 설계
소프트웨어 아키텍트시스템 전체를 조망하는 아키텍트 역량
소프트웨어 설계 및 아키텍처설계 원칙과 아키텍처 패턴
ScalaJVM 기반 함수형·객체지향 언어
Rust메모리 안전성을 보장하는 시스템 프로그래밍 언어

다른 영역과의 연결

배운 아키텍처 지식을 실제 서버 구조에 적용하고 싶다면 백엔드 가이드를, 관리자로서 시스템 의사결정을 다루고 싶다면 커리어 & 직무 가이드의 엔지니어링 매니저 학습 주제를 함께 참고할 수 있습니다.

이 로드맵에서 읽을 지식 문서

관련 로드맵