클린코드 챌린지 Day 02

seul·2024년 1월 27일

개발자북클럽

목록 보기
2/11

📅 TIL (Today I Learned): 2024.01.27
📋 오늘 읽은 범위: 추천사 ~ 1장. 깨끗한 코드


😎 책에서 기억하고 싶은 내용을 써보세요.

TPM (Total Productive Management) 품질관리론

TPM을 지탱하는 기둥 하나가 소위 5S라는 원칙이다. 5S = 5가지 규율

  1. 정리 (조직, 정렬)
    적절한 명명법 등과 같은 방법을 사용해 무엇이 어디에 있는지 알아야 한다.
  2. 정돈 (단정함, 체계화)
    코드는 누구나 예상하는 위치에 있어야 한다.
  3. 청소 (정리, 광내기)
    과거 이력이나 미래 바람을 기억한 주석, 혹은 주석으로 처리한 코드 -> 제거해야 한다.
  4. 청결 (표준화)
    작업 공간을 청소하는 방식(코드 정리?)에 그룹이 동의한다.
  5. 생활화 (규율)
    관례를 따르고, 자기 작품을 자주 돌아보고, 기꺼이 변경하는 규율

고행, wading

나쁜 코드에 발목이 잡혀 고생하는 것, 그래서 나쁜 코드를 헤쳐나가는 것

태도

코드가 엉망이고, 한 줄 고치면 된다고 예상했다가 모듈을 수백 개 건드린 경험들...
왜 이렇게 되었을까?

  1. 일정이 촉박했어요 / 관리자와 고객과 마케팅 부서 등등 때문이에요 -> ㄴㄴ 아님
  2. 관리자와 마케팅은 약속과 공약을 내걸며 '우리에게 정보를 구한다' -> 우리는 적극적으로 정보를 제공해야 마땅하다.
  3. 사용자는 요구사항을 내놓으며 '우리에게 현실성을 자문한다.' -> 우리 책임이란 얘기
  4. 근데 시키는대로 안 하면 우리는 잘려요 ㅠㅠ -> 일정에 쫓겨도 대다수 관리자는 좋은 코드를 원한다. 좋은 코드를 사수하는 일은 바로 우리 프로그래머들의 책임이다.

깨끗한 코드란?

  • 비야네 스트롭스트룹 (이름이 왜 이래)
    • '보기에 즐거운' 코드
    • 효율적인 코드 (단순 속도에 국한된 것이 아닌)
    • 원칙 없는 최적화를 진행하면서 코드를 망치려는 유혹 -> 나쁜 코드를 고치면서 오히려 더 나쁜 코드를 만든다
    • 철저한 오류 처리
    • 세세한 사항까지 꼼꼼하게 처리하는 코드
  • 그래디 부치
    • 가독성이 좋은 코드, 잘 쓴 문장처럼 읽혀야 한다
    • 명쾌한 추상화, 단순한 제어문: 코드는 추측이 아니라 사실에 기반해야 한다
  • '큰' 데이브 토마스
    • 다른 사람이 고치기 쉬운 코드
    • 가독성이 좋은 코드
  • 마이클 페더스
    • 언제나 누군가 주의 깊게 짰다는 느낌을 주는 코드
  • 론 제프리스
    • 중복과 표현력을 신경 쓴 코드
  • 워드 커닝햄
    • 읽으면서 놀랄 일이 없어야 하는 코드

🥺 오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요.

인상 깊은 부분이 있다.

4 페이지,
우리 모두는 자신이 짠 쓰레기 코드를 쳐다보며 나중에 손보겠다고 생각한 경험이 있다. 우리 모두는 대충 짠 프로그램이 돌아간다는 사실에 안도감을 느끼며 그래도 안 돌아가는 프로그램보다 돌아가는 쓰레기가 좋다고 스스로를 위로한 경험이 있다. 다시 돌아와 나중에 정리하겠다고 다짐했었다. 물론 그때 그 시절 우리는 르블랑의 법칙을 몰랐다. 나중은 결코 오지 않는다.

모두가 공감할 이야기.
마음 속의 짐처럼 남아있으면서 결코 고칠 기회가 오지 않는 코드들... 크리티컬한 문제는 고치겠지만 그렇지 않고서는 그저 과거의 부끄러운 코드로 남아있을 뿐이다.

이런 경험을 줄이기 위해서는 어떻게 '깨끗한 코드'를 작성하는가? 에 대해서 알아야 하는데,
나는 아직 장인까지는 아니라서 그게 쉽지 않다.
방법을 모르고 노력만 할 뿐...

이 책을 통해 작성하는 법을 배우고 시행착오를 겪고 싶다.


🤔 궁금한 내용이 있거나, 잘 이해되지 않는 내용이 있다면 적어보세요.

궁금한 내용?
단지 뒤에서 어떤 얘기를 할지에 대한 궁금증 뿐이다.

profile
자존감은 일상의 성실함으로부터 온다

0개의 댓글