부스트캠프 멤버십 때, 마스터로 활동하시는 준일님께서 이런 책도 있다고 소개해주셨다.그 주 주말에 교보문고에서 읽어보고 샀는데 아직 거의 손을 대지 못했다. 부스트캠프 활동이 끝나고 Denamu 프로젝트도 긴 호흡으로 전환되었고, 신입 공채도 슬슬 줄어들고 있어서 시간이 조금씩 나는 것 같아 오늘부터 3달 정도의 커리큘럼으로 책을 읽어보려고 한다.
학부생 때 컴퓨터 구조 강의를 들었지만 그게 무려 8년 전의 일이라 기억이 잘 나지 않아 더더욱 CS 지식에 절실했다. (심지어 군대가기 전이라 더 기억이 안난다.)
해당 커리큘럼은 클로드를 이용해서 월~금 학습, 주말은 복습 및 보완으로 계획했다.
1주차는 오늘부터 일요일까지 빠르게 쳐내려고 한다.
커리큘럼
1개월차: 컴퓨터 하드웨어의 기초
1주차: 불 논리와 기본 게이트
- 월: 1장 이론 학습 - 불 논리, 불 함수 개념 이해
- 화: 1장 이론 학습 - 논리 게이트와 HDL 소개
- 수: 프로젝트 01 시작 - 기본 논리 게이트(NOT, AND) 구현
- 목: 프로젝트 01 계속 - OR, XOR 게이트 구현
- 금: 프로젝트 01 완성 - 멀티플렉서, 디멀티플렉서 구현
- 주말: 휴식 또는 미완성 부분 보완, 1장 내용 복습
2주차: 불 연산
- 월: 2장 이론 학습 - 이진수 표현, 2의 보수법
- 화: 2장 이론 학습 - 가산기 아키텍처, ALU 설계
- 수: 프로젝트 02 시작 - 반가산기, 전가산기 구현
- 목: 프로젝트 02 계속 - 증분기 구현
- 금: 프로젝트 02 완성 - ALU 구현 및 테스트
- 주말: 휴식 또는 미완성 부분 보완
3주차: 메모리
- 월: 3장 이론 학습 - 순차 논리, 플립플롭
- 화: 3장 이론 학습 - 레지스터, RAM 구조
- 수: 프로젝트 03 시작 - 1비트 레지스터 구현
- 목: 프로젝트 03 계속 - 16비트 레지스터, RAM8 구현
- 금: 프로젝트 03 완성 - RAM64, RAM512, RAM4K 구현
- 주말: 휴식 또는 미완성 부분 보완
4주차: 기계어와 어셈블리
- 월: 4장 이론 학습 - 기계어 개념, Hack 컴퓨터 명령어 집합
- 화: 4장 이론 학습 - 어셈블리 언어 소개, 심볼
- 수: 프로젝트 04 시작 - 간단한 어셈블리 프로그램 작성
- 목: 프로젝트 04 계속 - 산술 연산 어셈블리 코드 작성
- 금: 프로젝트 04 완성 - I/O 처리 어셈블리 코드 작성
- 주말: 1개월 학습 내용 총 복습, 미완성 부분 보완
2개월차: 컴퓨터 아키텍처와 가상 머신
5주차: 컴퓨터 아키텍처 설계
- 월: 5장 이론 학습 - 폰 노이만 아키텍처, CPU 설계 원리
- 화: 5장 이론 학습 - 제어 유닛, 명령어 실행 주기
- 수: 프로젝트 05 시작 - CPU 구현
- 목: 프로젝트 05 계속 - 메모리 매핑 구현
- 금: 프로젝트 05 완성 - 전체 컴퓨터 통합 및 테스트
- 주말: 휴식 또는 미완성 부분 보완
6주차: 어셈블러 개발
- 월: 6장 이론 학습 - 어셈블러 설계, 2단계 변환
- 화: 6장 이론 학습 - 심볼 테이블, 변환 알고리즘
- 수: 프로젝트 06 시작 - 기본 어셈블러 구현 (심볼 없음)
- 목: 프로젝트 06 계속 - 심볼 처리 기능 추가
- 금: 프로젝트 06 완성 - 전체 어셈블러 테스트
- 주말: 휴식 또는 미완성 부분 보완
7주차: 가상 머신 I
- 월: 7장 이론 학습 - 가상 머신 개념, 스택 기반 연산
- 화: 7장 이론 학습 - VM 명령어 집합, 메모리 세그먼트
- 수: 프로젝트 07 시작 - 산술 논리 VM 명령어 구현
- 목: 프로젝트 07 계속 - 메모리 접근 VM 명령어 구현
- 금: 프로젝트 07 완성 - 전체 VM 트랜슬레이터 테스트
- 주말: 휴식 또는 미완성 부분 보완
8주차: 가상 머신 II
- 월: 8장 이론 학습 - 프로그램 제어, 분기문, 함수 호출
- 화: 8장 이론 학습 - 함수 호출 프로토콜, 재귀
- 수: 프로젝트 08 시작 - 분기 명령어 구현
- 목: 프로젝트 08 계속 - 함수 호출/리턴 명령어 구현
- 금: 프로젝트 08 완성 - 전체 VM 테스트, 재귀 함수 실행
- 주말: 2개월 학습 내용 총 복습, 미완성 부분 보완
3개월차: 고수준 언어와 운영체제
9주차: 고수준 언어
- 월: 9장 이론 학습 - Jack 언어 소개, 구문
- 화: 9장 이론 학습 - 객체 지향 특성, API
- 수: 프로젝트 09 시작 - Jack 언어로 간단한 프로그램 작성
- 목: 프로젝트 09 계속 - 더 복잡한 Jack 프로그램 작성
- 금: 프로젝트 09 완성 - 미니 게임이나 애플리케이션 개발
- 주말: 휴식 또는 미완성 부분 보완
10주차: 컴파일러 I
- 월: 10장 이론 학습 - 컴파일러 구조, 어휘 분석
- 화: 10장 이론 학습 - 구문 분석, LL 파싱
- 수: 프로젝트 10 시작 - 토크나이저 구현
- 목: 프로젝트 10 계속 - 구문 분석기 구현
- 금: 프로젝트 10 완성 - 구문 트리 XML 출력 테스트
- 주말: 휴식 또는 미완성 부분 보완
11주차: 컴파일러 II
- 월: 11장 이론 학습 - 코드 생성, 심볼 테이블
- 화: 11장 이론 학습 - 표현식 컴파일, 제어 흐름
- 수: 프로젝트 11 시작 - 표현식 코드 생성
- 목: 프로젝트 11 계속 - 제어 흐름 코드 생성
- 금: 프로젝트 11 완성 - 전체 컴파일러 테스트
- 주말: 휴식 또는 미완성 부분 보완
12주차: 운영체제
- 월: 12장 이론 학습 - OS 역할, Jack OS 아키텍처
- 화: 12장 이론 학습 - 메모리 관리, 수학 라이브러리
- 수: 프로젝트 12 시작 - 수학 라이브러리, 문자열 처리 구현
- 목: 프로젝트 12 계속 - 메모리 관리, 배열 구현
- 금: 프로젝트 12 완성 - 입출력 루틴, 그래픽 기능 구현
- 주말: 3개월 전체 내용 최종 복습 및 종합 프로젝트 완성
학습 마무리 (추가 1주)
- 미완성된 프로젝트 보완
- 전체 시스템 통합 테스트
- 커스텀 프로그램 개발 시도
- 학습 내용 총정리 및 회고
'개발 > 개발 공부' 카테고리의 다른 글
[밑바닥부터] 3일차 - 1장 불 논리: 프로젝트 (0) | 2025.04.07 |
---|---|
[밑바닥부터] 2일차 - 1장 불 논리: 논리 게이트와 HDL 소개 (1) | 2025.04.07 |
[밑바닥부터] 1일차 - 1장 불 논리: 불 함수 개념 이해 (0) | 2025.04.04 |
OAuth 2.0에 대해 알아보기 (0) | 2025.03.15 |
[WebSocket과 Socket.io] 1편 - WebSocket (0) | 2025.01.16 |