빌더를 위한 완성형 컴퓨터 과학 로드맵
무엇을 먼저 배우고, 무엇을 나중으로 미루고, 어떤 프로젝트로 익힐지 정리한 AI 빌더와 비전공자를 위한 컴퓨터 과학 로드맵입니다.
지도를 다 외울 필요는 없습니다.
필요한 것은 경로입니다.
좋은 컴퓨터 과학 로드맵은 세 가지를 알려줘야 합니다.
- 무엇을 먼저 배울지.
- 무엇을 나중으로 미뤄도 되는지.
- 어떤 프로젝트를 만들면 개념이 실제 실력으로 바뀌는지.
이 로드맵은 빌더를 위한 것입니다. 학문적인 순서가 아니라, 실제 소프트웨어를 만들 때 가장 빨리 효과가 나는 순서입니다.
이 시리즈를 읽는 방법
이 페이지를 중심 페이지로 활용하세요.
0편에서 자료구조, 알고리즘, 시스템 설계, 개발 프로세스라는 네 동네를 파악합니다.
배열, 해시맵, 스택, 큐, 트리, 그래프가 필요할 때 1편을 봅니다.
앱이 느려지거나 Big O, 이진 탐색, 재귀가 필요할 때 2편을 봅니다.
HTTP, API, 데이터베이스, 캐시, 큐, 로드 밸런서, 트레이드오프가 필요할 때 3편을 봅니다.
Git, 리뷰, 테스트, CI/CD, 기술 부채 관리가 필요할 때 4편을 봅니다.
실제 기능을 배포한 뒤 모니터링, 추적, CI 게이트, 자동 가드레일이 필요할 때 6편을 봅니다.
배포 관련 내용은 바이브 코더를 위한 배포 가이드와 함께 보면 좋습니다.
로드맵 한눈에 보기
주제가 아니라 단계로 생각하세요.
네 동네를 이해하고 닥치는 대로 공부하지 않습니다.
자료구조, Big O, 느린 코드의 모양을 익힙니다.
HTTP, API, 데이터베이스, 인증, 권한을 익힙니다.
Git, 리뷰, 테스트, CI/CD, 롤백까지 고려하는 습관을 익힙니다.
배포, 로그, 지표, 큐, 재시도, 비용 관리를 익힙니다.
AI 앱, 백엔드, 프론트엔드, 인프라, 보안, 데이터 중 깊게 들어갑니다.
의존 관계는 단순합니다.
| 이해하고 싶은 것 | 먼저 배울 것 | 그다음 배울 것 |
|---|---|---|
| 코드가 왜 느려지는가 | 해시맵과 Big O | 인덱스, 캐싱, 프로파일링 |
| 웹앱이 어떻게 움직이는가 | HTTP 요청/응답 | API, 인증, 데이터베이스, 배포 |
| 팀이 어떻게 안전하게 배포하는가 | Git 브랜치와 풀 리퀘스트(PR) | 테스트, CI/CD, 리뷰, 롤백 |
| 프로덕션 시스템이 어떻게 실패하는가 | 로그와 지표 | 추적, 알림, CI 게이트, 가드레일 |
| AI 앱이 어떻게 커지는가 | 백그라운드 작업과 비용 추적 | RAG, 임베딩, 큐, 호출 제한 |
0단계: 방향 잡기
깊게 들어가기 전에 먼저 해야 할 일입니다.
네 동네를 쉬운 말로 설명할 수 있어야 합니다.
- 자료구조: 데이터를 찾고, 바꾸고, 묶고, 연결하기 위해 어떻게 담는가.
- 알고리즘: 프로그램이 어떤 절차를 따르고, 데이터가 늘 때 그 절차가 어떻게 변하는가.
- 시스템 설계: 클라이언트, 서버, API, 데이터베이스, 캐시, 큐, 외부 서비스가 어떤 모양으로 연결되는가.
- 개발 프로세스: Git, 리뷰, 테스트, CI/CD, 부채 관리처럼 소프트웨어를 계속 바꿀 수 있게 만드는 습관.
체크포인트:
- 버그나 느린 기능을 보면 어느 동네 문제인지 대략 짐작할 수 있다.
- 어떤 개념을 배우기 전에 왜 배우는지 설명할 수 있다.
- 배운 것을 적용할 실제 프로젝트가 하나 있다.
1단계: 코드 이해력
여기서 시작하세요. 코드를 읽는 눈이 바로 달라집니다.
배울 것:
- 배열과 리스트.
- 해시맵과 집합(Set).
- 스택과 큐.
- 트리와 그래프.
- Big O.
- 이진 탐색.
- 재귀.
모든 자료구조를 외우려 하지 마세요. 실전 질문을 익히면 됩니다.
이 데이터를 어떻게 담아야 앱이 불필요한 일을 하지 않고 찾고, 바꾸고, 연결할 수 있을까?
실습:
| 실습 | 배우는 것 |
|---|---|
반복되는 array.find()를 Map으로 바꾸기 | 바로 조회하는 구조와 Big O |
| 목록 화면에 페이지네이션 추가하기 | 선형 증가와 API 한도 |
| 중첩 댓글 만들기 | 트리와 재귀 |
| 간단한 작업 큐 만들기 | FIFO 큐와 백그라운드 작업 |
| 중복 레코드 감지하기 | 집합과 유일성 |
다음 단계로 넘어갈 준비:
- 위험해 보이는 중첩 반복문을 알아볼 수 있다.
- 반복해서 전체를 훑는 것보다 바로 조회하는 구조가 왜 빠른지 설명할 수 있다.
- 흔한 앱 문제에서 배열, 해시맵, 큐, 트리, 그래프 중 무엇을 쓸지 고를 수 있다.
- 코드가 대략 O(1), O(log n), O(n), O(n²) 중 어디에 가까운지 추정할 수 있다.
2단계: 웹앱 기본기
대부분의 빌더에게는 고급 알고리즘보다 이 단계가 먼저 필요합니다.
배울 것:
- HTTP 메서드, 상태 코드, 헤더, 요청 본문, 응답 본문.
- REST(Representational State Transfer, 웹 API를 설계하는 흔한 방식) 기본기와 GraphQL/RPC(Remote Procedure Call, 원격 함수 호출)가 도움 되는 상황.
- JSON(JavaScript Object Notation, 데이터를 주고받는 가벼운 형식)과 기본 직렬화.
- SQL(Structured Query Language) vs NoSQL(Not Only SQL).
- 테이블, 문서, 인덱스, 마이그레이션, 쿼리 구조.
- 인증과 인가.
- 세션, JWT(JSON Web Token), OAuth(외부 로그인·권한 위임 표준), 역할, 권한.
- 비밀값과 환경 변수.
실전 질문:
브라우저 클릭부터 데이터베이스 쓰기, 다시 응답이 돌아오는 흐름을 그릴 수 있는가?
실습:
| 실습 | 배우는 것 |
|---|---|
| 브라우저 → API → 서버 → 데이터베이스 흐름 그리기 | 요청 생명주기 |
| 로그인/로그아웃 추가하기 | 세션, 쿠키, 인증 상태 |
| 관리자 페이지에 역할 기반 접근 제어 추가하기 | 인가와 권한 |
| 데이터베이스 마이그레이션 추가하기 | 스키마 변경 규율 |
| 인덱스를 추가하고 쿼리 속도 비교하기 | 데이터베이스 성능 |
다음 단계로 넘어갈 준비:
- 요청 흐름을 추측이 아니라 설명으로 그릴 수 있다.
- 비밀값이 어디에 있어야 하고 어디에 있으면 안 되는지 안다.
- 인증과 인가의 차이를 설명할 수 있다.
- 앱이 소유한 주요 테이블/문서를 말할 수 있다.
- 앱에서 위험한 엔드포인트를 찾을 수 있다.
3단계: 안전한 작업 흐름
이 단계는 다른 사람과 일하거나, 미래의 나와 일하기 위한 단계입니다.
배울 것:
- Git 브랜치, 커밋, 풀 리퀘스트(PR), 병합, 되돌리기.
- 위험을 줄이는 장치로서의 코드 리뷰.
- 단위 테스트, 통합 테스트, E2E(End-to-End, 사용자 흐름 전체) 테스트.
- 모킹과 테스트 데이터.
- CI/CD 기본기.
- 롤백까지 고려하는 사고.
- 기술 부채 추적.
- 모듈, 계층, 경계, MVC(Model-View-Controller)식 분리 같은 기본 코드 구조화.
실전 질문:
이 앱을 바꿔도 다음 변경이 더 어렵거나 더 위험해지지 않는가?
실습:
| 실습 | 배우는 것 |
|---|---|
| 혼자라도 브랜치 → PR → 리뷰 → 병합 사용하기 | 변경 통제 |
| 로그인, 결제, 삭제, 권한 주변에 테스트 추가하기 | 위험 기반 테스트 |
| 병합 전에 테스트가 도는 CI 검사 추가하기 | 자동 안전장치 |
| 위험과 롤백 계획이 있는 짧은 PR 설명 쓰기 | 리뷰 규율 |
| 복잡한 파일 하나를 작은 모듈로 나누기 | 코드 구조화 |
다음 단계로 넘어갈 준비:
- 작은 브랜치 단위로 프로젝트를 바꿀 수 있다.
- 위험한 흐름 주변에 테스트가 있다.
- 잘못된 변경을 되돌리거나 롤백하는 방법을 안다.
- 기억에 의존하지 않고 부채 목록을 관리한다.
- AI에게 코드 생성만이 아니라 PR 리뷰를 요청할 수 있다.
4단계: 프로덕션 준비
데모는 한 번만 잘 되면 됩니다.
프로덕션 앱은 사용자, 데이터, 비용, 실패가 늘어도 계속 버텨야 합니다.
배울 것:
- 배포 기본기: 빌드, 환경 변수, 도메인, 로그, 롤백.
- 컨테이너, 서버리스, 관리형 서비스를 실용적인 수준에서 이해하기.
- 캐싱, 백그라운드 작업, 큐, 재시도, 멱등성.
- 로깅, 지표, 추적, 알림.
- 성능 프로파일링과 측정.
- 느린 쿼리 로그와 쿼리 계획.
- 호출 제한과 API 할당량.
- 보안 기본기: OWASP(Open Web Application Security Project) Top 10, 입력값 검증, XSS(Cross-Site Scripting), CSRF(Cross-Site Request Forgery), SQL injection(SQL 삽입 공격), 의존성 위험.
- AI 특화 운영 위험: 토큰 비용, 모델 지연 시간, 호출 제한, 재시도, 프롬프트 인젝션, 데이터 유출.
실전 질문:
사용자, 데이터, AI 호출이 10배 늘면 무엇이 먼저 깨질까?
실습:
| 실습 | 배우는 것 |
|---|---|
| 위험한 요청 하나에 구조화된 로그 추가하기 | 디버깅 가능성 |
| 엔드포인트 하나의 p95 지연 시간 추적하기 | 성능 측정 |
| 느린 AI/파일/이메일 작업을 백그라운드 작업으로 옮기기 | 큐와 타임아웃 |
| 웹훅 처리기에 재시도와 멱등성 추가하기 | 실패 처리 |
| AI 호출 주변에 토큰/비용 추적 추가하기 | AI 운영 비용 |
| 오류율, 지연 시간, 작업 실패, 비용 급증 알림 추가하기 | 운영 가드레일 |
다음 단계로 넘어갈 준비:
- 직접 클릭하지 않아도 앱이 건강한지 알 수 있다.
- 어떤 엔드포인트, 작업, AI 호출이 가장 먼저 실패할지 짐작할 수 있다.
- 기본 로그, 지표, 알림이 있다.
- 의도적으로 배포하고 롤백할 수 있다.
- 예측 가능한 운영 실패를 잡는 자동 검사가 있다.
5단계: 더 깊은 컴퓨터 과학
여기서부터 지도는 넓어집니다.
한 번에 다 공부하지 마세요. 프로젝트가 필요를 만들 때 고르면 됩니다.
프로세스, 스레드, 메모리, 파일 시스템, I/O(Input/Output, 입출력), CPU(Central Processing Unit, 중앙처리장치) 스케줄링. 성능, 크래시, 메모리, 로컬 실행 환경 문제를 디버깅할 때 공부합니다.
TCP/IP(인터넷 통신 기본 규칙), DNS(도메인을 IP 주소로 바꾸는 시스템), TLS(암호화 통신), WebSocket(실시간 양방향 연결), 웹훅, 프록시. 요청 실패, 실시간 기능, 인프라 문제가 헷갈릴 때 공부합니다.
이벤트 루프, promise, 스레드, lock, race condition, 병렬 처리. 작업이 겹치거나 타이밍 버그가 생길 때 공부합니다.
트랜잭션, ACID, 인덱스, 쿼리 플래너, 복제, 샤딩. 데이터 무결성이나 쿼리 성능이 실제 제약이 될 때 공부합니다.
위협 모델링, OWASP, 인증/권한 경계, 입력값 검증, 비밀값, 의존성 위험. 민감한 사용자 데이터를 다루기 전에 공부합니다.
일관성, 가용성, 합의, 재시도, 네트워크 분리, 큐. 하나의 서비스나 데이터베이스로 부족해질 때 공부합니다.
30일 스타터 플랜
첫 달은 작동하는 감각을 만드는 기간입니다.
| 기간 | 집중할 것 | 실습 | 결과물 |
|---|---|---|---|
| 1–3일 | 해시맵과 배열 | 반복해서 훑는 대신 바로 조회하도록 기능 하나 개선 | 조회 방식 전후 설명 |
| 4–6일 | Big O | 앱의 비싼 부분에 대략적인 복잡도 메모 달기 | O(1), O(n), 의심되는 O(n²) 목록 |
| 7–10일 | HTTP와 API | 브라우저에서 데이터베이스까지 요청 흐름 하나 그리기 | 요청 흐름 그림 |
| 11–14일 | 데이터베이스 기본기 | 테이블/문서, 소유자, 권한, 인덱스 찾기 | 작은 데이터 모델 지도 |
| 15–18일 | Git 흐름 | 혼자라도 브랜치 → PR → 리뷰 → 병합 사용 | 깨끗하게 병합된 PR 하나 |
| 19–21일 | 테스트 | 로그인, 결제, 권한, 삭제 주변에 테스트 추가 | 위험 기반 테스트 하나 |
| 22–25일 | 시스템 설계 | 캐시, 큐, 백그라운드 작업이 필요한지 판단 | 새 인프라가 아니라 트레이드오프 메모 |
| 26–30일 | 리뷰와 부채 | 기술 부채 목록을 만들고 하나 갚기 | 닫힌 항목 하나가 있는 부채 목록 |
90일 빌더 로드맵
다음 두 달은 앱을 더 안전하고 명확한 운영 가능한 상태로 만드는 기간입니다.
| 기간 | 집중할 것 | 배울 것 | 결과물 |
|---|---|---|---|
| 31–45일 | 인증과 보안 | 세션, JWT, OAuth, 역할, OWASP 기본기, 검증, 비밀값 | 인증 흐름 그림과 권한 체크리스트 |
| 46–60일 | 비동기와 백그라운드 작업 | 이벤트 루프, promise, 큐, 재시도, 멱등성, 웹훅 | 백그라운드 작업 또는 웹훅 처리기 하나 |
| 61–75일 | 데이터베이스 깊이 | 마이그레이션, 트랜잭션, 인덱스, 쿼리 계획, 연결 풀 | 측정 가능한 쿼리 개선 하나 |
| 76–90일 | 프로덕션 가드레일 | 로그, 지표, 추적, 알림, CI 게이트, 비용 추적 | 최소 운영 대시보드와 배포 전 체크리스트 |
90일이 끝나면 최소한 이런 프로젝트가 있어야 합니다.
- 인증과 권한.
- 영속적인 데이터.
- 위험한 흐름 하나 이상의 테스트.
- 의도적인 배포 경로.
- 기본 로깅 또는 모니터링.
- 기술 부채 목록.
- 프로덕션 가드레일 하나.
6개월 로드맵
실전 깊이를 만드는 경로입니다.
| 월 | 목표 | 집중할 것 |
|---|---|---|
| 1개월차 | 기초 만들기 | 자료구조, Big O, HTTP, 데이터베이스 기본기, Git, 테스트 |
| 2개월차 | 실제 앱 배포 | 인증, 권한, 마이그레이션, 배포, 롤백 |
| 3개월차 | 관측 가능하게 만들기 | 로그, 지표, 추적, 알림, 느린 쿼리 분석, AI 비용 추적 |
| 4개월차 | 아키텍처 개선 | 모듈, 계층, API 경계, 백그라운드 작업, 캐싱, 큐 |
| 5개월차 | 측정하고 확장하기 | 프로파일링, 부하 테스트, 페이지네이션, 호출 제한, 인덱스, 성능 예산 |
| 6개월차 | 전문화 | AI 시스템, 백엔드, 프론트엔드 아키텍처, 인프라/DevOps, 보안, 데이터 시스템 |
목표는 6개월 안에 컴퓨터 과학을 끝내는 것이 아닙니다. 머릿속에 찾아볼 색인을 만드는 것입니다. 무언가 깨졌을 때 어디를 봐야 할지 아는 상태가 목표입니다.
프로젝트 사다리
프로젝트가 로드맵을 몸에 붙입니다.
| 수준 | 프로젝트 | 실제로 익히는 개념 |
|---|---|---|
| 초급 | 데이터가 저장되는 할 일 앱 | CRUD(Create, Read, Update, Delete), 데이터베이스 레코드, 단순 상태 |
| 초급 | URL 단축기 | 해시맵, 조회, 라우팅, 리다이렉트 |
| 초급 | 블로그 또는 메모 앱 | 데이터 모델링, 마크다운/콘텐츠, 선택적 인증 |
| 중급 | 로그인 있는 대시보드 | 세션, 권한, API 경계 |
| 중급 | 페이지네이션 있는 관리자 테이블 | 쿼리 제한, 인덱스, API 응답 구조 |
| 중급 | 웹훅 처리기 | 큐, 재시도, 멱등성, 로그 |
| 고급 | 채팅 또는 실시간 협업 앱 | WebSocket, 동시성, 접속 상태, 순서 보장 |
| 고급 | RAG(Retrieval-Augmented Generation) 지식 베이스 | 임베딩, 벡터 검색, 청킹, 순위 조정, 비용 |
| 고급 | 모니터링되는 AI 앱 | 백그라운드 작업, 추적, 토큰 예산, 알림, 롤백 |
프로젝트 하나를 고르세요. 같은 프로젝트를 단계별로 계속 개선하세요. 매주 새 튜토리얼을 시작하는 것보다, 하나의 앱을 더 현실적인 제약까지 밀고 가는 편이 더 많이 배웁니다.
언제 깊게 들어갈까
막히는 지점을 학습의 신호로 삼으세요.
| 막히는 지점 | 공부할 것 |
|---|---|
| 데이터가 늘수록 앱이 느려진다 | Big O, 데이터베이스 인덱스, 페이지네이션, 프로파일링 |
| 목록 화면이 멈추거나 응답이 커진다 | API 설계, 페이지네이션, 캐싱, 프론트엔드 렌더링 |
| 로그인과 권한이 불안하다 | 인증, 인가, 세션, 보안 기본기 |
| AI/파일 작업 때문에 사용자가 오래 기다린다 | 큐, 백그라운드 작업, 재시도, 멱등성 |
| 변경할 때마다 버그가 돌아온다 | 테스트, 코드 리뷰, 모듈 설계, CI |
| 운영 장애를 진단하기 어렵다 | 로그, 지표, 추적, 알림 |
| AI 비용이 예상보다 빨리 오른다 | 토큰 집계, 캐싱, 호출 제한, 모델 선택 |
| 서버 하나 또는 데이터베이스 하나로 부족하다 | 확장, 복제, 큐, 분산 시스템 |
지금은 건너뛰어도 되는 것
로드맵은 무엇을 배울지 정하는 도구이기도 하지만, 그보다 더 중요하게는 아직 배우지 않아도 되는 것을 걸러내는 도구입니다.
모든 기술을 미리 배울 필요는 없습니다. 그 기술이 필요한 문제가 실제로 나타나기 전까지는 미뤄도 괜찮습니다.
- 배포나 확장 문제가 생기기 전의 Kubernetes.
- 팀이나 도메인 복잡도가 생기기 전의 마이크로서비스.
- 그래프 문제가 생기기 전의 고급 그래프 알고리즘.
- 분산 시스템을 운영하기 전의 분산 합의.
- 언어와 런타임 동작이 중요해지기 전의 컴파일러 내부 구조.
- 검증된 라이브러리 대신 직접 만드는 암호화/인증.
- 측정하기 전의 성능 최적화.
- 실제 사용자나 사용량이 없는 상태에서 끝없이 보는 튜토리얼.
AI로 공부하는 방법
AI는 코드를 만들게 할 때보다 개념을 설명하게 할 때 로드맵을 더 빨리 익히게 해줍니다.
"이 코드 뒤의 컴퓨터 과학 개념을 쉬운 비유, 운영 위험 하나, 작은 실습 하나로 설명해줘."
"Big O를 추정하고 데이터가 10배, 100배, 1000배일 때 첫 병목을 찾아줘. 측정 가능한 가장 작은 개선도 제안해줘."
"요청 흐름을 그리고 클라이언트, API, 서버, DB, 캐시, 큐, 작업자, 외부 서비스를 표시해줘."
"이 변경사항을 풀 리퀘스트(PR)처럼 리뷰해줘. 보안, 데이터 손실, 권한, 관측 가능성, 롤백 위험을 우선으로 봐줘."
이 루프를 따라가세요.
- 만들다가 막히는 지점까지 갑니다.
- 막히는 지점에 이름을 붙입니다.
- 지도 위 어디인지 찾습니다.
- 그 문제를 설명하는 가장 작은 개념을 배웁니다.
- 바로 적용합니다.
- 결과를 측정하거나 리뷰합니다.
- 배운 것을 내 말로 기록합니다.
튜토리얼을 몰아보는 것보다 느려 보이지만, 훨씬 잘 쌓입니다.
자주 묻는 질문
개발을 위해 컴퓨터 과학을 배우는 데 얼마나 걸리나요?
모든 것을 배울 필요는 없습니다. 대부분의 빌더는 30일에서 90일의 집중적이고 프로젝트 중심 학습으로 실무 기초를 다룰 수 있습니다.
무엇부터 배워야 하나요?
먼저 프로젝트에서 느끼는 고통과 맞닿은 자료구조와 알고리즘부터 시작하고, 앱에 사용자가 생기면 시스템 설계와 프로세스로 확장하세요.
고급 알고리즘을 배워야 하나요?
실제로 그것이 필요한 문제가 생기기 전까지는 필요하지 않습니다. 대부분의 프로덕션 앱은 고급 알고리즘보다 자료구조 선택, API 설계, 데이터베이스 쿼리에서 병목이 생깁니다.
튜토리얼 과잉을 어떻게 피하나요?
지금 만들고 있는 프로젝트와 연결되지 않은 튜토리얼은 그만 보세요. 현재 막힘을 제거하는 가장 작은 개념만 배우고 바로 적용한 뒤, 다음 개념을 찾으세요.
프레임워크와 컴퓨터 과학 중 무엇을 먼저 배워야 하나요?
둘을 함께 배우세요. 프레임워크로 만들다가 성능, 구조, 프로세스 문제를 만나면 그 문제를 설명하는 컴퓨터 과학 개념을 그때 배웁니다.
최소 컴퓨터 과학 체크리스트
AI 코딩 도구로 만든다면 이 체크리스트를 가까이 두세요.
- 배열, 해시맵, 큐, 트리, 그래프를 예시로 설명할 수 있다.
- 위험해 보이는 중첩 반복문을 알아볼 수 있다.
- 반복해서 전체를 훑는 것보다 바로 조회하는 구조가 왜 빠른지 설명할 수 있다.
- 브라우저 → API → 서버 → 데이터베이스 요청 흐름을 그릴 수 있다.
- 인증과 인가의 차이를 안다.
- 비밀값이 어디에 있어야 하는지 안다.
- 백그라운드 작업이나 큐가 언제 필요한지 안다.
- Git 브랜치와 커밋을 의도적으로 쓴다.
- 위험한 로직 주변에 어떤 테스트가 필요한지 안다.
- 의도적으로 배포하고 롤백할 수 있다.
- 배포 후 기본 로그, 지표, 오류를 찾을 수 있다.
- 기술 부채를 기억에 의존하지 않고 추적한다.
- AI에게 코드만 요구하지 않고 개념, 위험, 트레이드오프 설명을 요구한다.
핵심 정리
컴퓨터 과학을 끝내야 하는 것이 아닙니다. 루프가 필요합니다.
막힐 때까지 만듭니다. 막힘에 이름을 붙입니다. 지도 위에 둡니다. 가장 작고 유용한 개념을 배웁니다. 적용하고, 측정하고, 기록합니다. 반복합니다.
