728x90

CODE

 전자의 이동부터 시작해서 현대의 컴퓨터 작동원리를 알려주고, 몇 개의 프로그래밍 언어를 소개하며 끝나는 책입니다.

다 읽는데 굉장히 오래 걸렸습니다. 모르는 단어도 많고 단어는 알아도 무슨 말하는지 모르겠는 게 허다했습니다. 특히 회로 부분과 메모리의 명령어는 아마 열 번은 읽어야 얼추 이해하지 않을까 싶습니다.

 

 그럼에도 책의 순서가 작은 부품에서 시작해서 그 부품들을 조립해 하나의 물건을 만드는 과정처럼 되어 있어서 끝까지 읽을 수 있었습니다. 먼저 전자에 대해 알려주고, 전자의 이동을 통해서 신호를 보내는 것을 설명합니다. 그리고는 신호의 방법과 이진수, 릴레이, 스위치, 논리, 회로를 거쳐 컴퓨터의 작동 방법에 이르렀습니다. 만약 이렇게 순서대로 하지 않았다면 회로에서 책을 덮고 오랜 시간 뒤에 다시 펼쳤을 것 같습니다. ㅎㅎ..ㅎ.

 

 책은 재밌고, 유용했습니다. 이전의 수업에서는 프로그래밍 위주의 학습이었습니다. 그래서 '십진수 1+1은 컴퓨터에서 어떤 과정을 거쳐서 답이 나오는 걸까'와 같은 기초적인 컴퓨터 동작 과정이 궁금했었는데 그에 대한 대답을 알 수 있었습니다. 그리고 그냥 사용하던 컴퓨터의 단위나 동작들이 다르게 보였습니다. RAM이나 하드디스크의 용량이 금세 커진 것을 다시 한번 느끼기도 하고, CPU에 Hz단위를 사용하는 것이나 32비트 운영체제에서 64비트 운영체제로 변경된 점 등 새로 알게 된 것도 많았습니다. 근데 또 이렇게 작성하는 와중에 이유가 뭐였지?라고 생각하니 생각이 어렴풋이 나는 것이 금세 까먹어 버린 듯합니다. 그래도 한 번 읽어 뒀으니 다음에는 더 많은 부분을 이해할 수 있겠지 생각하며 가끔씩 꺼내봐야겠습니다.

 

 

 

 

 

 

 

 

 

728x90

'잡담 > 리뷰' 카테고리의 다른 글

Clean Code 책 후기  (0) 2022.09.24
728x90

 

 팀 프로젝트를 진행하던 중에 자주 들었던 생각이 있습니다. ‘내가 제대로 코드를 짜고 있는 걸까?’ 기능적으로는 원하는 방향으로 작동했기 때문에 문제는 없었지만 팀과 같이 협업할 때와 유지보수를 해야 할 때 문제가 없을까 하는 의문도 같이 들었습니다. 이런 의문을 해결하고자 찾아보았던 책이 클린 코드와 마틴 파울러의 ‘리팩토링’이란 책이었습니다. 다른 주제를 다루는 것 같으면서도 비슷한 내용 같아 무슨 책을 먼저 구매할까 고민하다가 표지가 마음에 들어 클린 코드를 먼저 구매했습니다.

 

 다 읽은 후에는 팀 프로젝트를 마무리할 즈음에 구매한 책이라 설계 단계부터 적용을 하지 못해 아쉽다는 생각이 들었습니다. 작게는 이름을 정하는 규칙부터 크게는 어떻게 구조적으로 코드를 짜야 하는지까지 알려주는 책입니다. 그리고 실제로 저자가 코드를 수정하고 어떤 사고의 과정을 거쳐 그렇게 수행했는지 알려주기 때문에 이해하는데 더욱 쉬웠습니다. 저자가 많은 원칙을 강조하는데 그중 단일 책임 원칙과 OCP 그리고 TDD가 기억에 남습니다. TDD는 원칙은 아니지만 일단 ㅎㅎ.

 

 단일 책임 원칙이 기억나는 이유는 프로젝트를 진행하면서 클래스를 제대로 구분하지 않아 한 가지가 아닌 여러 이유에서 같은 클래스를 수정한 경험 때문에 그렇습니다. 팀 프로젝트를 리팩토링 할 예정인데 거기서 이 원칙에 알맞게 수정을 해봐야겠습니다. OCP는 추상화를 잘 사용하는 방법인 것 같아서, 그 방법을 자유자재로 사용하고 싶은 마음에 기억에 남습니다. 하지만 이 방법을 잘 사용하려면 추상화 단계를 구분하여 클래스나 모듈을 구성해야 하는데, 책에 쓰여있는 것처럼 딱 봐서는 추상화 단계를 구분하기가 어려워 이해하는데 시간이 좀 걸릴 것 같습니다. TDD는 책에서 정말로 강조를 많이 하기 때문에 궁금함이 생겼습니다. ‘왜 이렇게 강조를 할까?’라는 생각이 들었는데 테스트 코드를 작성하는 방법도 찾아보고 해서 적용해봐야겠습니다.

 

 그런데 책이 이해하기 쉽다고는 했지만 제가 모르는 원칙이나 개념들이 많아서 그런 단어들이 나오면 찾아보면서 읽느라 좀 오래 걸리긴 했습니다. 단어를 찾아봐도 정확히 이해하지 못하는 부분들도 있었습니다. 때문에 일정 주기를 두고 계속해서 읽어 봐야 할 책 같습니다.

 

 그리고 공감하기 어려운 부분도 있었습니다. 책에서 클래스나 변수, 메서드의 이름을 짓는 부분은 영어를 사용하는 문화에서는 바로 이해해도 한국에서는 바로 와 닿기는 힘들겠다 생각했습니다. 예를 들어 함수가 하는 일을 잘 표현하도록 서술적인 이름을 사용하라 하면서 includesetupAndTeardownPage라는 이름의 함수를 짓습니다. 근데 한국어로 하면 ‘설정과 해제 페이지를 넣어라’라는 뜻인데 이게 영어로 작성되어 있을 경우 영어를 한 번 인식하고 한국어로 해석하는 과정을 거치기 때문에 책에 작성된 것처럼은 공감하기 어려웠습니다.

 

 하지만 개발에서는 영어가 주요 언어이고 많은 공식 문서나 커뮤니티 또한 영어를 사용하기 때문에 제가 공부를 해야겠다고 생각이 들었습니다. 허헣..

728x90

'잡담 > 리뷰' 카테고리의 다른 글

[독후감] CODE  (0) 2022.10.02

+ Recent posts