노개북 11

노개북 클린코드(clean code) 2022.03.11 - 마지막 후기

3주간 진행된 클린코드 북클럽이 끝났다. 개발서적 중에서도 유명한 책이라 언젠간 한번 읽어봐야지 했던 책이었는데, 이렇게 좋은 기회에 '강제로' 읽을 수 있는 시간이 생겨서 좋은 경험이 된 것 같다. 그동안 몇 번 적었던 것처럼 자바코드로 이루어진 예문과 개발언어에 대한 이해가 많이 부족한 상황에서 책을 읽다보니 장이 진행될수록 내용을 이해하는데 많은 어려움이 있었다. 책의 내용이 자바스크립트로 되어있었다면 이해가 가능해? 라고 물었을때 당연해! 라고 확신있게 말 할 수 없었기에 스스로 부끄럽게 생각한다. 그럼에도 올바른 이름, 주석, 함수의 역할 등 당장 내가 적용해볼 수 있는 영역에 대해서만큼은 얻어가는 부분이 있었기에 시간이 아깝지는 않다. 이제 책은 내려놓고 다시 공부의 시간으로...ㅎㅎ

노개북 클린코드(clean code) 2022.03.08~09

오늘 읽은 범위 10장 클래스 책에서 기억하고 싶은 내용을 써보세요. 클래스는 작아야 한다. 클래스 이름은 해당 클래스 책임을 기술해야 한다. 작명은 클래스 크기를 줄이는 첫 번째 관문이다. 클래스 설명은 if, and, or, but 을 사용하지 않고서 25단어 내외로 가능해야 한다. 단일 책임 원칙 : 클래스나 모듈을 변경할 이유가 하나, 단 하나뿐이어야 한다는 원칙 큰 클래스 몇 개가 아니라 작은 클래스 여럿으로 이뤄진 시스템이 더 바람직하다. 작은 클래스는 각자 맡은 책임이 하나며, 변경할 이유가 하나며, 다른 작은 클래스와 협력해 시스템에 필요한 동작을 수행한다. 응집도가 높아지도록 변수와 메서드를 적절히 분리해 새로운 클래스 두세 개로 쪼개준다. 테스트가 가능할 정도로 시스템의 결합도를 낮추면..

노개북 클린코드(clean code) 2022.03.05~06

+ 코로나로 앓다가 살아났네요;; 오늘 읽은 범위 9장 단위테스트 책에서 기억하고 싶은 내용을 써보세요. 테스트 코드는 실제 코드 못지 않게 중요하다. 테스트는 유연성, 유지보수성, 재사용성을 제공하는 버팀목이 바로 단위 테스트다. 실제 코드를 점검하는 자동화된 단위 테스트 슈트는 설계와 아키텍처를 최대한 깨끗하게 보존하는 열쇠다. 테스트 케이스가 있으면 변경이 쉬워지기 때문이다. 테스트 코드는 최소의 표현으로 많은 것을 나타내야 한다. 테스트 당 assert 문을 단 하나만 사용해야 한다. - 테스트 함수마다 한 개념만 테스트하라. 잡다한 개념을 연속으로 테스트하는 긴 함수는 피한다. 개념 당 assert 문 수를 최소로 줄여라, 테스트 함수 하나는 개념 하나만 테스트하라 F.I.R.S.T. Fast ..

노개북 클린코드(clean code) 2022.03.01

오늘 읽은 범위 6장 객체와 자료구조 책에서 기억하고 싶은 내용을 써보세요. 객체는 동작을 공개하고 자료를 숨긴다. 그래서 기존 동작을 변경하지 않으면서 새 객체 타입을 추가하기는 쉬운 반면, 기존 객체에 새 동작을 추가하기는 어렵다. 자료 구조는 별다른 동작 없이 자료를 노출한다. 그래서 기존 자료 구조에 새 동작을 추가하기는 쉬우나, 기존 함수에 새 자료 구조를 추가하기는 어렵다. 새로운 자료 타입을 추가하는 유연성이 필요하면 객체가 더 적합하다. 새로운 동작을 추가하는 유연성이 필요하면 자료 구조와 절차적인 코드가 더 적합하다. 오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요 이번 내용은 솔직히 정확하게 이해되지 않았다. 어려웠지만 객체와 자료구조의 방법 중 둘의 장단이 있으니 작업의 방향에 ..

노개북 클린코드(clean code) 2022.02.28

오늘 읽은 범위 5장 형식 맞추기 책에서 기억하고 싶은 내용을 써보세요. 코드 형식은 의사소통의 일환이다 적절한 행 길이를 유지하라 신문 기사처럼 작성하라 : 이름만 보고도 올바른 모듈을 살펴보고 있는지 아닌지를 판단할 정도로 신경 써서 짓는다. 소스 파일 첫 부분은 고차원 개념과 알고리즘을 설명한다. 아래로 내려갈수록 의도를 세세하게 묘사한다. 마지막에는 가장 저차원 함수와 세부 내역이 나온다. 개념은 빈 행으로 분리하라 : 생각 사이는 빈 행을 넣어 분리해야 마땅하다. 세로 밀집도 : 서로 밀접한 코드 행은 세로로 가까이 놓여야 한다. 수직 거리 : 같은 파일에 속할 정도로 밀접한 두 개념은 세로 거리로 연관성을 표현한다. 여기서 연관성이란 한 개념을 이해하는데 다른 개념이 중요한 정도이다. 변수선언..

