프로그래밍 심리학 1장 - 프로그램 읽기

욱동이와 일요일 9시 모여서 프로그래밍 심리학 1장 스터디를 했습니다~
PT를 만들어야 하는데.... 이번에는 훑어보면서 토론 형식으로 진행했습니다~
시간되는데로 PT를 간단히 만들던지 할께~ㅎ 일단은 오늘 한것들에 대해서 요약 정리~

1장 프로그램 읽기

 프로그래밍은 작문의 일종이다.
  • 작문을 배우는 가장 직접적인 방법은 써보는것도 있찌만 읽어보는것도 방법이다
  • 코드를 작성하는 것도 중요하지만 읽는것도 중요하다
  • 읽어서 무엇을 배울수 있을까?
프로그램 읽기에는 적합한 방법이 있다.
  • 프로그램각 부분의 발단으로 구성된 개념적인 프레임워크를 토대로 읽어야 한다....
  • 이 코드가 왜 여기에 있을까? 를 생각하면서 읽어야 하는것!
 코드가 그렇게 작성된 것에 대한 이유를 생각해보면...
 기계의 한계
  • 기계의 한계로 어쩔수 없이 그렇게 작성되어야만 하는 경우도 있다.
  • 메모리가 부족한 시기에 작성된 프로그램을 지금 바라보면 왜 그렇게 작성되었는지 의야하게 생각될 수도 있겠지만 시대적 상황을 감안해서 읽어야지 이유를 알 수 있다.
  • 그때에는 그런 방식이 당연한것으로 인식되었기 때문에 특별한 표식을 남기지 않았을 것이다..
언어의 한계
  • 작성된 언어의 한계로 인해 필연적으로 정해지는 프로그램 작성 방식..
  • C 계열에서는 배열의 인덱스 0은 첫번째 위치를 나타내지만 Lua에서는 인덱스 1이 첫번째 위치를 나타낸다. 따라서 Lua프로그램을 작성하던 사람이 C 계열 코드를 볼때는 언어의 한계를 이해하고 봐야하지 않을까..
프로그래머의 한계
  • 작성 언어에 대한 프로그래머의 이해 정도에 따라 코드가 다르게 작성된다.
  • for 문법을 사용할때 두가지 방법을 쓸수 있다.
    • for( i = 0, i < 10, i++) { ..... }
    • for( i =0, 10 ) {....}
  • 뭐.. 이런것들??
역사의 흔적
  • 코드를 작성할 당시에는 특정 함수에 버그가 있어서 우회하여 처리하는 방법을 사용하였지만 코드를 다시 읽는 시기에는 특정함수의 버그가 수정되어 우회할 필요가 없는 상황이 있을 수 있다.
  • 이것으로 원래 코드 작성자보다 자기가 더 잘알고 있고 우월하게 인식하여 원래 코드 작성자를 깔보지말고.... 코드가 작성된 시기를 감안하여 코드를 읽자..
  • 규모가 크고 오랜 기간 작성된 코드일수록 이런 경험이 많을것이다.
요약
  • 어떤 프로그램이 현재의 모습을 갖게 되는데에는 다 이유가 있다
  • 단순히 훑어 보는것만으로 충분히 파악하기는 어렵다.
1장에 대해서 이야기를 하면서 욱동이와 이것저것 많은 이야기를 하였다...

프로그래밍은 작문이다??
  • 네이밍이 무척 중요하다!
  • 아직까지 변수명을 a,b,c로 사용하는 경우를 보면 안타깝다.
  • 변수가 가진 의미를 충분히 반영할 수 있는 이름으로 변수명을 지어야 나중에 보기 편하다~
    • 그런데.. 영어가 딸려서 정확한 의미의 변수명을 사용하기가 많이 힘들다...ㅠ
코드를 읽어본적이 얼마나 되는가...
  • 일하는 팀과 회사의 분위기에 따라 많이 다르다..
    • 욱동이의 경우 다른 사람이 작성한 코드를 읽어볼 경우가 거의 없지만
    • 나의 경우는 거의 매일 다른 사람이 작성한 코드를 읽고 분석하는 일을 하고 있었다.
기타..
  • 오픈소스의 코드를 읽어보는 시도를 해보고 싶다.
  • 코드를 읽고 서로의 생각을 공유하고 싶다.
  • 스터디에서 장난감을 만든다음 각자 리팩토링하여 방법을 공유하고 싶다.
  • 자신이 작성한 코드에 대해서 다른 사람들의 의견을 들어보고 싶었다...

등등.. 앞으로 하고 싶은것들에 대해서 많이 이야기를 하였다~
이야기를 하다보니 2시간이 금방 지나가서..... 욱동이가 쌓인게 많은듯ㅋ

스터디는 주 2장씩 진행하기로..
다음주에는 욱동이가 2장, 내가 3장을 준비해서 공유할 예정입니다~