본문 바로가기
독서

프로그래머의 뇌 정리

by 나도한강뷰 2022. 9. 7.

나는 개발을 잘 모르고 안했던 사람으로, 프로그래머는 어떻게 생각하고 개발하는가에 대해서 궁금했던적이 많았다. 원래 생각에 대해서 관심이 많다. 대학교때는 인지과학, 인간행동과 과학 조교로 일했던적도 있다ㅎㅎ

 

책의 내용은 LTM, STM, Memory뭐 이런 내용을 개발과 관련해서 풀어놓은 내용인데, 뭐 그런게 많이 중요하다고 생각은 안한다. 내가 이 책에서 재미있게, 중요하다고 느꼈던 부분에 대해서 정리하자면 다음과 같다.

 

  • 청킹- 코드를 분할해서 분석하고 파악하는게 코드를 읽는데 도움이 된다. 코드를 하나의 관용어구처럼 생각한다고 느껴졌다. 그리고 그 관용어구는 곧 디자인 패턴과 유사하다고 느꼈다. 효율을 위해서 남들이 혹은 내가 만들어 놓은 패턴을 익히고 사용하고 하는 과정이 필수구나... 그래야지 생산성과 효율이 올라가는구나... 왜 사람들이 디자인 패턴 쏼라쏼라 했는지 느꼈다. 그것은 일을 편하게 잘하기 위한 방법이였다.
  • 변수의 역할을 11가지로 구분. 이 또한 변수가 가질수 있는 가능성을 제한해서 그안에서 찾는것. 결국 지식안에서 모든것을 분석하려는 것이라고 느꼈다. 또한 변수이름을 짓는데, (도메인 지식, 프로그래밍 개념, 규약)3가지를 잘 이용해서 변수 이름을 만들어야지 코드의 가독성이 증가한다. 가독성이 낮은 변수들은 에러가 있을 확률도 높아진다는 통계?
  • 문제해결을 위해서 모델링을 한다. 문제 자체를 모델링 하는것과 그것을 컴퓨터가 코드로 실행하는 방법에 대한 추론 하는것. 세밀한것들을 하나의 덩어리로 모으고, 덩어리간의 연관관계성을 파악하고... 문제를 단순화하고 그것들을 명확히 볼 수 있는것. 그런것이 문제 해결을 위한 방법이라는 내용인가?
  • code smell -> 작동은 하지만, 개선의 여지가 있는 코드...
    • 주석문: 무엇을 하는지x, 왜 거기있는지
    • 하나의 method는 하나의 기능
    • code clone : 매우 유사한 두 코드를 개별 작성
    • 긴 매개변수/ switch문 --> 효율적 청킹 및 LTM사용 효율 저하
    • antipattern -> 구조적 어려운 구조 or 개념점 혼돈되는 이름

등등의 내용이 있고... 결국 책에서 얘기하는 코딩을 잘하는것은 다른 수학과 비슷하다고 느꼈다.

자신에게는 수없이 많은 개념들이 들어가있다. 그런 개념에는 디자인 패턴, 알고리즘 등등 코드의 형태 및 input output의 상관관계를 가진 놈들 코드에 대한 정보들이 있다. 그런 상황에서 나는 새로운 문제를 보고 그것을 최대한 추상화해서 내가 알고있는 개념들과 비슷한 부분이 있는지를 찾는다. 그리고 그것을 반복하다보면 그것은 자동화되어서 실력이 오른다는 내용이다.

이 책을 읽어서 도움이 됐던건, 왜 디자인 패턴이건 알고리즘이건 이런걸 왜 공부해야되는지 이유를 알게되었다. 그것들을 하나하나 자세하게 기억하지는 못해도 내 머리속에 추상화된 개념으로 남아있게 된다면, 그것은 문제해결을 훨씬 쉽게 만들어줄 것이다.

'독서' 카테고리의 다른 글

real MySQL 8.0 1권  (0) 2022.10.10
쏙쏙 들어오는 함수형 코딩  (1) 2022.09.24
커리어스킬 책 정리  (0) 2022.09.09