TIL (Today I Learned) 날짜 2022.05. 11(수) 오늘 읽은 범위 10장 클래스 책에서 기억하고 싶은 내용을 써보세요. 소프트웨어를 그저 동작하게 만들 뿐만 아니라 깨끗하게 만들어야 한다. 좋은 클래스를 만들기 위한 질문 2가지 클래스의 크기가 충분히 작은가 함수와 마찬가지로 클래스도 '작게' 설계하는 게 기본 규칙이다. 간결한 이름이 떠오르지 않는다? -> 클래스 크기가 너무 크다는 뜻! 책임이 적당한가 모호한 이름이 떠오른다? -> 클래스 책임이 많다는 뜻! 기억해야 할 클래스 규칙 캡슐화 유지하기 캡슐화를 풀어주는 결정은 언제나 최후의 수단이다. 단일 책임원칙(SRP : Single Responsibility Principle) 클래스나 모듈을 변경할 이유가 단 하나뿐이어야 한..
TIL (Today I Learned) 날짜 2022.05.08 (일) 오늘 읽은 범위 8장 경계 / 9장 단위 테스트 책에서 기억하고 싶은 내용을 써보세요. 8장 경계 외부 코드 사용하기 의도가 분명히 드러나지 않아서 깨끗한 코드라 보기 어렵다. Sendors 클래스는 설계 규칙과 비즈니스 규칙을 따르도록 강제할 수 있다. 경계 인터페이스 이용할 때는 이를 이용하는 클래스나 클래스 계열 밖으로 노출되지 않도록 주의한다. 경계 살피고 익히기 우리가 사용할 코드(패키지)를 테스트하는 게 바람직하다. 패키지 사용할 때 과정 보통 하루나 이틀 문서를 읽으며 사용법을 결정한다. 코드를 작성해 라이브러리가 예상대로 동작하는지 확인한다. 학습 테스트 간단한 테스트 케이스를 작성해 외부 코드를 익히는 방법 통제된 환..
TIL (Today I Learned) 날짜 2022.05.03 (화) 오늘 읽은 범위 6장 객체와 자료 구조 책에서 기억하고 싶은 내용을 써보세요. 구현을 감추려면 추상화가 필요하다. 추상 인터페이스를 제공해 사용자가 구현을 모른 채 자료의 핵심을 조작할 수 있어야 진정한 의미의 클래스다. 추상화는 정보가 어디서 오는지 전혀 드러나지 않는다. 개발자는 객체가 포함하는 자료를 표현할 가장 좋은 방법을 심각하게 고민해야 한다. 자료 구조를 사용하는 절차 구조의 특징 별다른 동작 없이 자료를 노출한다. 기존 자료 구조를 변경하지 않으면서 새 함수를 추가하기 쉽다. 기존 함수에 새로운 자료 구조를 추가하기 어렵다. 추가하려면 모든 함수를 고쳐야 한다. 새로운 함수가 필요한 경우에 적합 객체 지향 코드의 특징 ..
TIL (Today I Learned) 날짜 2022.05.02 (월) 오늘 읽은 범위 5장 형식 맞추기 책에서 기억하고 싶은 내용을 써보세요. 읽기 좋은 코드의 특징 코드가 일관적이고 질서 정연하다. 전문가가 짰다는 인상을 준다. 읽기 좋은 코드가 되려면 코드 형식을 맞추기 위한 간단한 규칙을 정하고 모두가 그 규칙을 따라야 한다. 팀으로 일한다면 팀이 합의해 규칙을 정하고 그 규칙을 따라야 한다. 규칙이 필요한 이유 오늘 구현한 기능이 다음 버전에서 바뀔 확률이 아주 높다. 그래서 코드의 가독성은 앞으로의 작업에 엄청난 영향을 준다. 원래 코드는 사라질지라도 개발자의 스타일과 규율은 사라지지 않는다. 코드 짤 때 고려하면 바람직한 규칙 목록 적절한 행 길이 유지하기 신문기사처럼 쭉 읽으며 내려가도록 ..
TIL (Today I Learned) 날짜 2022.04.29 (금) 오늘 읽은 범위 4장 주석 책에서 기억하고 싶은 내용을 써보세요. 경솔하고 근거 없는 주석은 코드를 이해하기 어렵게 만든다. 코드로 의도를 표현할 수 있다면 주석은 거의 필요하지 않다. 주석을 달 때마다 자신에게 표현력이 없다는 사실을 푸념해야 마땅하다. 주석이 문제가 되는 이유는 주석을 유지/보수하는 게 현실적으로 불가능하기 때문이다. 코드는 개선을 통해서 이리저리 옮겨지지만 주석이 언제나 코드를 따라가는 것은 아니다. 주석을 가능한 줄이도록 꾸준히 노력해야 한다. 코드에 주석을 추가하는 일반적인 이유는 코드 품질이 나쁘기 때문이다. 코드에 의도를 표현하라. 그렇다면 좋은 주석은 어떤 주석일까? 정보를 제공하는 주석 주석이 있어 알..
TIL (Today I Learned) 날짜 2022.04.27 (수) 오늘 읽은 범위 3장 함수 책에서 기억하고 싶은 내용을 써보세요. 함수는 작을수록 더 좋다. 중첩 구조가 생길 만큼 함수가 커져서는 안 된다. 함수에서 들여 쓰기 수준을 1단이나 2단을 유지해야 함수 읽고 이해하기가 쉬어진다. 함수는 한 가지만 해야 한다. 추상화하는 이유 큰 개념(함수 이름)을 다음 추상화 수준에서 여러 단계로 나눠 수행하기 위한 목적 함수가 ‘한 가지’만 하는지 판단하는 방법 의미 있는 이름을 가진 다른 함수를 추출할 수 있는가? 그렇다면 함수가 여러 작업을 하고 있다는 뜻이다. 함수 내 모든 문장의 추상화 수준이 동일해야 한다. 추상화 수준을 섞으면 코드를 읽는 사람은 이게 근본 개념인지 세부사항인지 구분하기 어..