한 권으로 읽는 컴퓨터 구조와 프로그래밍 독서노트

어디 Java로 프로그래밍을 배우려 해! 떼잉 쯧

  • 컴퓨터 구조를 이해하지 못하면 보안에 취약한 프로그램을 만들기 쉽다- 라는 논리
  • 학교에서 누구나 코딩을 배워야 한다: 는 질 낮은 개발자를 회사에 많이 공급해서 개발자 급여를 낮추고 이를 통해 회사가 이익증가 이유다 - 라는 논리
  • 프로그래밍을 배웠지만 깊이 부족으로 불만스러운 사람들을 위한 책
  • 프로그래밍의 단계
      1. 우주를 이해한다
      1. 3살짜리 아이에게 설명한다
    • 현재 교육은 2번에 초점. 하지만 첫번째가 수반되어야함!
  • “대부분의 코딩 스쿨에서 프로그래머라면 꼭 배워야 하는 것처럼 가르치고 있는 애플리케이션 프로그램 개발은 다른 사람이 만든 기본 요소를 임포트 하는 방법과 이를 서로 붙이는 방법일 뿐이다. 이 기술만 사용해도 오랫동안 직업을 유지할 수 있지만, 각 블록을 붙이는 풀을 실제로 이해하면 훨씬 더 좋을것이다”

비트부터 시작하자

  • 0과 1로 어떻게 온갖 큰 수와 소숫점과 마이너스값을 표현하는지 알려줌.
  • 최적화에 최적화를 거듭한다 (e.g. 맨 왼쪽 비트는 1일테니 이를 생략해서 1비트를 더 사용하기, 특정 표현법이 0을 표현하는 방법이 2가지니 이를 더 빈틈없이 쓸 방법 찾기 )
  • 이렇게 최적화에 대한 여러 사람들의 노력으로, 비트를 인코딩하는데 여러 표준이 있다.

컴퓨터가 0과 1을 어떻게 인식할까

  • 근대에는 두 톱니바퀴를 돌려 상대적인 회전 속도로 곱셈, 나눗셈 등 계산함: 이를 통해 다이얼을 돌려 천문학 계산을 함. 복잡한 톱니바퀴를 통해 미적분 계산 가능.
  • 전자기술에서 아날로그는 연속적인것, 디지털은 이산적인걸 뜻함. (자는 아날로그 손가락으로 세는건 디지털)
  • 컴퓨터는 전기를 빛의 속도로 움직이며 계산. 이는 부품끼리 거리가 가까울수록 빠름. 그래서 모든걸 작게 만들어야 빠르게 계산가능.

Profile picture

진유림 a.k.a 테니스치다 손목 삔, 풋살하다 인대 나간 개발자 twitter

With love, Yurim Jin