노개북 2기 1일차 > - 도서 인증 > - 클린 코드, Robert C. Martin 시작하며 노개북 2기 에서 클린 코드 한달 읽기 챌린지를 시작했다. 반강제적 동기를 찾은 기념 및 미션 수행 겸 작성하는 내맘대로 요약 정리글을 써보겠다. 참여 목표 완주 🏃♀️🚩 지식 창고 넓히기 오늘부터 3주간 시작!
노개북 2기 2일차 > - 추천사(pp.xxii~xxix) > - 1장 깨끗한 코드(pp.2~20) 요약 및 느낀 점 > p.2 > 기계가 실행할 정도로 상세하게 요구사항을 명시하는 작업, 바로 이것이 프로그래밍이다. 이렇게 명시한 결과가 바로 코드다. > p.3 > 창의력과 직관을 보유한 우리 인간조차도 고객의 막연한 감정만 갖고는 성공적인 시스템을...
노개북 2기 3일차 > - 2장 의미 있는 이름(pp.22~38) > > 조언 목록과 내용을 내맘대로 요약 발췌하고 감상평을 짧게 정리함 요약 및 느낀 점 의도를 분명히 밝혀라 > p.22 > 좋은 이름을 지으려면 시간이 걸리지만 좋은 이름으로 절약하는 시간이 훨씬 더 많다. 변수/함수/클래스의 존재 이유, 수행 기능, 사용 방법 등이 명확히 드러나...
노개북 2기 4~5일차 > - 3장 함수(pp.40~65) 요약 및 느낀 점 > p.42 > 함수를 만드는 첫째 구칙은 '작게!'다. 함수를 만드는 둘째 규칙은 '더 작게!'다. 중첩구조가 생길만큼 함수가 커지면 안된다. 들여쓰기 수준은 2단을 넘어가면 안된다. > p.44 > 함수는 한 가지를 해야 한다. 그 한 가지를 잘 해야 한다. 그 한 가지...
노개북 2기 6-7일차 > - 4장 주석(pp.68~94) 요약 및 느낀 점 > p.68 > 주석은 기껏해야 필요악이다. > p.69 > "이런! 주석을 달아야겠다!" 아니다! 코드를 정리해야 한다! > p.70 > 많은 경우 주석으로 달려는 설명을 함수로 만들어 표현해도 충분하다. 회사에서 일할 때 함수의 길이가 길어지면 그 함수의 역할과 어떤 ...
노개북 2기 8일차 > - 5장 형식 맞추기(pp.96~116) 요약 및 느낀 점 > p.96 > 코드 형식은 중요하다! ... 코드 형식은 의사소통의 일환이다. 의사소통은 전문 개발자의 일차적인 의무다. 그냥 돌아가기만 하는 코드가 아니라 형식에 맞는, 가독성이 좋은 코드를 쓰는 것이 장기적으로 훨씬 중요하다. 적절한 행 길이 유지하기 일반적으로...
노개북 2기 9일차 > - 6장 객체와 자료구조(pp.118~128) 요약 및 느낀 점 자료 추상화 구현을 감추기 위해서는 추상화가 필요하다. 형식만 조회 함수, 설정 함수로 변수를 다루는 건 의미 없다. 추상 인터페이스를 제공해서 사용자가 구현을 몰라도 자료의 핵심을 조작할 수 있어야 한다. 자료/객체 비대칭 객체는 추상화 뒤로 자료를 숨기고 함...
노개북 2기 10일차 > - 7장 오류 처리(pp.130~142) 요약 및 느낀 점 오류 발생시 예외를 던지면 호출자 코드가 깔끔해지고 오류 확인 처리를 잊어버릴 확률도 낮아진다. try-catch-finally문을 쓰면 try 블록의 트랜잭션 범위와 catch 블럭이 나뉘면서 범위 내의 상태 정의가 쉬워진다. 미확인 예외 사용하기 catch 블럭에서 ...
노개북 2기 16~17일차 > - 9장 단위 테스트(pp.154~169) 요약 및 느낀 점 TDD 법칙 3가지 실패하는 단위 테스트를 작성할 때까지 실제 코드를 작성하지 않기 컴파일은 실패하지 않으면서 실행이 실패하는 정도의 단위 테스트 작성 현재 실패하는 테스트를 통과할 정도로만 실제 코드 작성 지저분한 테스트 코드는 테스트를 안하느니만 못하다. ...
노개북 2기 19~20일차 > - 10장 클래스(pp.172~191) 요약 및 느낀 점 클래스 정의 순서 - 표준 자바 컨벤션 정적 공개 상수 - 정적 비공개 변수 - 비공개 인스턴스 변수 - 공개 함수 - 비공개 함수(자신을 호출한 공개 함수 직후) 클래스 크기 작게, 더 작게! SRP 원칙 지키기 작은거 여러개나 큰거 몇개나 돌아가는 부품수...
노개북 2기 완주 이후 Extra(공식 스케줄 외 나머지 부분 정리) > - 11장 시스템(pp.194~214) 요약 및 느낀 점 시스템 제작(construction)과 시스템 사용(use) 분리 준비과정과 런타임 로직을 분리해야 함 시작 단계에서 관심사(concern)를 분리 초기화 지연(lazy initialization), 계산 지연(lazy e...
노개북 2기 완주 이후 Extra > - 13장 동시성(pp.226~244) 요약 및 느낀 점 > p.266 > 동시성과 깔끔한 코드는 양립하기 어렵다. 아주 어렵다. 동시성 사용 이유 결합을 없애서 무엇과 언제를 분리 예) servlet 컨테이너는 동시성을 부분적으로 관리함 -> 웹 서버는 요청이 들어올 때 비동기로 servlet 실행 -> 원...