개발자 99% 커뮤니티에서 수다 떨어요!
TIL (Today I Learned)
2022.02.19
오늘 읽은 범위
추천사 ~ 1장(깨끗한 코드)
책에서 기억하고 싶은 내용을 써보세요.
정리 혹은 정렬 - 적절한 명명법 등
정돈 또는 단정함 - 코드는 누구나 예상한 위치에 있어야 한다.
청소 또는 정리 - 과거 이력이나 이미 주석 처리된 코드의 제거
청결 또는 표준화 - 그룹 내의 모두가 청소 방식을 동의하고 작업하는 것
생활화 또는 규율 - 관례를 따르고, 자기 작품을 돌아보고, 기꺼이 변경하는 규율을 만들라
하나의 잘 쓴 문장처럼 느껴지고 어렵지 않게 읽히는 코드
코드는 요구사항을 표현하는 언어이다
코드는 하나의 문장처럼 보일 수 있는 가독성이 필요하다
오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요
항상 코드를 공부하고 만들어보고 짜오면서 과연 내가 한 코드가 괜찮은걸까, 남들과 다르게 꼼수를 써서 만들어진건 아닐까, 정확히 왜 이렇게 되는지도 알지 못하면서 그저 결과만 맞다면 그만이라고 생각하지 않았나, 와 같은 생각들을 하게 되었다.
지금까지 나는 그저 주어진 상황과 요구 조건을 이행하여 결과를 출력하는것이 코드의 전부라고 생각했고, 최근까지도 그런 식의 접근으로 코딩을 했다.
앞으로 이 책을 보면서 얻게 되는 깨끗한 코드와 관련된 내용들을 모두 복기해보며 나의 코드에 대입해서 이해해보려 한다. 설사 그럴만한 코드가 없다고 하더라도 내가 이 책을 통해 프로그래머로써 잘못 해왔던 것들, 실수들을 더이상 하지 않을 수 있도록 나 스스로가 나에게 엄격해지기로 하겠다.
궁금한 내용이 있거나, 잘 이해되지 않는 내용이 있다면 적어보세요.
테스트 주도 개발 : 요구사항을 검증하는 자동화된 테스트 케이스를 작성한 뒤, 테스트 케이스를 통과하기 위힌 최소한의 코드를 생성하여 작성한 코드를 표준에 맞도록 리팩토링 하는 것.
르블랑의 법칙 : 나중은 절대 돌아오지 않는다.
SRP(Single Responsibility Principle) 단일 책임 원칙 : 모든 클래스는 하나의 책임만 가지며, 클래스는 그 책임을 완전히 캡슐화해야 한다.
OCP(Open Closed Principle) 개방-폐쇠 원칙 : 소프트웨어 개체는 확장에 대해 열려 있어야 하고, 수정에 대해서는 닫혀 있어야 한다.
DIP(Dependency Inversion Principle) 의존성 역전 원칙 : 상위 모듈은 하위 모듈에 의존해서는 안된다, 추상화는 세부 사항에 의존해서는 안된다
즉, 의존 관계를 맺을 때 변화하지 않는 것에 의존하라는 원칙