노개북 클린코드(clean code) 2022.02.24~25

오늘 읽은 범위 4장 주석 책에서 기억하고 싶은 내용을 써보세요. 잘 달린 주석은 그 어떤 정보보다 유용하다. 경솔하고 근거 없는 주석은 코드를 이해하기 어렵게 만든다. 오래되고 조잡한 주석은 거짓과 잘못된 정보를 퍼뜨려 해악을 미친다. -> 이번 장의 내용을 한마디로 말해주는 구문이라고 생각한다. 코드만이 자기가 하는 일을 진실되게 말한다. 코드만이 정확한 정보를 제공하는 유일한 출처다. 좋은 주석 법적인 주석 정보를 제공하는 주석 의도를 설명하는 주석 의미를 명료하게 밝히는 주석 결과를 경고하는 주석 TODO 주석 중요성을 강조하는 주석 나쁜 주석 주절거리는 주석 : 주석을 달기로 결정했다면 충분한 시간을 들여 최고의 주석을 달도록 노력한다. 같은 이야기를 중복하는 주석 오해할 여지가 있는 주석 의무..

노개북 클린코드(clean code) 2022.02.22 ~ 23

오늘 읽은 범위 3장. 함수 책에서 기억하고 싶은 내용을 써보세요. 작게 만들어라 블로과 들여쓰기 : if문 / else문 / while 문 등에 들어가는 블록은 한 줄이어야 한다. 중첩 구조가 생길만큼 함수가 커져서는 안 된다. 한 가지만 해라 : 함수는 한 가지를 해야 한다. 그 한 가지를 잘 해야 한다. 그 한 가지만을 해야 한다. 지정된 함수 이름 아래에서 추상화 수준이 하나인 단계만 수행한다면 그 함수는 한 가지 작업만 한다. 함수 당 추상화 수준은 하나로 위에서 아래로 코드 읽기: 내려가기 규칙. TO문단을 읽듯이 프로그램이 읽혀야 한다는 의미이다. 서술적인 이름을 사용하라 : 길고 서술적인 이름이 길고 서술적인 주석보다 좋다. 이름을 붙일 때는 일관성이 있어야 한다. 모듈 내에서 함수 이름은..

노개북 클린코드(clean code) 2022.02.21

나의 최애 북틸 https://nomadcoders.co/community/thread/2394 시와 함께 작성해주신 소감이 인상적이다. 인트로도 인상적인데, 과거 협업했던 동료와의 일화를 함께 적어 '의미 있는 이름' 이라는 챕터에 걸맞는 예시를 들어주신 것 같아 가장 인상깊게 읽었다. TIL-2 (2022.02.20[일]) – 노마드 코더 Nomad Coders Post on 노마드 코더 Community nomadcoders.co https://nomadcoders.co/community/thread/2284 실제로 작업 하면서 챕터와 관련하여 경험했던 내용을 적어주셔서 좋은 후기였다고 생각한다. 또, 경험 이외에 실제 있었던 오류를 예로 적어보고 그 오류에 대한 자신의 생각을 챕터와 연관지어 작성..

노개북 클린코드(clean code) 2022.02.20

오늘 읽은 범위 2장 의미 있는 이름 책에서 기억하고 싶은 내용을 써보세요. 변수나 함수, 클래스의 이름은 다음과 같은 굵직한 질문에 모두 답해야한다. 존재 이유는? 수행 기능은? 사용 방법은? 의도를 분명히 밝혀라 그릇된 정보를 피하라 - 그릇된 단서는 코드 의미를 흐린다. 의미 있게 구분하라 - 읽는 사람이 차이를 알도록 이름을 지어라 발음하기 쉬운 이름을 사용하라 검색하기 쉬운 이름을 사용하라 인코딩을 피하라 자신의 기억력을 자랑하지 마라 - 전문가 프로그래머는 명료함이 최고라는 사실을 이해한다. 그들은 자신의 능력을 좋은 방향으로 사용해 남들이 이해하는 코드를 내놓는다. 클래스 이름 - 클래스 이름과 객체 이름은 명사나 명사구가 적합하다. 동사는 사용하지 않는다. 메서드 이름 - 메서드 이름은 동..

노개북 클린코드(clean code) 2022.02.19

오늘 읽은 범위 추천사 0.들어가면서 1. 깨끗한 코드 책에서 기억하고 싶은 내용을 써보세요. 품질은 하늘에서 뚝 떨어진 위대한 방법론이 아니라 사심 없이 기울이는 무수한 관심에서 얻어진다. 코드에 정직하고, 코드의 상태에 관하여 동료들에게 정직하고, 무엇보다도, 자기 코드에 대해서 자신에게 정직하라는 뜻이다. 연습해 연습! 오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요 그동안 일을 하면서 작성한 코드들은 내 자신에게 정직한 코드인가? 라는 생각이 들었다. 동작이 되는가에 초점이 맞춰진..개선따윈 하지 않은 지금 당장 내 눈앞에서만 돌아가는 코드만 작성해왔다. 그래서 위 세 문장이 가장 기억에 남는다. 한번 작성하고 잊어버린 코드들. 스스로 생각하기에도 만족하지 못하고 이정도 오류는 오류도 아니지..