Community

개발자 99% 커뮤니티에서 수다 떨어요!

← Go back
TIL-Assignment #02(2022.02.19[토])
#clean_code
2년 전
1,310


TIL (Today I Learned)

// 2022.01.19

오늘 읽은 범위

// 1장. 깨끗한 코드

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

  • 소프트웨어는 80% 이상이 소위 “유지보수”다.

  • 프랑스 시인인 폴 발레리Paul Valéry는 시란 영원히

    미완성이라 끝없는 재작업이 필요하며 포기할 때에만 끝난다고 말했다. 이렇듯 세세함에 몰두하는 태도는 탁월함을 추구하는 모든 노력에서 공통으로 발견된다.

  • 일관적인 들여쓰기 스타일이 버그 수를 줄여주 는 가장 중요한 요인 중 하나라고 추측하게 되었다. 흔히 우리는 아키텍처나 프로그래밍 언어나 좀 더 고차원적인 뭔가가 품질을 결정하는 요인이기를 바란다. 소위 전문가는 고상한 설계 방법론과 도구에 통달해야 한다고 생각하는 까닭에, 무식한 기계, 그러니까 아무 생각 없는 공돌이인 코더가 간단한 들여쓰기 스타일로 가치를 더한다는 사실에 모욕감을 느낀다. 17년 전에 쓴 내 책을 인용하자면, 바로 이런 태도가 탁월함과 단순한 능숙competence을 구분짓는다.

  • 일정에 쫓기더라도 대다수 관리자는 좋은 코드를 원한다. 그들이 일정과 요구사항을 강력하게 밀어붙이 는 이유는 그것이 그들의 책임이기 때문이다. 좋은 코드를 사수하는 일은 바로 우리 프로그래머들의 책임이다.

  • 우아한 코드 = 외양이나 태도가 기품 있고 단아하며 보기에 즐거운; 교묘하고 단순해 보기에 즐거운 코드

  • 세세한 사항까지 꼼꼼하게 신경써라(오류처리), 꺄끗한 코드는 한 가지를 잘한다. 잘 쓴 문장처럼 읽혀야 한다.

  • 코드를 읽는 사람에게 프로그래머가 단호하다는 인상을 줘야 한다. "명쾌한 추상화" = 힘차게 단호하고 사실적인; 주저하지 않는; 불필요한 사실에 얽매이지 않는

  • 깨끗한 코드는 다른 사람이 고치기 쉽다.

  • 깨끗한 코드는 읽으면서 놀랄 일이 없어야 한다고 워드는 말한다. 맞는 말이 다. 코드를 독해하느라 머리를 쥐어짤 필요가 없어야 한다. 읽으면서 짐작한 대 로 돌아가는 코드가 깨끗한 코드다. 명백하고 단순해 마음이 끌리는 코드가 깨

    끗한 코드다.

  • 주변 코드를 읽지 않으면 새 코드를 짜지 못한다. 주변 코드가 읽기 쉬우면 새 코드를 짜기도 쉽다. 주변 코드를 읽기가 어려우면 새 코드를 짜기도 어렵다. 그러므로 급하다면, 서둘러 끝내려면, 쉽게 짜려면, 읽기 쉽게 만들면 된다.

  • 지속적인 개선이야말로 전문가 정신의 본질

  • 연습해 연습!

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

  • 읽기 쉬운 코드가 좋은 코드다. 변경하기 쉽고 유지보수하기 쉬운 코드가 좋은 코드다. 이 말은 수없이 많이 들어왔는데. 막상 왜인지는 제대로 체감하거나 생각해본적 없는 것 같다.

  • 소프트웨어의 80%이상은 유지보수다. 이 말을 요즘 일하면서 느끼고 있다. 변하는 요구사항, 새롭게 발견된 버그, 기능 고도화 등에 의해서 유지보수에 힘쓰고 있는데, 그런 차원에서 맞는 말이다.

  • 특히 협업을 하는 경우에는 더욱이 읽기 쉽게 작성된 코드가 유지보수하기 쉽다. 깔끔하고 간결하더라도, 로직의 흐름이나 코드 단위(뎁스)가 작성한 사람마다 제각각인경우 작은 기능을 고치기 위해서 너무 많은 시간을 들여 코드를 읽어야한다.

  • 코드를 읽고, 함수 단위를 보면서 코드를 작성한 사람의 생각의 흐름에 나도 같이 올라탈 수 있을 때 가장 숨은 버그를 찾기 쉽고, 수정하거나 기능을 추가하기 쉽게 된다.

  • 코드를 읽으면서 놀라지 않아야한다. 이 말의 맥락도 위에서 말한 코드 단위나 뎁스, 추상화의 정도가 중구난방인 경우를 떠올리면 이해할 수 있다. 항상 어떻게 얼만큼 적당한 단위로 함수나 컴포넌트를 쪼갤 것인지 고민이 된다.

  • 개발하다보면 코드를 작성하는 시간보다 읽는 시간에 더 많은 시간을 들인다는 것에 백번 공감한다. 코드를 읽는데에 더 많은 시간을 투자를 해야하고, 충분히 이해할 수 있을때 비로소 코드를 작성해야 한다.

  • 지속적인 개선, 연습, 코드감각. 폴발레리를 떠올리자.

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

  • 적당한 단위의 추상화는 어떻게 해야 좋은가.