CS공부(개념)/독후감 7

클린코드 7주차: 점진적인 개선

230918클린코드7주차: 14장 점진적인개선 이번 주차에는 14장 "점진적인 개선"을 읽었습니다. 처음에 저자는 명령행 인수 분석을 위한 깔끔한 클래스인 "args"를 보여주고, 깔끔한 클래스가 어떤 지저분한 모양새로 시작헀으며, 깔끔해질 때까지 거친 과정을 볼 수 있었습니다. 14장 점진적인 개선 명령행 인수부터 막혔습니다. 명령행 인수가 무엇인지 몰라서 arg 클래스가 어떤 역할을 하는 것인지 이해하기 어려웠습니다. 찾아보니 자바에서는 한 파일의 코드가 "public void main"으로 선언된 클래스로 시작하고, 해당 main 클래스의 초기화 인수를 편집기나 여러 환경 설정도구를 통해 넣을 수 있다고 합니다. 그 인수가 바로 명령행 인수입니다. public static void main(Stri..

클린코드 6주차: SerialDate 리팩터링, 냄새와 휴리스틱

230912 클린코드 6주 차 클린코드 북스터디를 하며 작성한 독후감 겸 요약글입니다. 이번주에는 16장 Serial Date 리팩터링, 그리고 17장 냄새와 휴리스틱을 읽었습니다. 16장에서는 JUnit에 이어 또 다른 라이브러리 코드를 분석 및 개선하고, 17장은 지금까지 책에서 다룬 기법을 총정리합니다. 이제 책의 거의 마지막 부분을 달려가고 있네요. 최근에 리액트 스터디를 시작해서, 책에서 읽은 기법들을 하나하나 검토하고 개선하여 적용해 볼 생각에 힘이 납니다. 16장 Serial Date 리팩터링 JUnit 들여다보기에 이어서 또 다른 클래스를 리팩터링 하는 쳅터입니다. 리팩터링 대상: David Gilbert - SerialDate Class https://www.jfree.org/jcommo..

클린코드 5주차: 동시성, 그리고 JUnit

230904 클린코드 5주차 클린코드 북스터디를 하며 작성한 독후감 겸 요약글입니다. 5주 차 동안 13장인 "동시성"과 15장 "JUnit 들여다보기"에 대해 읽었습니다. 13장 동시성 동시성 개념과, 동시성 코드를 깨끗하게 작성하는 방법을 이야기합니다. 저는 이 책이 일종의 디자인패턴/소프트웨어 공학적 지식을 다루는 것으로만 알았는데 OS개념이라고 할 수 있는 동시성에 대한 설명이 나와 반갑기도 하고 신기하기도 했습니다. 책을 읽고 보니 사실 동시성이야말로 클린코드에서 다루어야 할 부분이더군요. 일반 싱글 스레드 프로그램보다 코드가 복잡하고, 기상천외한 오류가 많이 발생하기 때문입니다. 이 장의 직접적인 코드예제는 많이 적어서 아쉬웠지만 그래도 동시성 개념에 대한 공부 방향과 테스트 코드 작성 방법에..

클린코드 4주차: 단위테스트, 시스템, 그리고 창발성

230829 클린코드 4주 차 클린코드 북스터디를 하며 작성한 독후감 겸 요약글입니다. 로버트 C. 마틴- 클린코드 이번주차에는 9장 단위테스트, 11장 시스템 그리고 12장 창발성 쳅터를 읽었습니다. 테스트 코드작성 행위에 대한 개념이 바뀌었습니다. 그동안은 테스트 코드라는 도구의 장점에 대해 점차 알게 되었다면, 이번 주에는 테스트 코드라는 것을 바라보는 다른 시각을 갖게 되었습니다. 현업에서 일하는 스터디원분들과 나눈 대화와 책의 내용을 통해 테스트 코드는 단순히 유용한 도구가 아니라, 개발과정에서 절대 빠질 수 없는 필수요소라고 생각하게 되었습니다. 그렇게 생각하는 이유는 다음과 같습니다. 1. 테스트 코드는 프로그램의 기획서나 설계도의 역할을 합니다. 한번 완성된 테스트 코드는 특별한 사건이 없..

클린코드 3주차: 예외처리, 경계 그리고 클래스

230822 클린코드 3주 차 클린코드 북 스터디를 하며 작성한 독후감 겸 요약글입니다. 7장 오류처리 오류와 예외의 구분을 알게 되었습니다. 저는 이전까지는 오류와 예외를 모두 오류로 간주하고 있었습니다. 이전에 생각하던 오류의 종류 프로그램을 중단시키는 오류 의도하지 않은 방식으로 실행되는 오류 두 번째 항목을 예외라고 지칭하는 것이었습니다. 잘못된 실행을 감지하고 처리하는 것을 try-catch 블록을 통한 예외 처리라고 합니다. 이전에는 기존 로직에서 오류가 발생하면, 원래 실행시킬 코드를 끊고, 다른 코드를 처리하므로 그 코드가 예외코드라고 생각했었습니다. 명확한 정의를 알게 되어 기분이 좋습니다. 책 내용으로 들어가자면, 마틴 아저씨는 오류를 예외로 처리해야 한다고 권고하십니다. 아마도 오류가..

클린코드 2주차: 주석, 형식맞추기, 그리고 객체와 자료구조

클린코드 북 스터디를 하며 작성한 독후감 겸 요약글입니다. 이번주에는 4장 주석, 5장 형식 맞추기, 그리고 6장 객체와 자료구조를 읽고 이야기를 나누기로 했습니다. 4장 주석 첫인상 4장은 신선한 쳅터였습니다. 저는 주석은 코드가 아니라고 생각하고 있었습니다. 그래서 좋은 주석을 작성하는 법에대한 쳅터가 상당히 독특하게 다가왔습니다. 주석은 기껏해야 필요악이다. 저자는 주석을 개발자가 코드로 정확한 의도를 표현하는 것에 대해 실패했을 때 사용하는 필요악으로 묘사합니다. 주석은 거짓말을 한다. 개발자가 코드를 작성할 때 실수를 하는 것처럼, 주석을 작성할 때에도 으레 실수를 합니다. 하지만 잘못 쓰인 주석을 테스트할 수 있는 방법은 없으므로 주석은 때로 거짓말을 하거나 혼란을 줍니다. 주석은 의무적으로 ..

클린코드 1주차: 깨끗한 코드, 의미있는이름, 그리고 함수

클린코드 북 스터디를 하며 작성한 독후감 겸 요약글입니다. 1장 깨끗한 코드 나쁜 코드의 안 좋은 점을 통해 클린코드의 필요성을 역설하고 그 특징을 묘사합니다. 책 제목이 클린 코드인 만큼 주의 깊게 읽었습니다. 나쁜 코드로 치러야 하는 대가 더러운 코드의 누적은 점진적으로 업무 효율을 하락시키고, 종국에는 잘 성장하던 서비스가 문을 닫는 이유가 될 수 있습니다. 코드를 깔끔하게 작성하는 것은 개발자의 만족감을 위한 요소가 아닌 프로젝트의 생존 을 위한 행위라는 인상을 받았습니다. 깨끗한 코드란? 함수와 클래스들이 한 가지 일을 잘하는 코드 읽고 이해하기 쉬운 코드 기능 추가 및 수정이 쉬운 코드 시간을 들여 정리한 코드 중복이 없고, 추상화가 잘되어있는 코드 각 부분이 짐작했던 기능을 제대로 수행하는 ..