본문 바로가기
IT 기록/클린코드

클린코드 #0 장인 정신을 익히는 방법!

by Lazy Quant 2020. 3. 6.
반응형

 비전공자로 IT 기업에 취업한 지 어느덧 4년 차가 되었다. 시스템을 운영과 유지보수하면서 개발도 같이 진행했다. 시스템을 운영하면서 보통 다른 사람들(프로젝트를 진행한) 짠 코드를 보게 되는데, 그 수준이 천차만별이다. 코드를 읽으면 바로 어떤 프로세스를 수행하는지 직관적으로 이해되는 코드가 있다. 반면 대체 왜 이렇게 작성을 했는지 의도를 알 수 없어서 함부로 손대기 두려워지는 코드들도 있다.

 

 그러다 내가 개발한 코드를 한참 뒤에 다시 보면서 '이걸 왜 이렇게 짰을까?'라는 생각을 한 적이 있다. 항상 시간에 쫓기다보니 코드에 대한 고민을 하기보다는 기능이 동작하면 넘어갈 때도 많았다. 나 또한 안 좋은 코드를 양산해내고 있었다. 어떻게 코드를 짜는 게 좋은 것인지 확실히 익히고, 습관을 제대로 들여놓고 싶었다. 그러던 중 주변 동료들에게 『클린 코드』라는 책을 추천받았다. 검색해보니 이미 IT 쪽에서는 유명한 명저였다.

클린코드

 이 책을 중심으로 공부해가는 과정을 기록하려고 한다. 처음 책을 한 번 볼 때는 평생 기억할 것 같지만, 책을 덮고 나면 금방 까먹는 사실을 누구보다 잘 안다. 계속 다시 들춰보면서 기억하고, 몸으로 체득해야 한다. 그리고 이 글들이 다른 사람들에게도 도움이 되기를 바란다 : )

 

 누구나 한 분야에서 장인이 되고 싶다는 꿈을 가지고 있다. 특히 IT 분야의 사람들은 이런 성향이 강한 듯하다. 장인 정신을 익히는 과정은 두 단계로 나뉜다. 바로 이론과 실전이다. 뻔해보이는 말이지만, 가장 중요한 말이기도 하다.

 

첫째, 장인에게 필요한 원칙, 패턴, 기법, 경험이라는 지식을 습득해야 한다.

둘째, 열심히 일하고 연습해 지식을 몸과 마음으로 체득해야 한다.

 

 깨끗한 코드를 작성하는 방법은 배우기 어렵다. 단순히 원칙과 패턴을 안다고 깨끗한 코드가 나오지 않는다. 고생을 해야 한다. 스스로 연습하고 실패도 맛봐야 한다. 남들이 시도하다 실패하는 모습도 봐야한다. 그들이 넘어지고 일어서는 모습도 봐야 한다. 결정을 내리느라 고민하는 모습, 잘못된 결정으로 대가를 치르는 모습도 봐야 한다.

 

 앞으로 클린 코드를 공부하면서, 첫 번째로 깨끗한 코드를 작성하는 원칙, 패턴, 실기를 익힐 것이다. 두 번째로 여러 사례들을 연구하고, 코드들을 바꾸는 연습을 할 것이다. 복잡도는 점점 더 높아진다.(문제가 있는 코드를 문제가 더 적은 코드로 바꾸는 연습이다.) 상세히 살펴보려면 집중력이 필요하다. 설명과 코드를 번갈아 뒤적여야 한다. 코드를 분석하고 이해하며 코드에 가하는 변경과 이유를 납득해야 한다. 그러려면 여러 날이 걸리므로 시간도 충분히 투자해야 한다. 마지막으로 사례를 연구하면서 수집한 냄새와 휴리스틱(heuristic)을 정리한다. 휴리스틱 자체가 아니라 사례 연구에서 코드를 정리하면서 내린 각 결정과 휴리스틱 사이의 관계가 중요하다.

 

시간을 들여 사례 연구를 검토하고, 모든 결정과 단계를 이해하고, 우리 입장에 서서 우리가 생각한 방식을 이해하려 애쓴다면, 『클린 코드』에서 제시하는 원칙과 패턴과 실기와 휴리스틱을 자신의 지식으로 만들 수 있을 것이다.


[출처] 로버트C. 마틴, Clean Code, 박재호·이해영 옮김, 인사이트(2010)


공감댓글, 그리고 공유는 큰 힘이 됩니다 : )

반응형

댓글