README.md 하나 — 그 안에 "무엇을, 어떤 순서로 들으면 4년제 CS 전공에 준하는 실력이 되는가"가 표로 정리돼 있다.
가장 먼저 각인할 것 — Intro CS → Core CS → Advanced CS → 최종 프로젝트의 4단계로, 정규 학위에서 교양(비-CS) 과목만 뺀 전공 과정 전체를 무료 자료로 재현한다. 게다가 이 목록은 취향이 아니라 ACM·IEEE의 CS2013 학부 교육 가이드라인에 맞춰 골라졌다.
이 문서는 저장소를 직접 클론해, 커리큘럼 내용뿐 아니라 "이 저장소가 어떻게 만들어지고 운영되는가"(Jekyll 사이트·RFC 거버넌스)까지 파고든다.
(저장소: ossu/computer-science · Jekyll/GitHub Pages · cs.ossu.dev · MIT 라이선스 · 2015년~ · 최신 커밋 2026-07-13 · TrendShift Daily #22)
OSSU(Open Source Society University) Computer Science는 "완전한 컴퓨터과학 교육을, 전부 무료 온라인 자료로"를 표방하는 커리큘럼이다. 취업용 부트캠프가 아니라, 모든 컴퓨팅 분야의 밑바탕이 되는 개념을 두루(well-rounded) 갖추게 하는 것이 목표다. 정규 학사 과정에서 교양 과목만 덜어 낸 전공 전체를 다룬다.
핵심은 "강의를 만든 게 아니라 골라서 엮었다"는 점이다. 강의 자체는 MIT·하버드·프린스턴 등 세계 최고 수준을 그대로 쓰되, 아무거나 넣지 않고 네 가지 기준(누구나 수강 가능·정기 개설·높은 교육 품질·CS2013 표준 부합)을 통과한 것만 담았다. 기준에 맞는 강의가 없으면 책으로 보충한다.
cs.ossu.dev, 그리고 Discord뿐 — 예전 Firebase 앱·Trello·Notion 템플릿은 전부 방치·구버전이니 무시하라고 README가 경고한다.보통의 awesome-list는 좋은 자료 링크를 잔뜩 모아 둔 북마크 폴더다. 편하지만 "그래서 뭘 먼저?"는 각자 알아서다. OSSU는 다르다 — 1학년 1학기부터 졸업 프로젝트까지, 선수과목 사슬을 따라 "이거 끝나면 저거"로 이어지는 학사 시간표를 짜 놓았다. 순서가 곧 커리큘럼이다.
대신 강의 자체는 남의 것(MIT·하버드…)이라, OSSU가 할 수 있는 건 "고르고·엮고·설명을 덧대는" 일뿐이다. 그래서 강의가 사라지거나 유료로 바뀌면(2025년 Coursera 사태) 커리큘럼도 흔들린다 — 이 취약점이 지금의 트렌딩과 직결된다.
OSSU CS는 2015년부터 이어져 온 GitHub 최상위권 스타 교육 저장소(10만+ 스타 급)다. 늘 인기지만, 지금 다시 모멘텀이 붙은 데는 뚜렷한 계기가 있다 — ① 2025년 7월 Coursera가 청강(audit) 접근을 대거 막으면서 커리큘럼의 상당수 강의가 무료로 못 보게 됐고, ② OSSU가 이를 대체할 무료 강의를 RFC(공개 토론)로 긴급 교체 중이며, ③ 이 과정에서 v9 대개편이 진행돼 커밋·이슈 활동이 급증했다(최신 커밋 2026-07-13).
| 포인트 | 내용 |
|---|---|
| 정체 | 코드가 아닌 커리큘럼 저장소. 실체는 README.md 하나 + 이를 웹으로 펴내는 Jekyll 설정 + 보조 문서들. |
| 차별점 ① | 학위급 넓이. 프로그래밍·수학·시스템·이론·보안·응용·윤리까지 — 웹개발에 치우친 다른 로드맵과 달리 정규 CS 전공 전체를 덮는다. |
| 차별점 ② | 권위 있는 기준. 취향이 아니라 ACM·IEEE의 CS2013 학부 가이드라인에 맞춰 주제를 고른다. |
| 차별점 ③ | 커뮤니티 + 오래 유지됨. Discord·GitHub 이슈로 굴러가고, 10년간 CHANGELOG로 관리돼 왔다. |
| 지금 이유 | Coursera 유료화(2025-07)로 강의 교체가 시급 → RFC·커밋 폭증 → v9 리뷰 진행 중. |
수만 달러의 등록금 없이 학사 학위에 준하는 CS 지식을 쌓을 수 있다는 약속은 10년째 사람들을 끌어들인다. README는 냉정하게 조건도 단다 — 계획을 잘 짜고 주 20시간을 투자하면 약 2년에 끝낼 수 있다고. "돈으로 성공을 살 순 없다(you can't purchase success)"는 문장이 이 프로젝트의 정신을 요약한다.
freeCodeCamp나 The Odin Project가 웹개발 취업에 최적화돼 있다면, OSSU는 Nand2Tetris로 트랜지스터에서 컴파일러까지, 계산 이론·알고리즘·운영체제·네트워크·윤리까지 다룬다. "코드를 짤 줄 아는 사람"을 넘어 "컴퓨터가 왜 그렇게 도는지 아는 사람"을 목표로 한다. 이 깊이가 다른 큐레이션과의 결정적 차이다.
OSSU의 강점(남의 명강의를 엮음)은 곧 약점이기도 하다. 2025년 7월, Coursera가 대부분 강의의 무료 청강을 막자 커리큘럼에 있던 Coursera 강의가 줄줄이 접근 불가가 됐다. OSSU는 "당분간 Coursera 강의를 추천하지 않는다"고 선언하고 대체 강의를 찾는 RFC를 열었다. 이 "살아 있는 위기 대응" 자체가 저장소를 다시 화제로 만들었다.
냉정히 보자. ① OSSU는 학위·인증서를 주지 않는다 — 공인 학력이 아니라 "학위에 준하는 지식"일 뿐, 이력서에 학위로 적을 수 없다. ② 강의는 전부 남의 것이라, 플랫폼 정책 하나(Coursera 유료화)에 커리큘럼이 통째로 흔들린다. 지금도 일부 항목은 접근 불가이거나 교체 대기 중이다. ③ 완주율은 낮을 수밖에 없다 — 주 20시간을 2년간 혼자 밀어붙이는 자제력이 최대 관문이다. 강제성이 없어, "시작한 사람"과 "끝낸 사람"의 간극이 크다. 정리하면 "무료 학위 발급기"가 아니라 "자제력만 있으면 학위급 지식에 닿는 무료 지도"로 보는 게 정확하다.
OSSU CS에는 실행되는 프로그램이 없다. 그래서 "백엔드/프론트엔드"로 나누는 건 무의미하다. 대신 ① 무엇으로 커리큘럼을 쓰는가(콘텐츠), ② 어떻게 웹사이트로 펴내는가(퍼블리싱), ③ 어떻게 유지·개정하는가(거버넌스)의 세 축으로 봐야 한다. 흥미롭게도 이 저장소는 "정적 사이트 생성기 + 무료 호스팅 + 이슈 기반 협업"이라는, 오픈소스 문서 프로젝트의 정석 스택을 아주 얇게 쓴 좋은 표본이다.
| 파일 · 폴더 | 역할 |
|---|---|
README.md | 단일 진실원(single source of truth) — 커리큘럼 본문 전체(약 450줄). Intro/Core/Advanced/Final 표가 여기 다 있다. |
coursepages/ | OSSU가 직접 쓴 강의 안내서(5종: intro-cs·intro-programming·spd·class-based·ostep). 남의 강의를 "OSSU식으로 듣는 법"을 덧댄 래퍼. |
extras/ | 본편 밖의 보물창고 — courses.md·readings.md(고전 명저)·other_curricula.md·puzzles-practice-plods.md. |
| 보조 문서 | FAQ.md·HELP.md·CONTRIBUTING.md·CURRICULAR_GUIDELINES.md(CS2013 근거)·CHANGELOG.md. |
원문은 마크다운이지만, 학습자는 예쁜 사이트(cs.ossu.dev)로 읽는다. 그 변환을 맡는 게 Jekyll이다.
| 구성 | 내용 |
|---|---|
| 정적 사이트 생성기 | Jekyll — 마크다운 + Liquid 템플릿을 정적 HTML로 빌드. GitHub Pages에 내장돼 별도 CI 없이 자동 빌드된다. |
| 테마 | remote_theme: jekyll/minima@7d91bb5 — 공식 minima 테마를 원격으로 끌어다 씀(테마 파일을 저장소에 복사하지 않음). skin: auto로 다크/라이트 자동. |
| 레이아웃 · 인클루드 | _layouts/page.html(단 6줄) + _includes/ 3개(custom-head=파비콘, footer, nav-items=상단 메뉴). 최소한만 오버라이드. |
| 도메인 | CNAME 파일 한 줄(cs.ossu.dev)로 커스텀 도메인 연결. GitHub Pages 무료 호스팅. |
| 설정 | _config.yml이 제목·테마·상단 메뉴(FAQ·HELP)·include: CONTRIBUTING.md를 지정. |
| 구성 | 내용 |
|---|---|
| RFC 프로세스 | 커리큘럼 변경은 GitHub Issue = RFC(Request for Comment)로 제안·토론. 전용 템플릿 .github/ISSUE_TEMPLATE/request-for-comment-template.md. |
| 자동화 | .github/workflows/delete-empty-issues.yml — 빈(내용 없는) 이슈 자동 삭제 GitHub Action. 관리 부담을 코드로 던다. |
| 버전 규율 | CHANGELOG.md가 "정신적으로(in spirit)" SemVer 준수 — MAJOR=주제 변경, MINOR=강의 교체, PATCH=미관·순서. |
| 커뮤니티 | Discord(강의별 채팅방까지 세분화) + LinkedIn 학교 등록 + 진행상황 공유용 포크. |
이 저장소는 "위키 + 대학 학사요람 + 오픈소스 이슈 트래커"를 하나로 합친 것이다. 마크다운으로 요람을 쓰고(콘텐츠), Jekyll이 그걸 대학 안내 사이트로 바꾸고(퍼블리싱), 학과 회의 대신 GitHub 이슈에서 "이 강의를 저걸로 바꾸자"를 토론(거버넌스)한다. 코드가 거의 없는데도 "소프트웨어 프로젝트처럼" 굴러가는 게 핵심이다.
커리큘럼은 선수과목 사슬로 묶인 4단계다. 위에서 아래로 내려가되, 수학은 입문 과정과 병행하길 권한다.
OSSU의 첫 번째 원칙은 "커리큘럼은 README.md 한 곳에만 산다"는 것이다. 사이트·목차·네비게이션이 전부 이 파일에서 파생된다. 유지보수자는 마크다운만 고치면, Jekyll이 나머지를 알아서 웹사이트로 바꾼다.
레이아웃은 놀랄 만큼 얇다. _layouts/page.html은 부모 레이아웃을 상속해 본문만 끼워 넣는 6줄짜리다:
---
layout: base # minima의 base 레이아웃 상속
---
<article class="post">
<div class="post-content">
{{ content }} <!-- 마크다운 본문이 이 자리에 삽입 -->
</div>
</article>
OSSU는 강의를 소유하지 않는다. 그런데 어떤 외부 강의는 "그냥 링크만 던지면" 학습자가 헤맨다 — 어떤 강의 회차를 들어야 하는지, 과제 마감은 언제로 잡아야 하는지, 파이썬 몇 버전을 깔아야 하는지 등. 그래서 OSSU는 외부 MOOC 위에 자기만의 안내서를 덧씌운다. 이게 coursepage다.
| coursepage | 무엇을 감싸나 |
|---|---|
intro-cs/ | MIT 6.100L(파이썬 입문) — 회차별 학습법·PSET 마감 일정·파이썬 3.8 권장 등 세팅 노트. |
spd/ | Systematic Program Design — Racket 표기법 바꾸는 법·스페이스인베이더 과제 안내 이미지 포함. |
ostep/ | Operating Systems: Three Easy Pieces(책) — 읽는 순서·xv6 프로젝트(스케줄링/프로세스) 과제로 재구성. |
class-based/, intro-programming/ | 클래스 기반 설계·프로그래밍 입문의 OSSU식 진행 안내. |
남의 명강의가 "조리법 없이 재료만 잔뜩"이라면, coursepage는 그 위에 붙인 "우리 학과식 레시피 카드"다. "이 강의는 3~9강만, 과제는 여기까지, 도구는 이 버전으로, 막히면 이 Discord 방으로" — 강의는 그대로 두고 수강 경험만 표준화한다. 강의가 바뀌면 레시피 카드(coursepage)만 고치면 된다.
커리큘럼은 "누가 정하나?" OSSU의 답은 "GitHub 이슈에서 공개 토론으로"다. 코드 리뷰하듯 커리큘럼을 리뷰한다.
CHANGELOG 상단의 노트가 이 흐름을 정확히 설명한다 — "v9 리뷰가 진행 중이며, RFC가 완료될 때마다 커리큘럼에 즉시 반영하고, 전체 리뷰가 끝나면 버전을 v9로 올린다." 즉 버전은 "릴리스 시점"이 아니라 "리뷰 묶음의 완료"를 뜻한다.
클론해 보면 놀랄 만큼 단출하다. 실행 코드가 없고, 대부분이 문서와 얇은 Jekyll 설정이다.
핵심을 한눈에: 별표(★)는 실질적으로 프로젝트의 전부인 README.md, 마름모(◆)는 그것을 웹으로 펴내고·설명을 덧대고·개정하는 얇은 인프라다. "저장소 = 거대한 README + 그걸 사이트로 만드는 최소 장치"라는 구조가 명확히 드러난다.
대부분의 딥다이브와 달리, 이 저장소는 두 가지를 동시에 가르친다. 하나는 "이런 프로젝트를 어떻게 만들고 운영하는가"(메타), 다른 하나는 "커리큘럼이 담은 CS 지식"(콘텐츠)이다.
| 기술 | 여기서 배울 것 · 실습 아이디어 |
|---|---|
| Jekyll + GitHub Pages | 마크다운만으로 커스텀 도메인 사이트를 무료로 띄우는 최소 구성. remote_theme로 테마를 복사 없이 끌어다 쓰는 법을 그대로 흉내 낼 수 있다. |
| remote_theme · 오버라이드 | 테마 전체를 안 베끼고 _layouts·_includes만 최소 오버라이드하는 "얇게 덮기" 패턴. |
| 거버넌스-as-code | 이슈 템플릿(RFC) + 라벨 + 빈 이슈 자동삭제 Action으로 커뮤니티 협업을 코드처럼 운영하는 법. |
| 정보 설계 | "단일 진실원 + 파생 뷰" 원칙. 선수과목 사슬로 방대한 목록에 순서와 위계를 부여하는 큐레이션 기법. |
커리큘럼 자체가 "무엇을 배워야 CS를 안다고 할 수 있는가"의 권위 있는 체크리스트다. 특히 대부분의 독학자가 건너뛰는 영역을 정면으로 포함한다.
| 영역 | 대표 관문 · 왜 중요한가 |
|---|---|
| 시스템의 밑바닥 | Nand2Tetris — 논리 게이트에서 시작해 CPU·어셈블러·VM·컴파일러·OS까지 직접 쌓는다. "컴퓨터가 왜 도는지"의 결정판. |
| 이론 | 알고리즘 1·2(스탠퍼드) + 계산 이론. 분할정복·그래프·동적계획법·NP-완전성. |
| 도구 | Missing Semester(MIT) — 셸·vim·git·디버깅 등 "학교가 안 가르치는" 실무 기본기. |
| 수학 | 미적분 → CS를 위한 이산수학·확률. 알고리즘·이론의 토대. |
| 넓이 | 보안·응용(DB·ML·그래픽스)·윤리까지. 부트캠프가 안 다루는 폭. |
강의 하나를 끝내는 것보다 "이 방대한 지도에서 지금 나에게 필요한 경로를 스스로 그리는 연습"이 이 저장소의 진짜 선물이다. Advanced CS는 전부 선택이라, 학습자가 관심 분야를 정하고 관련 강의를 골라 커스텀 트랙을 짜야 한다. 이 "자기 커리큘럼 설계" 경험은 평생 학습자에게 가장 값진 메타 기술이다.
| 항목 | 요구 |
|---|---|
| 장비 | 인터넷 되는 평범한 컴퓨터 한 대. GPU·고사양 불필요(그래픽스·ML 강의도 CPU로 충분). |
| 선수 지식 | 고등학교 수학(대수·기하·미적분 준비)과 영어 독해력. Advanced는 Core CS 이수 전제, Advanced systems는 기초 물리 전제. |
| 시간 | 주 20시간 × 약 2년. README가 제공하는 구글 시트로 개인 완료일 추정 가능. |
| 비용 | 학습 자료는 거의 다 무료. 단 일부 강의는 채점 과제·시험·인증서가 유료. edX·Coursera는 재정 지원(financial aid) 신청 가능. |
2025년 7월, Coursera가 대부분 강의의 무료 청강을 폐지했다. 그래서 커리큘럼에 남아 있는 Coursera 링크(소프트웨어 아키텍처·병렬 프로그래밍·일부 보안/윤리 강의 등)는 현재 무료로 못 볼 수 있다. OSSU가 대체 강의를 RFC로 찾는 중이니, 수강 전 반드시 사이트(cs.ossu.dev)와 Discord에서 최신 상태를 확인하라. 이게 지금 이 커리큘럼을 시작할 때 가장 큰 실무 함정이다.
| 항목 | 요구 |
|---|---|
| 런타임 | Ruby + Jekyll + Bundler. GitHub Pages와 동일 환경을 로컬 재현. |
| 실행 | bundle install → bundle exec jekyll serve → localhost:4000. remote_theme 플러그인 필요. |
| 참고 | 테마 파일이 저장소에 없으므로(원격), 첫 빌드 시 minima 테마를 내려받는다. |
README가 권하는 방식 그대로: 저장소를 포크한 뒤, 완료한 강의 옆에 ✅를 붙여 나간다. 별도 앱 없이 포크된 README가 곧 나의 칸반 보드가 된다. 여기에 각 강의 시작/종료 날짜를 적어 진도 관리를 시작해 보자. (구현이 가장 빠른 진행 추적법 — 앱 만들 시간에 강의를 들으라는 게 OSSU의 조언)
coursepages/intro-cs의 안내를 따라 MIT 6.100L 1강을 듣고 PSET 0을 풀어 본다. 동시에 README가 제공하는 완료일 추정 구글 시트를 복사해 시작일과 주당 학습 시간을 넣고, 나의 예상 졸업일을 계산해 본다. "막연한 2년"을 "구체적 날짜"로 바꾸는 게 완주의 첫걸음.
커리큘럼이 아니라 인프라를 배우는 과제. Ruby+Jekyll을 깔고 bundle exec jekyll serve로 사이트를 로컬에 띄운다. 그다음 _config.yml의 제목이나 _includes/nav-items.html의 메뉴를 바꿔 remote_theme + 최소 오버라이드가 어떻게 동작하는지 체감한다. 나만의 학습 로드맵 사이트를 만들 때 그대로 재사용 가능한 스택이다.
Core systems의 관문 Nand2Tetris Part I를 시작해, 논리 게이트에서 CPU까지 직접 쌓아 본다(가장 성취감 큰 코스로 꼽힌다). 여력이 되면 실제 오픈소스 기여로 확장 — 지금 접근 불가가 된 Coursera 강의의 무료 대체안을 찾아 GitHub 이슈(RFC)에 제안해 본다. 커리큘럼을 "쓰는 쪽"이 되어 거버넌스-as-code를 몸으로 익히는 최고의 실전이다.
OSSU의 최대 난관은 "무엇을"이 아니라 "끝까지"다. 그래서 아래 로드맵은 커리큘럼을 다시 나열하는 대신, 실제로 궤도에 올라 습관을 붙이는 첫 8주에 초점을 둔다. 수학은 입문과 병행하라는 README 조언을 반영했다.
| 시기 | 집중 | 산출물 |
|---|---|---|
| 1주차 | 세팅 — 저장소 포크·✅ 칸반, 완료일 추정 시트 작성, Discord 가입, 사이트에서 최신 강의 상태 확인 | 나만의 진행 보드 + 예상 졸업일 |
| 2–3주차 | Intro CS(MIT 6.100L) 진행 + CS Tools(Missing Semester)를 병행해 셸·git·vim 기본기 확보 | PSET 몇 개 + git 커밋 습관 |
| 4–6주차 | Core programming 시작(SPD) + Core math(미적분 1A) 병행 — 서로 다른 결의 과목을 섞어 지루함 방지 | 함수형 설계 감 + 수학 근육 |
| 7–8주차 | 진도 점검·계획 보정. 막히면 coursepage의 대체 경로(Intro programming) 활용. 완주 리듬 고정 | 지속 가능한 주간 루틴 |
| 장기(핵심) | Core CS를 위→아래 순서로(programming→math→tools→systems→theory→security→applications→ethics) | 학사 1~3학년 상당 |
| 장기(심화) | Advanced CS에서 관심 분야 트랙 1개 선택 → Final Project로 지식 통합·검증 | "학위 상당" 수료 🎓 |
| 메타 트랙 | 병행해서 이 저장소로 Jekyll·GitHub Pages·RFC 거버넌스를 익혀, 나만의 학습 로드맵 사이트 제작 | 운영 가능한 문서 사이트 |
"여러 과목 동시 수강"은 편법이 아니라 OSSU의 공식 조언이다. 수학 과목을 입문 과목과 나란히 두면, 하루 안에서 결이 다른 공부를 오가며 질리지 않고 오래 간다. 순서 강박(위에서 아래로만)에 매이기보다, 선수과목 사슬만 지키면서 나에게 맞는 리듬을 찾는 게 완주율을 높인다.
cs.ossu.dev·Discord.jekyll/minima 테마를 원격 참조하고 일부만 오버라이드.CNAME 파일 한 줄로 커스텀 도메인(cs.ossu.dev)을 연결.README.md 한 곳에만 존재하고, 사이트·목차가 전부 여기서 파생되는 설계 원칙. 유지보수 지점을 하나로 좁힌다.저장소 · 사이트 · 커뮤니티
· GitHub: github.com/ossu/computer-science (Jekyll/GitHub Pages · MIT · 2015년~ · 최신 커밋 2026-07-13)
· 온라인으로 읽기: cs.ossu.dev — 커리큘럼이 렌더된 공식 사이트(강의 최신 상태는 여기 기준)
· Discord: README의 초대 링크 — 강의별 채팅방까지 세분화된 학습자 커뮤니티(첫 정착지)
· 관리팀: Eric Douglas(창립자) · Josh Hanson(리드 기술 관리자) · Waciuma Wanjohi(리드 학술 관리자)
추천 시작 지점(클론/사이트)
· README.md — 커리큘럼 전체 지도(가장 먼저 통독)
· coursepages/intro-cs/ — 첫 강의(MIT 6.100L) 수강 안내
· FAQ.md — "학위 주나?"·"Coursera 왜 막혔나?" 등 필수 문답
· CHANGELOG.md — 상단의 "v9 리뷰 중" 노트로 현재 개정 상황 파악
배경 지식 · 원전
· CS2013 가이드라인(ACM/IEEE) PDF — 커리큘럼 선정의 근거
· Jekyll / minima 테마 / GitHub Pages(퍼블리싱 스택)
· Nand2Tetris · The Missing Semester (MIT) — 커리큘럼의 대표 관문 코스
① 학위가 아니다 — 공인 학력·인증서를 주지 않는다("학위 상당 지식"일 뿐). ② 강의는 전부 남의 것 — 플랫폼 정책에 커리큘럼이 흔들린다. ③ Coursera 무료 청강 폐지(2025-07)로 일부 강의가 현재 접근 불가·교체 대기 — 수강 전 사이트/Discord로 최신 상태 확인 필수. ④ 버전 숫자에 속지 말 것 — CHANGELOG의 마지막 정식 버전은 8.0.0(2017)이지만 방치가 아니라 RFC로 굴러가는 롤링 개정(현재 v9 리뷰) 중이며 커밋은 최신(2026-07). ⑤ 완주엔 자제력이 전부 — 주 20시간 × 2년, 강제성 없음. ⑥ 구버전 도구 무시 — 방치된 Firebase 앱·Trello·Notion 템플릿이 검색에 뜨지만 공식이 아니다(저장소·cs.ossu.dev만 신뢰). 그리고 전부 영어라, 이 한국어 정리가 참고용 첫 안내다.