전체 글

https://github.com/dhmin5693 dhmin5693@naver.com
Clean Code를 읽고 내용을 정리한 것입니다. 책 구매하러 가기 시스템 복잡성은 죽음이다. 개발자에게서 생기를 앗아가며, 제품을 계획하고 제작하고 테스트하기 어렵게 만든다. By Ray Ozzie (Microsoft CTO) 도시 현대의 도시는 온갖 세세한 사항들을 나누어서 맡는 식으로 관리되고 있다. 수도 관리 (수도공사) 치안 관리 (경찰) 재난 (소방서) 전기 관리 (한전) ... etc 도시를 소스코드로 작성한다고 하면 도시를 구성하는 세부 사항들이 추상화/모듈화된 것으로 볼 수 있다. 큰 그림을 이해하지 못해도 작은 단위의 기능들은 잘 동작하기 때문에 효율적인 것이다. 관심사 분리 살펴보고자 하는 관심사는 시작 단계이다. public class Singleton { public static..
Clean Code를 읽고 내용을 정리한 것입니다. 책 구매하러 가기 클래스 클래스 구성 자바 표준은 클래스를 아래의 순서대로 구성하라고 권고하고 있다. static public 상수 static private 변수 private 변수 자바에서 비정적 public 변수가 필요한 일은 거의 없다. public method private method는 호출하는 public method 함수 뒤에 넣는다. 추상화 단계를 순차적으로 내려가도록 지키면 신문 기사처럼 가독성이 좋은 코드를 작성할 수 있다. 클래스의 크기 클래스는 작아야 한다. 메소드는 줄 수로 크기를 측정하지만 클래스는 맡은 책임의 개수로 크기를 측정한다. 클래스의 책임에 관련된 이야기는 [OOP 5대 원칙] 관련 내용을 찾아보자. public c..
Clean Code를 읽고 내용을 정리한 것입니다. 책 구매하러 가기 단위 테스트 TDD의 법칙 실패하는 단위 테스트를 작성할 때까지 실제 코드를 작성하지 않는다. 컴파일은 실패하지 않으면서 실행이 실패하는 정도로만 단위 테스트를 작성한다. 현재 실패하는 테스트를 통과할 정도로만 실제 코드를 작성한다. 위의 규칙을 따르면 매일 굉장히 많은 테스트 코드가 산출물로 작성될 것이다. SW 오류를 조금 더 정확하게 짚어낼 수 있겠지만 방대한 테스트 코드는 관리 문제를 유발하기도 한다. 깨끗한 테스트 코드 유지하기 지저분한 테스트 코드는 없는 것보다 못할 수도 있다. 테스트 코드가 굉장히 많이 작성되어 있는데 SW의 스펙이 변경된다면 실제 코드도 변경해야 한다. 실제 코드가 변경되면 테스트 코드는 반드시 같이 변..
Clean Code를 읽고 내용을 정리한 것입니다. 책 구매하러 가기 주석 코드를 표현하는 대표적인 수단 너무 과신하진 말자. 주석은 오래될수록 코드에서 멀어지며 전혀 다른 의미를 갖게될 수 있다. 주석은 나쁜 코드를 보완하지 못한다. 주석을 추가하는 일반적인 이유는 명백하다. 코드 품질이 나쁘기 때문이다. 주석을 달기보다는 깔끔한 코드를 작성하기 위해 노력하자. 코드에 의도를 담아보자 대다수의 코드에는 개발자의 의도를 충분히 담을 수 있다. // 1) if (employee.flags & DEV_FLAG) { // Do something... } // 2) if (employee.isDeveloper()) { // Do something... } 위의 코드에서 1과 2 중 어느 코드에 개발자의 의도가 ..
Clean Code를 읽고 내용을 정리한 것입니다. 책 구매하러 가기 1. 작게 만들어라 함수는 100줄을 넘기지 마라. 만약 100줄이 넘어가는 함수가 있다면 따로 함수로 분리하라. 그래야 읽고 이해하기 쉬워진다. 2. 한 가지만 해라. 아래의 함수는 몇 가지를 수행하는 것일까? 1) 페이지가 테스트 페이지인지 판단한다. 2) 맞다면 설정 페이지/해제 페이지를 넣는다. 3) 페이지를 렌더링한다. 함수 이름 아래에서 추상화 수준이 한 단계인 행위를 수행하면 한 가지 동작을 하는 것이다. 한 가지의 개념을 추상화 수준에서 생각하고 일관되게 작성하도록 한다. 3. 서술적인 이름을 사용하라. 함수 이름을 보고 짐작한 동작이 그대로 작동하는 이름이 좋다. ex) isTestable, setup 4. 함수 매개변..
Clean Code를 읽고 내용을 정리한 것입니다. 책 구매하러 가기 1. 의도를 분명히 밝혀라 boolean flag; // 무슨 의미? boolean isDarkMode; boolean isLightMode; flag라는 이름엔 아무 의미가 담겨있지 않다. isDarkMode / isLightMode처럼 의도가 드러나는 이름을 사용해야 코드 이해와 변경이 쉽다. 2. 그릇된 정보를 피하라 1) 개발자에게 List는 자료구조를 의미한다. 실제로 List가 아닌 것들은 List라는 의미를 붙이지 않는 편이 좋다. 2) 흡사한 이름을 사용하지 않는다. 일관성이 떨어지는 표기법은 오해를 낳는다. List/Queue 등 자료구조나 기술을 의미하는 단어는 개발자에게 친숙하다. 실제로 대중적인 기술명을 변수 이름..
· IT 도서
https://repo.yona.io/doortts/blog/issue/1 "TDD 실천법과 도구" 책 전체를 PDF 공개합니다. 2010년 6월에 출간되었던 "TDD 실천법과 도구" 책 전체를 PDF로 공개합니다. 책소개: http://naver.me/GaYZCDjD Updated --- - [1장 - 테스트주도개발 Test Driven Development](https://repo.yona.io/doortts/blog/issue/2) - 18.07.18 - [2장 - doortts/blog repo.yona.io 작성자 분께서 책이 절판되었다고 PDF로 배포하셨다. 틈틈히 들어가서 봐야겠다.
1월이 다 지나가는 지금, 2019년을 돌아보고자 한다. 2019년 2019년의 목표가 몇 가지 있었다. 언제나 궁극적인 목표는 행복한 삶이다. 다만 2019년엔 잘못 보냈다고 생각했던 2018년을 바로잡고자 했던 마음이 컸다. 그래서 여러가지를 도전했다. 토익 스피킹 토익 스피킹은 그리 어려운 주제까진 아니었다. 한 달 남짓 공부하고 필요한 만큼의 등급을 따냈다. 올해 여유가 남는다면 오픽도 도전해보고 싶다. 삼성 알고리즘 테스트 B형 5-6월 경 준비를 시작했다. 혼자는 어려울 것이라 판단하여 오프라인 스터디 그룹을 만들고 모의 문제를 만들고 풀이하는 방법으로 공부했다. A형은 쉽게 딸 수 있는 것에 비해 B형의 악명은 유명한 편이다. B형 시험은 문제에서 요구하는 API를 작성해야 하며 문제에 모든..
감동이중요해
티끌모아 산을 쌓아보자