본문 바로가기

북스터디

[클린 코드] 4장 주석 프로그래밍에서 주석(comment)의 정의는 다음과 같다. Comment is a piece of text placed within a program to help other users to understand it, which the computer ignores when running the program. 주석은 나쁜 코드를 보완하지 못한다. Don't comment bad code—rewrite it. - Brian W. Kernighan 주석은 오래될수록 코드에서 멀어진다. 프로그래머들이 주석을 유지하고 보수하기란 현실적으로 불가능하기 때문이다. 잘 달린 주석은 그 어떤 정보보다 유용하지만, 오래되고 조잡한 주석은 잘못된 정보로 오히려 코드를 이해하기 어렵게 만든다. 진실은 코드 한 곳에만 존재.. 더보기
[클린 코드] 3장 함수 어떤 프로그램이든 가장 기본적인 단위가 함수다. 작게 만들어라! 80년대에는 함수가 한 화면을 넘어가면 안된다고 말했다. 당시 VT100 화면은 가로 80자 세로 24줄이었다. 현대의 모니터가 발전해서 이제 더 표시되지만, 함수는 100줄을 넘어서는 안된다. 아니 20줄도 길다. 블록과 들여쓰기 if/else, while문이 들어가는 블록은 한 줄이어야 한다. 함수 들여쓰기 수준은 1단이나 2단을 넘어서면 안된다. 그래야 함수는 읽고 이해하기 쉬워진다. 한 가지만 해라! 함수는 한 가지를 해야한다. 그 한가지를 잘 해야한다. 함수를 만드는 이유는 큰 개념을 그 다음 추상화 수준에서 여러 단계로 나눠 수행하기 위해서다. 단순히 다른 표현이 아니라 의미있는 이름으로 다른 함수를 추출할 수 있다면, 그 함수는.. 더보기
[단위 테스트] 1장~5장 요약 1장. 단위 테스트의 목표 단위 테스트 이해 단위 테스트의 목표는 소프트웨어의 지속 가능한 성장을 가능하게 하는 것이다. 모든 테스트를 작성할 필요는 없다. 일부 테스트는 아주 중요하고 품질에 많은 기여를 한다. 테스트의 가치와 유지 비용을 모두 고려해야 한다. 기반 코드를 리팩터링할 때 테스트도 리팩터링하라. 각 코드 변경시 테스트를 실행하라. 테스트가 잘못된 경고를 발생시킬 경우 처리하라. 기반 코드가 어떻게 동작하고 이해하려고 할 때는 테스트를 읽는 데 시간을 투자하라. 제품 코드 vs 테스트 코드 코드는 자산이 아니라 책임이다. 코드가 더 많아질수록, 소프트웨어 내의 잠재적인 버그에 노출되는 표면적이 넓어지고 유지비가 증가한다. 가능한 한 적은 코드로 문제를 해결하는 것이 좋다. 테스트도 역시 코.. 더보기
[클린 코드] 2장 의미있는 이름 변수, 함수, 인수, 클래스, 소스 파일, 디렉터리. 우리는 모든 곳에 이름을 붙인다. 좋은 이름을 지으려면 시간이 걸리지만 좋은 이름으로 절약하는 시간이 훨씬 더 많다. 이름을 주의 깊게 살펴 더 나은 이름으로 개선하면 코드를 읽는 사람이 좀 더 행복해질 수 있다. 좋은 이름을 선택하려면 설명 능력이 뛰어나고, 문화적인 배경이 같아야한다. 1. 의도를 분명히 밝혀라. Use Intention-Revealing Names 변수, 함수, 클래스 이름은 다음의 질문에 모두 답하는 이름이어야 한다. 존재 이유는? 수행 기능은? 사용 방법은? // ❌ let d; // 경과 시간 (단위: 날짜) // ✅ let elapsedTimeInDays; let fileAgeInDays; let daysSinceCreat.. 더보기
[클린 코드] 1장 깨끗한 코드 코드가 존재하리라 누군가는 코드의 종말이 코앞에 닥쳤다고 주장하지만, 코드가 사라질 가망은 전혀 없다. 프로그래밍이란, 기계가 실행할 수 있을 정도로 상세하게 요구사항을 명시하는 작업이다. 사실 창의력과 직관을 보유한 우리 인간조차도 고객의 막연한 감정만 갖고는 성공적인 시스템을 구현할 수 없다. 코드는 요구사항을 정밀하게 표현하는 언어이다. 고도로 추상화된 언어 또한 코드이다. 그러므로 코드도 항상 존재하리라. 나쁜 코드로 치르는 대가 프로그래머라면 누구나 당연히 나쁜 코드로 고생한 경험이 있다. 나쁜 코드는 개발 속도를 크게 떨어뜨린다. 얽히고 설킨 코드를 해독하느라 더 얽히고 설킨 코드를 추가하게 된다. 나쁜 코드는 실제로 회사를 망하게 할 수 있다. 나쁜 코드를 짠 이유는 무엇인가? 제대로 짤 시.. 더보기
[클린 코드] 서문, 0장 들어가면서 최근 좋은 기회로 당근마켓 개발자분들과 우아한형제들 개발자분들이 함께하는 클린 코드 북스터디에 함께하게 되었다. 느슨한 코드에 한 줄기 긴장감이 되어줄 책 읽기와 북스터디 활동이 기대된다. 앞으로 매 장 스터디하며 인상깊은 구절을 정리해보려고 한다. (원래는 1장부터 적어보려했는데, 서문에도 인상 깊은 구절이 많아서 따로 적어보았다.) 서문 옮긴이 서문 (박재호님) 이 책은 로버트 C. 마틴이 40년 이상의 개발 경험을 토대로, 프로 개발자가 어떤 마음가짐으로 개발에 임해야하는지를 다루고 있다. 이 책을 읽고 나면, 왜 전문가 정신, 그리고 장인 정신이 강조되어야 하는지 이해할 수 있다. 이 글은 Java 언어를 베이스로 하지만, 언어나 프레임워크에 관계 없이 우리가 얻어가야할 원칙과 기본은 변하지 않았.. 더보기