개발자북클럽 10

노마드 개발자 북클럽 (클린코드: 클래스)

책에서 기억하고 싶은 내용. 클래스는 작아야 한다. 클래스가 맡은 책임은 하나여야한다. 클래스는 확장에 용이하고 수정에 폐쇄적으로 만들어야한다. 읽고난 후의 생각. 매우 따분하고 지루한 파트다. 애초에 지저분하게 코딩하는 것을 싫어해서인지 소개된 글의 내용은 너무 당연하게 느껴졌다. 사실, 기술적인 부분이 있을 줄 알았으나 그저 원론적인 내용이라 생각이 들었고 시간 아깝다고 느꼈다. 클래스라는 것 자체가 왜 존재하는지 조금만 생각해보면 지저분하게 코딩 할 이유도 없다. 자바를 처음 배울 때 클래스부분에서 강조됐던 내용이 결합도와 응집력이다. 하지만 따분하고 지루하지만 똑같은 얘기를 계속 하는 것은 그만큼 중요하기 때문이니 항상 인지하고 있어야 한다고 생각한다. 결론은 영어를 공부하면 웬만한 문제는 전부 ..

노마드 개발자 북클럽 (클린코드: 단위테스트)

책에서 기억하고 싶은 내용. 학습 테스트에 드는 비용은 없다. 어쩄든 API를 배워야 하므로...... 오히려 필요한 지식만 확보하는 손쉬운 방법이다. 학습 테스트는 이해도를 높여주는 정확한 실험이다. 깨끗한 테스트 코드를 만들려면? 세 가지가 필요하다. 가독성, 가독성, 가독성. 어쩌면 가독성은 실제 코드보다 테스트 코드에 더더욱 중요하다. 이런 테스트 API는 처음부터 설계된 API가 아니다. 잡다하고 세세한 사항으로 범벋괸 코드를 계속 리팩터링하다가 진화된 API다. 실제 코드를 점검하는 자동화된 단위 테스트 슈트는 설계와 아키텍처를 최대한 깨끗하게 보존하는 열쇠다. 테스트는 유연성, 유지보수성, 재사용성을 제공한다. 테스트 케이스가 있으면 변경이 쉬워지기 때문이다. 읽고난 후의 생각. TDD에 대..

노마드 개발자 북클럽 (클린코드: 오류처리)

책에서 기억하고 싶은 내용. 오류 코드보다 예외를 사용하라. Try-Catch-Finally 문부터 작성하라. 미확인 예외를 사용하라. 예외에 의미를 제공하라. 호출자를 고려해 예외 클래스를 정의하라. 정상 흐름의 정의하라. null을 반환하지 마라. null을 전달하지 마라. 읽고난 후의 생각. Try-Catch-Finally 문은 에디터가 오류라고 알려줘서 써야한다고 하기 전까지는 직접 써본 적이 없었다. 그리고 오류를 '던진다'라는 말이 감으로는 알았지만 왜 그렇게 표현을 하는지는 알지 못했다. 메소드 명에 throw를 쓰면 어떤 처리가 되는건지 원론적인 이유만 알고 있었다. 개발할 때는 의식하지못하고 그려려니 썼던 코드들에 대한 궁금증이 드는 파트였던 것 같다. 그러나 이 궁금증도 지금 연차가 ..

노마드 개발자 북클럽 (클린코드: 객체와 자료구조)

책에서 기억하고 싶은 내용. 활성 레코드는 자료구조로 취급한다. 비즈니스 규칙을 담으면서 내부 자료를 숨기는 객체는 따로 생성한다. 객체는 동작을 공개하고 자료를 숨긴다. 자료구조는 별다른 동작 없이 자료를 노출한다. 읽고난 후의 생각. SI로 자바개발을 메인 기술로 일하고있는데도 이번 파트는 제대로 이해가 되지 않았다. 그저 막연하게 개발만 해왔고 깊이있는 공부를 하지 않은 것이 원인이라고 생각한다. 나는 기술에 대해 깊이있는 공부를 하지 않은채로 경력이 쌓여가는 현상을 '물경력' 이라고 말하기로 했다. 1~3년차에 끝냈어야할 JAVA 심화과정(?)을 늦은 지금에서야 공부를 시작한다. 궁금한 내용 또는 이해되지 않는 내용 메모. 없음.

노마드 개발자 북클럽 (클린코드: 형식 맞추기)

책에서 기억하고 싶은 내용.맹목적인 형식 맞추기 보다는 형식을 맞추는 목적에 초점 코드 형식은 의사소통의 일환으로 생각하고 이에 맞는 형식을 가지고 적용 오늘 구현한 기능이 다음 버전에서 바뀔 확률은 아주 높음읽고난 후의 생각.형식 맞추기는 다른사람 편하게 보라고 지키기보단 내가 편할려고 지키는 경우가 더 많았다. 특히 '형식맞추기'는 HTML의 태그관계를 파악할 때 정말 중요하게 적용된다. 가로세로 줄정리가 되어있지 않다면 눈으로 일일이 태그들을 점검하는 수 밖에 없다. 이 작업은 단순하지만 매우 피곤한 작업임을 해보면 안다. 문장중에 가장 눈에 들어오는 문장은 '오늘 구현한 기능이 다음 버전에서 바뀔 확률이 아주 높음' 이다. 레거시코드를 읽다보면 과거에는 어떻게 개발을 해왔는지 알 수 있는데 근래의..

