[클린코드] 1장. 깨끗한 코드

MEUN·2022년 2월 19일
0

< CLEAN-CODE />

목록 보기
2/17
post-thumbnail

1 주차

토 | Assignment #02

  • 📚 추천사 ~ 1장. 깨끗한 코드
  • ✔️ TIL

추천사 & 들어가면서


📘 책에서 기억하고 싶은 내용

  • "사소한 곳에서 발휘하는 정직은 사소하지 않다" : 사소한 코드가 전체 코드 및 소프트웨어 품질을 좌우한다. (일관적인 들여쓰기 스타일이 버그 수를 줄여주는 가장 중요한 요인 중 하나일 수도 있다.)
  • 품질은 하늘에서 뚝 떨어지는 위대한 방법론이 아니라 사심 없이 기울이는 무수한 관심에서 얻어진다.
  • TPM(Total Productive Management)의 5S 철학
    • 정리 : 적절한 명명법 등과 같은 방법을 사용해 무엇이 어디에 있는지 알아야 한다.
    • 정돈 : 코드는 누구나 예상하는 위치에 있어야 한다.
    • 청소 : 과거 이력이나 미래의 바람을 기억한 주석 혹은 주석으로 처리한 코드는 제거해야 한다.
    • 청결 : 그룹 내에서 일관적인 구현 스타일과 기법의 표준화가 필요하다.
    • 생활화 : 관례를 따르고, 자기 작품을 자주 돌아보고, 기꺼이 변경해야 한다.
  • 깨끗한 코드를 작성하는 방법은 배우기 어렵다. 단순히 원칙과 패턴을 안다고 나오지 않고, 실패도 맛보며 고생을 해야 한다.

🤔 소감 및 생각

  • 오류는 정말 사소한 원인으로 인해 발생할 수도 있다는 점을 자주 생각하게 되었는데 코드의 사소한 모든 부분이 품질을 좌우한다는 사실을 다시 한 번 느끼게 되었다.

🔍 새롭게 알게 된 내용

  • 린(Lean) : 애자일 방법론의 일종으로 도요타의 TPS를 소프트웨어 개발에 적용한 방법론으로 낭비에 집중하여 프로그램을 개발하는데 발생할 수 있는 모든 낭비를 최소화하고 결과를 측정, 성과를 분석하여 소프트웨어 가치를 최대화하고자 하는 것을 목표로 둔다.


1장. 깨끗한 코드


📘 책에서 기억하고 싶은 내용

  • 궁극적으로 코드는 요구사항을 표현하는 언어이다. (p.3)
  • 우리 모두는 자신이 짠 쓰레기 코드를 쳐다보며 나중에 손보겠다고 생각하거나, 대충 짠 프로그램이 돌아간다는 사실에 안도감을 느끼며 그래도 안돌아가는 프로그램보다 돌아가는 쓰레기가 좋다고 스스로를 위로한 경험이 있다. 하지만 나중은 결코 오지 않는다. (p.4)
  • 나쁜 코드는 너무 많은 일을 하려 애쓰다가 의도가 뒤섞이고 목적이 흐려진다. 깨끗한 코드는 한 가지에 "집중"한다. - 비야네 스트롭스트룹 (p.10)
  • 객체가 여러 기능을 수행한다면 여러 객체로 나눈다. 메서드가 여러 기능을 수행한다면 메서드 추출 리팩터링 기법을 적용해 기능을 명확히 기술하는 메서드 하나와 기능을 실제로 수행하는 메서드 여러 개로 나눈다. (p.14)
  • 코드를 읽는 시간 대 코드를 짜는 시간 비율이 10 대 1이 넘는다. 그러므로 읽기 쉬운 코드가 매우 중요하고, 주변 코드를 읽지 않으면 새 코드를 짤 수 없다. (p.18)

🤔 소감 및 생각

  • 유지보수 등 서비스 오픈 이후 운영 및 관리를 위한 클린 코드의 중요성은 알고 있었지만 다시 한 번 체감하게 되었다. 오래되고 가독성이 좋지 않은 코드는 읽고, 이해하고, 고치는데에 필요한 비용이 많은데 내가 작업한 작업물도 다른 사람들이 봤을 때 의도가 잘 읽힐 수 있도록 노력해야겠다.

🔍 새롭게 알게 된 내용

  • DSL(Domain Specific Language) : 도메인 특화 언어, 특정 문제 표현 기법 및 특정 문제 해결 기법에 사용할 목적으로 만든 프로그래밍 언어나 명세 언어를 의미

0개의 댓글