컴퓨터 프로그램의 구조와 해석[머리말 정리]

JongAh 2021. 3. 24. 23:20

이 책을 현직 개발자인 지인의 추천으로 샀다가 1년만에 펴보게 되었다.

두꺼워 심리적으로 거부감을 일으키므로 챕터별로 잘라서 보기를 권한다.

머리말에 여러 교수님의 감탄문이 넘쳐나지만 그 중에서 핵심적인 내용이나 문장들을 정리해 보겠다.

 

🍰 오류없이 동작하며 유연한 코드
🍪 사람의 생각을 컴퓨터 프로그램에 담고 그 프로그램은 컴퓨터위에서 동작한다.
🍉 커다란 프로그램을 짜는 대신 구조물을 엮어 큰 구조물을 만드는 것이 효율적이다.
🧊 Lisp를 사용하는 이유
🍀 새로 담은 내용
🍏 생각을 컴퓨터로 구현한다.
🍇 교과의 목표
🍂 컴퓨터는 그것을 어떻게 하는가("How to")를 토대로 움직인다.

 

🍰 오류없이 동작하며 유연한 코드

"프로그램을 짜는 이는 흠없이 돌아가는 프로그램, 엮어쓰기에도 좋은 프로그램을 짜려고 애써야 한다."

 

🍪 사람의 생각을 컴퓨터 프로그램에 담고 그 프로그램은 컴퓨터위에서 동작한다.

책에서 다루는 내용 

  1. 사람의 생각
  2. 컴퓨터 프로그램
  3. 컴퓨터

🍉 커다란 프로그램을 짜는 대신 구조물을 엮어 큰 구조물을 만드는 것이 효율적이다.

"뼈대를 구성하는 기술을 찾아 익히고 새로운 기술을 만들어 내는 일을 게을리 해서는 안 된다."

 

🧊 Lisp를 사용하는 이유

  1. 변화하는 언어이다.
  2. 함수단위로 라이브러리를 늘려나간다.
  3. 간단한 몇가지 문법만 익히면 누구나 이용할 수 있다.
  4. 책에서 특정 언어에서만 동작하는 예제를 사용하지 않는다.

🍀 새로 담은 내용

이 책은 1980년부터MIT의 교재로 이용되었다. 초판이 발행된지 12년만에 새로운편이 발간되었다.
  1. 상태가 있는 물체
  2. 병행 프로그래밍
  3. 함수 프로그래밍
  4. 제때 계산법
  5. 비결정적 프로그래밍 

🍏 생각을 컴퓨터로 구현한다.

"방법론에 대한 아이디어를 나타내는 데 쓸 수 있는 새로운 표현 수단이라는 생각을 확립하고자 한다."

"큰 소프트웨어 시스템의 복잡한 문제를 다루는 기법을 배우고 익히는 데 중점을 둔다"

 

🍇 교과의 목표

"프로그래밍의 모양새와 아름다움에 대하여 좋은 감각을 갖추도록 하는 데 있다.

 

🍂 수학은 그것은 무엇인가("What is")에 대한 개념을 다루는 반면 컴퓨터는 그것을 어떻게 하는가("How to")를 토대로 움직인다.

 

전체적으로 머리말을 읽었을 때 정말 프로그래밍에 많은 애정을 가지신 분들이 책을 적었다고 생각한다.

위에는 적지 않았지만 다들 아름답다거나, 바이올린과 같다거나와 같은 내용들을 많이 볼 수 있었다. 

책의 머리말에서 내가 처음 프로그래밍을 시작했을 때와 같은 설렘이 담겨 있어서 마음에 들었다.

처음 내가 프로그래밍을 시작했을 때 신기한 것은 기본이고 위의 말처럼 내 생각을 그대로 컴퓨터로 옮기는 듯한 기분이 들어 굉장히 설렜던 거 같다.

 

프로그래밍을 처음 배울 때 코딩은 창의력이 요구되는 굉장히 예술적인 속성이 있다고 생각했다.

하나의 문제에 수천 수만가지의 코드가 나올 수 있기 때문이다. 

빈 창에 코드를 써내려갈 때면 마치 빈 도화지에 새로운 그림을 그려나가는 듯한 기분을 느낄 수 있었다.

그림을 이리 조합하고 저리 조합하면서 가장 짧고 효율적이며 오류가 없는 유동적인 코드를 만들었을 때의 짜릿함이 정말 즐거웠던 기억이 난다. 밤새서 코드를 만져도 즐거웠던 때가 딱 이때였다. 

 

시간에 쫒겨 코드를 짜기 보다 하나하나 어떤 의미가 있는지 정리해 보는 것이 참 중요하다고 생각한다.