개발자 99% 커뮤니티에서 수다 떨어요!
오늘 TIL 3줄 요약
나쁜 코드는 팀 프로젝트를 망하게 한다.
깨끗한 코드를 작성하기 위해선 좋은 습관을 힘겹게 습득해야 한다.
이 책의 저자들의 생각이 절대적인 진리는 아니지만 그들이 진리라고 생각한다는 이 원칙을 지킨다면 훌륭한 개발자가 될 수 있을 것이다.
TIL (Today I Learned) 날짜
2022. 04. 23
오늘 읽은 범위
1장. 깨끗한 코드
책에서 기억하고 싶은 내용을 써보세요.
나쁜 코드는 개발 속도를 크게 떨어트린다. 팀 생산성이 떨어지며 추가인력 투입이 필요할 일이 생길 것이다. 그럴 수록 나쁜 코드를 더 많이 양산한다. (4p)
깨끗한 코드를 작성하려면 '청결'이라는 힘겹게 습득한 감각을 활용해 자잘한 기법들을 적용하는 절제와 규율이 필요하다. (8p)
예술에 대한 책을 읽는다고 예술가가 되지는 않듯이 이 책을 읽는다고 뛰어난 프로그래머가 된다는 보장은 없다. 단지 뛰어난 프로그래머가 생각하는 방식과 그들이 사용하는 기술과 기교와 도구을 소개할 뿐이다. (19p)
오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요
깨끗한 코드에 대한 정의는 뛰어난 프로그래머들 일지라도 그들마다 각각 다른 의견을 가지고 있다. C++의 비야네(Bjarne)는 논리가 간단한 우아하고 효율적인 코드를 좋아한다. 그래디 부치는 가독성을 중시하고 데이브 토마스는 코드 작성자가 아닌 사람도 읽기 쉽고 고치기 쉬운 코드를 지향한다.
나는 론 제프리스와 같이 중복을 최소화한 코드가 효율적이라고 생각한다. 왜냐하면 같은 코드가 많아 질수록 코드파일이 복잡해지며 유지보수가 힘들었기 때문이다.
저자들의 코드를 대하는 방식에 대한 생각이 절대적인 진리는 아닐 것이다. 하지만 저자들이 오랫동안 고민하고 습득한 교훈과 기법을 잘 배우고 이해한다면 다른 집단에서도 좋은 코드로 인정받는 뛰어난 사람이 될 것이라고 생각된다.
궁금한 내용이 있거나, 잘 이해되지 않는 내용이 있다면 적어보세요.
이 책에서는 다양한 코드 설계 원칙을 거론한다.
SRP(Single Responsibility Principle) : 단일 책임 원칙이란 모든 클래스는 하나의 책임만 가지며, 클래스는 그 책임을 완전히 캡슐화해야 함을 일컫는다. 클래스가 제공하는 모든 기능은 이 책임과 주의 깊게 부합해야 한다.
OCP(Open Closed Principle) : 개방 폐쇄 원칙은 '소프트웨어 개체(클래스, 모듈, 함수 등등)는 확장에 대해 열려 있어야 하고, 수정에 대해서는 닫혀 있어야 한다'는 프로그래밍 원칙이다.
DIP(Dependency Inversion Principle) : 의존관계 역전 원칙은 소프트웨어 모듈들을 분리하는 특정 형식을 지칭한다. 상위 계층(정책 결정)이 하위 계층(세부 사항)에 의존하는 전통적인 의존관계를 반전(역전)시킴으로써 상위 계층이 하위 계층의 구현으로부터 독립되게 할 수 있다.