# SICP 비디오 강의(1986)

> Clean Markdown view of GeekNews topic #31246. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=31246](https://news.hada.io/topic?id=31246)
- GeekNews Markdown: [https://news.hada.io/topic/31246.md](https://news.hada.io/topic/31246.md)
- Type: GN+
- Author: [neo](https://news.hada.io/@neo)
- Published: 2026-07-09T06:33:41+09:00
- Updated: 2026-07-09T06:33:41+09:00
- Original source: [ocw.mit.edu](https://ocw.mit.edu/courses/6-001-structure-and-interpretation-of-computer-programs-spring-2005/video_galleries/video-lectures/)
- Points: 1
- Comments: 1

## Topic Body

- MIT 6.001 `Structure and Interpretation of Computer Programs`의 전체 흐름을 **20개 비디오 강의**로 따라갈 수 있어, SICP를 체계적으로 복습하기 좋은 자료임
- 강의는 **1986년 7월** Hewlett-Packard 직원 대상으로 진행됐고, Hewlett-Packard Television이 전문 제작함
- 영상은 MIT OCW와 별도 제공 사이트에서 볼 수 있으며, **상업적 이용과 호환되는 Creative Commons 라이선스**로 제공됨
- 강의 내용은 1985년 **SICP 1판**을 기준으로 하며, 1996년 2판에서는 일부 프로그램 재작성과 새 자료 추가가 있었음
- 전체 주제와 발표 순서는 유지되어, 2판으로 공부하는 학습자에게도 여전히 참고 가치가 있음

---

### 강의 구성과 제공 방식
- **Hal Abelson과 Gerald Jay Sussman**의 20개 강의가 MIT 6.001 `Structure and Interpretation of Computer Programs` 과정을 완전한 형태로 다룸
- 강의는 **1986년 7월** Hewlett-Packard 직원 대상으로 진행됐으며, Hewlett-Packard Television이 전문 제작함
- 영상은 Hal Abelson과 Gerald Jay Sussman이 제공한 자료이며, 허가를 받아 사용됨
- 같은 영상은 MIT OCW 외에 [별도 제공 사이트](http://groups.csail.mit.edu/mac/classes/6.001/abelson-sussman-lectures/)에서도 제공되며, 상업적 이용과 호환되는 Creative Commons 라이선스를 따름

### 교재 판본 관련 주의점
- 이 강의는 1985년 출간된 **Structure and Interpretation of Computer Programs 1판**을 기준으로 진행됨
- 1996년 **2판**에서는 강의에서 다룬 여러 프로그램이 다시 작성됐고 새 자료가 추가됨
- 전체 주제와 발표 순서는 바뀌지 않아, 2판을 사용하는 학생에게도 이 비디오 강의가 유용함

### 강의 목록
- ## Lisp와 프로시저 추상화
  - [1A: Overview and Introduction to Lisp](https://ocw.mit.edu/courses/6-001-structure-and-interpretation-of-computer-programs-spring-2005/resources/1a-overview-and-introduction-to-lisp/): Lisp 개요와 소개
  - [1B: Procedures and Processes; Substitution Model](https://ocw.mit.edu/courses/6-001-structure-and-interpretation-of-computer-programs-spring-2005/resources/1b-procedures-and-processes-substitution-model/): 프로시저, 프로세스, 치환 모델
  - [2A: Higher-order Procedures](https://ocw.mit.edu/courses/6-001-structure-and-interpretation-of-computer-programs-spring-2005/resources/2a-higher-order-procedures/): **고차 프로시저**
- ## 데이터와 기호 처리
  - [2B: Compound Data](https://ocw.mit.edu/courses/6-001-structure-and-interpretation-of-computer-programs-spring-2005/resources/2b-compound-data/): 복합 데이터
  - [3A: Henderson Escher Example](https://ocw.mit.edu/courses/6-001-structure-and-interpretation-of-computer-programs-spring-2005/resources/3a-henderson-escher-example/): Henderson Escher 예제
  - [3B: Symbolic Differentiation; Quotation](https://ocw.mit.edu/courses/6-001-structure-and-interpretation-of-computer-programs-spring-2005/resources/3b-symbolic-differentiation-quotation/): 기호 미분과 인용
  - [4A: Pattern Matching and Rule-based Substitution](https://ocw.mit.edu/courses/6-001-structure-and-interpretation-of-computer-programs-spring-2005/resources/4a-pattern-matching-and-rule-based-substitution/): 패턴 매칭과 규칙 기반 치환
  - [4B: Generic Operators](https://ocw.mit.edu/courses/6-001-structure-and-interpretation-of-computer-programs-spring-2005/resources/4b-generic-operators/): **제네릭 연산자**
- ## 상태, 객체, 스트림
  - [5A: Assignment, State, and Side-effects](https://ocw.mit.edu/courses/6-001-structure-and-interpretation-of-computer-programs-spring-2005/resources/5a-assignment-state-and-side-effects/): 대입, 상태, 부작용
  - [5B: Computational Objects](https://ocw.mit.edu/courses/6-001-structure-and-interpretation-of-computer-programs-spring-2005/resources/5b-computational-objects/): 계산 객체
  - [6A: Streams, Part 1](https://ocw.mit.edu/courses/6-001-structure-and-interpretation-of-computer-programs-spring-2005/resources/6a-streams-part-1/): 스트림 1부
  - [6B: Streams, Part 2](https://ocw.mit.edu/courses/6-001-structure-and-interpretation-of-computer-programs-spring-2005/resources/6b-streams-part-2/): 스트림 2부
- ## 평가기와 논리 프로그래밍
  - [7A: Metacircular Evaluator, Part 1](https://ocw.mit.edu/courses/6-001-structure-and-interpretation-of-computer-programs-spring-2005/resources/7a-metacircular-evaluator-part-1/): 메타순환 평가기 1부
  - [7B: Metacircular Evaluator, Part 2](https://ocw.mit.edu/courses/6-001-structure-and-interpretation-of-computer-programs-spring-2005/resources/7b-metacircular-evaluator-part-2/): 메타순환 평가기 2부
  - [8A: Logic Programming, Part 1](https://ocw.mit.edu/courses/6-001-structure-and-interpretation-of-computer-programs-spring-2005/resources/8a-logic-programming-part-1/): 논리 프로그래밍 1부
  - [8B: Logic Programming, Part 2](https://ocw.mit.edu/courses/6-001-structure-and-interpretation-of-computer-programs-spring-2005/resources/8b-logic-programming-part-2/): 논리 프로그래밍 2부
- ## 기계 모델과 컴파일
  - [9A: Register Machines](https://ocw.mit.edu/courses/6-001-structure-and-interpretation-of-computer-programs-spring-2005/resources/9a-register-machines/): 레지스터 머신
  - [9B: Explicit-control Evaluator](https://ocw.mit.edu/courses/6-001-structure-and-interpretation-of-computer-programs-spring-2005/resources/9b-explicit-control-evaluator/): 명시적 제어 평가기
  - [10A: Compilation](https://ocw.mit.edu/courses/6-001-structure-and-interpretation-of-computer-programs-spring-2005/resources/10a-compilation/): 컴파일
  - [10B: Storage Allocation and Garbage Collection](https://ocw.mit.edu/courses/6-001-structure-and-interpretation-of-computer-programs-spring-2005/resources/10b-storage-allocation-and-garbage-collection/): 저장소 할당과 **가비지 컬렉션**

## Comments



### Comment 61449

- Author: neo
- Created: 2026-07-09T06:33:43+09:00
- Points: 1

###### [Hacker News 의견들](https://news.ycombinator.com/item?id=48825664) 
- SICP를 공부하려면 **MIT Scheme**을 써도 되고, 다른 선택지로 Racket이나 DrRacket에 이 애드온 패키지를 붙여 쓸 수도 있음: [https://docs.racket-lang.org/sicp-manual/](<https://docs.racket-lang.org/sicp-manual/>)
  - 교육 목적이라면 **MIT Scheme만 추천**하는 편이 맞다고 봄  
    다른 것들은 주변 기능이 너무 많아서 산만해질 수 있음
  - 이 두 시스템 추천에 동의하지만 단서가 있음  
    **MIT Scheme**은 Apple Silicon에서 돌도록 만들어지지 않았고, 약간의 요령으로 amd64 버전을 최신 Mac에서 쓸 수는 있지만 Apple이 Rosetta2를 없애면 사라질 가능성이 큼  
    그래서 Racket이 더 나은 선택일 수 있음  
    괜찮은 Scheme 구현이라면 거의 무엇이든 SICP에 쓸 수는 있지만, 2판 이후에도 언어가 바뀌었기 때문에 추천하지는 않음  
    다만 자기 프로젝트를 시작한 뒤에는 다른 시스템을 써도 되고, 오래된 관용구의 현대적 대응물을 찾으려면 설명서를 읽어야 할 수도 있음
  - **MIT Scheme**이 “될 법한 것 중 가장 단순한” 선택임

- 모든 프로그래머는 **LISP**를 배워야 하거나, 적어도 진지하게 공부해봐야 함  
  응용 프로그래머 대부분은 C 프로그래머처럼 절차적으로만 생각하는 법을 알고 있음  
  LISP는 하드웨어가 아니라 개념을 다루는 “아름다운” 언어이고, 1990년에 모교에서 몇 년간 대학원 프로젝트를 하며 써봤을 때 사고방식이 완전히 바뀌었음

- 예전에 책만 보고 SICP를 해봤는데, **강의가 훨씬 낫고** 책은 보조 참고자료 역할을 한다고 봄
  - 원래 대학 교육은 대략 **1000년 동안** 그런 식으로 굴러갔음

- 연습문제를 풀거나 책을 따라가지 않아도 됨  
  이 분야에 새로 들어왔든 수십 년 경력이 있든, 아직 이 영상을 보지 않았거나 SICP 수업을 들어본 적이 없다면 거의 누구에게나 도움이 될 만함

- 이 영상들과 책 전체를 끝까지 공부했고, 뉴스그룹을 통해 **오프라인 스터디 그룹**도 꾸렸음  
  정말 즐거웠고 큰 돌파구가 됐지만, 책 중간쯤부터 스터디 인원이 줄기 시작했음

- **SICP를 읽으라**는 조언은 /g/에서 받은 조언 중 최고였음

- 이걸로 **Lisp**를 배웠고, 이어서 Clojure를 배운 뒤 그걸 중심으로 커리어를 만들었음
  - 훌륭함. **Clojure**는 어떻게 배웠는지 궁금함  
    꽤 좋아하는 언어임

- 정말 강력 추천함  
  첫 번째 강의만 봐도 바로 빠져들게 됨

- **시스템 프로그래밍**에 관심 있는 사람이 여기서 얻을 수 있는 게 뭘까?
  - 이 강의들은 **가변성**, 상태 관리, 추상화 같은 주제의 핵심 질문을 거의 유일할 정도로 잘 뽑아냄  
    그래서 시스템 프로그래밍이 주로 상태 관리와 추상화에 관한 것인 한, 매우 깊이 관련 있다고 봄  
    다만 “시스템 프로그래밍”을 이미 존재하는 지저분한 시스템들을 억지로 붙이는 일이나, 서드파티 라이브러리에 대한 감각을 기르는 일 정도로 뜻한다면 별로 관련 없을 수 있음  
    그래도 여기에도 통찰은 있음. Sussman이 SICP를 내려놓고 MIT에 새 입문 과정을 만들라고 요구한 이유를 설명하는 영상을 봤는데, 자신이 다듬어온 보석을 정중하고 사려 깊게 접어두는 모습이었음  
    우리가 모든 추상화 계층을 가로질러 꿰뚫어볼 수 있다고 기대할 만한 시대는 끝났다는 뜻이었음

- 이 강의들은 **음질이 너무 나쁨**  
  깨끗하게 보정할 방법이 있을까?