노마드 개발자 북클럽 (클린코드: 주석)

책에서 기억하고 싶은 내용.주석은 기껏해야 필요악이다. 코드를 잘 짜면 주석은 거의 필요 없다 부정확한 주석은 아예 없는 주석보다 훨씬 더 나쁘다. 주석은 함수나 변수로 표현할 수 있다면 달지 않는 것이 원칙이다.읽고난 후의 생각.주석에 대한 나의 생각은 연차별로 다르다. 1~3년차정도에는 주석을 쓰지 않아서 많은 문제가 발생했었는데 5년차 이후부터는 오히려 주석을 줄이고 있다. 그래서 요즘은 크게 3단계로 나눠서 코딩을한다. 1단계는 생각이 나는대로 코딩을하고 주석을 다는 것 2단계는 적어둔 주석을 보고 코드를 줄이는 것 3단계는 함수명이나 변수명으로 코드를 설명하도록 명칭을 수정하는 것. 물론 급하면 3단계는 종종 생략한다. 하지만 이 단계별 습관이 몸에 익혀질수록 전체 흐름이 기억에 더 잘 남게되고..

노마드 개발자 북클럽 (클린코드: 함수)

책에서 기억하고 싶은 내용.소프트웨어를 짜는 행위는 여느 글짓기와 비슷하다. 논문이나 기사를 작성할 때는 먼저 생각을 기록한 후 읽기 좋게 다듬는다. 초안은 대개 서투르고 어수선하므로 원하는 대로 읽힐 때까지 말을 다듬고 문장을 고치고 문단을 정리한다. (P.61)읽고난 후의 생각.함수라는 파트를 아주 잘 정리한 한 문장이라 생각한다. 오늘 회사에서 프로젝트에 필요한 공통기능인 순수 자바스크립트로 DB를 이용한 '버튼 공통모듈화' 작업을 시작했다. 하지만 성급한 마음만 앞서다보니 간단한 설계하나 제대로 못한 채 퇴근 30분전까지 아무 성과가 없었다. 위의 잘 정리된 한 문장을 잘 곱씹어볼 때인 것 같다. 궁금한 내용 또는 이해되지 않는 내용 메모.없음

노마드 개발자 북클럽 (클린코드: 의미 있는 이름)

책에서 기억하고 싶은 내용.의도를 분명히 밝혀라 그릇된 정보를 피하라 의미 있게 구분하라 발음하기 쉬운 이름을 사용하라 검색하기 쉬운 이름을 사용하라 인코딩을 피하라 자신의 기억력을 자랑하지 마라 기발한 이름은 피하라 한 개념에 한 단어를 사용하라 말장난을 하지 마라 의미 있는 맥락을 추가하라 불필요한 맥락을 없애라메서드 이름은 동사나 동사구가 적합하다. (p.32)클래스 이름과 객체 이름은 명사나 명사구가 적합하다. (p.32)코드를 읽을 사람도 프로그래머라는 사실을 명심한다. (p.34)\좋은 이름을 선택하려면 설명 능력이 뛰어나야 하고 문화적인 배경이 같아야 한다. (p.38)읽고난 후의 생각.2장의 소제목들은 하나도 놓칠게 없다. 코딩을 그만둘때까지 뼈에 새길 내용들이라고 생각한다. 코딩은 협업을..

노마드 개발자 북클럽 (클린코드: 추천사 ~ 1장. 깨끗한 코드)

책에서 기억하고 싶은 내용. 시간을 들여 깨끗한 코드를 만드는 노력이 비용을 절감하는 방법일 뿐만 아니라 전문가로서 살아남는 길이라는 사실을 인정하리라 (p.6) 나쁜 코드의 위험을 이해하지 못하는 관리자 말을 그대로 따르는 행동은 전문가답지 못하다. (p.3) 기한을 맞추는 유일한 방법은, 그러니까 빨리 가는 유일한 방법은, 언제나 코드를 최대한 깨끗하게 유지하는 습관이다. (p.7) 논리가 간단해야 버그가 숨어들지 못한다. 의존성을 최대한 줄여야 유지보수가 쉬워진다. (p.9) 중복을 피하라. 한 기능만 수행하라. 제대로 표현하라. 작게 추상화 하라. (p.14) 새 코드를 짜면서 우리는 끊임없이 기존 코드를 읽는다. 비율이 이렇게 높으므로 읽기 쉬운 코드가 매우 중요하다. (p.18) 보이스카우트 ..