Today I../Today I Read

[Clean Code] Chapter 01. 깨끗한 코드

HJChung 2022. 1. 28. 23:03
Clean Code 클린 코드 - 로버트 C. 마틴  를 읽고, 해설 강의를 통해 보충 이해한 내용을 정리한 글입니다. 

 

기계가 실행할 정도로 상세하게 요구사항을 명시하는 작업, 바로 이것이 프로그래밍이다. 

이렇게 명시한 결과가 바로 코드다. 

1. Bad Code

1) 나쁜 코드란

  • 성능이 나쁜 코드: 불필요한 연산이 들어가서 개선의 여지가 있는 코드
  • 의미가 모호한 코드: 이해하기 어려운 코드나 네이밍과 그 내용이 다른 코드.. 등 여러 경우가 될 수 있음. 
  • 중복된 코드: 비슷한 내용인데 중복되는 코드들은 버그를 발생시킬 가능성이 매우 크다. 

음...음..? 엥? 의미도 모르겠고, 이 코드는 또 중복이 되고, 포맷팅도 이상하고,.. 어쨌든 이런 느낌이 드는 코드들은 '나쁜 코드'다. 

2) 나쁜 코드를 짜는 이유

일정이 촉박하니까. '일단은 되게 하자' 식으로 나쁜코드를 막 짜게 된다. 이렇게 나쁜 코드를 짜고 넘어간 뒤에 클린 코드로 바꾸느냐? NO. 

그 땐 이미 나쁜 코드가 야기한 영향이 너무 커져버려서 건드렸다간 다른 부분에서 버그가 발생한다거나 할까봐 수정하지 않는다. 

그리고 이렇게 계속 기술 부채가 쌓이게 된다. 

3) 하지만

좋은 코드를 사수하는 일이 바로 프로그래머들의 일이다. 일정 이나 매니저 탓을 하며 코드의 질을 타협해나가는 것은 전문가답지 못하다. 

그리고 기한을 맞추는 유일한 방법은, 언제나 코드를 최대한 깨끗하게 유지하는 습관이다. 

4) 정리하면,

나쁜 코드는 깨진 유리창 법칙의 깨진 유리창 처럼 계속 나쁜 코드를 만들게하고, 이는 팀의 생산성을 저하시키는 기술 부채 생성으로 이어져 결국 생산성 저하로 이어진다. 또한 이것이 쌓이면 결국 새로운 시스템을 만들어야 하며 한 시스템을 유지보수하며 대체할 새로운 시스템 개발은 현실적으로 매우 어렵다. 

 

2. Clean Code

1) 깨끗한 코드란

  • 세세한 사항까지 꼼꼼하게 처리하는 코드
  • 한 가지에 집중하는 코드
  • 가독성이 좋은 코드. 깨끗한 코드는 잘 쓴 문장처럼 읽혀야 한다. 
  • 다른 사람이 고치기 쉬운 코드
  • 테스트케이스가 잘 되어 있는 코드
  • 모든 사항을 고려하여 주의 깊게 짠 코드

2) 정리하면, 

클린 코드란 1. 성능이 좋은 코드 2. 의미가 명확한 코드 3. 중복이 제거된 코드

 

 


앞으로 보이스카우트 룰처럼 '전보다 더 깨끗한 코드로 만든다' 라는 마음가짐을 가지고

'어떻게 깨끗한 코드를 짤 수 있을까'에 대해 약 1달의 시간동안 꾸준히 읽고, 실습해볼 것이다!