TIL (2022.01.23)
DAY 3
🔖 오늘 읽은 범위 : 1장, 깨끗한 코드(~p.20 결론)
😃 책에서 기억하고 싶은 내용을 써보세요.
- 깨끗한 코드는 한가지에 ‘집중’한다.
- 나는 깨끗한 코드가 잘 쓴 문장처럼 읽혀야 한다는 시각을 특히 좋아한다.
- 물론 나는 주로 중복에 집중한다. 같은 작업을 여러 차례 반복한다면 코드가 아이디어를 제대로 표현하지 못한다는 증거다.
- 중복 줄이기, 표현력 높이기, 초반부터 간단한 추상화 고려하기. 내게는 이 세가지가 깨끗한 코드를 만드는 비결이다.
- 우리 업계에는 특정 언어를 신봉하는 광신자가 아주 많다. 하지만 프로그램을 단순하게 보이도록 만드는 열쇠는 언어가 아니다. 언어를 단순하게 보이도록 만드는 열쇠는 프로그래머다!
- 우리는 저자다. 저자에게는 독자가 있다. 그리고 저자에게는 독자와 잘 소통할 책임도 있다. 다음에 코드를 짤 때는 자신이 저자라는 사실을, 여러분의 노력을 보고 판단을 내릴 독자가 있다는 사실을 기억하기 바란다.
- “캠프장은 처음 왔을 때보다 더 깨끗하게 해놓고 떠나라.” (보이스카우트 규칙)
- 지속적인 개선이야말로 전문가 정신의 본질이 아니던가?
🤔 오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요
- 깨끗한 코드란 무엇인가 대한 다양한 시각이 있지만, 이들은 모두 ‘잘 쓴 문장’을 만들기 위한 노력의 방식을 말하는 것 같다.
- 깨끗한 코드를 만드는 일은 특정 언어에 좌우되는 것이 아닌, 어떤 프로그래머가 어떻게 짰느냐에 달려있다.
- 깨끗한 코드를 유지하는 것은 곧 지속적인 개선으로 이어진다. 이는 프로그래머로써 가져야할 전문가 정신(책임)의 본질이다.
🔎 궁금한 내용이 있거나, 잘 이해되지 않는 내용이 있다면 적어보세요.
- 객체 지향 설계의 다섯 가지 원칙(→ 앞으로 자주 언급될 원칙)
- SRP(The Singe Responsibility Principle)
- 클래스에는 한 가지, 단 한 가지 변경 이유만 존재해야 한다.
- OCP(The Open Closed Principle)
- 클래스는 확장에 열려 있어야 하며 변경에 닫혀 있어야 한다.
- LSP(The Liskov Substitution Principle)
- 상속받은 클래스는 기초 클래스를 대체할 수 있어야 한다.
- DIP(The Dependency Inversion Principle)
- 추상화에 의존해야 하며, 구체화에 의존하면 안 된다.
- ISP(The Interface Segregation Principle)
- 클라이언트에 밀접하게 작게 쪼개진 인터페이스를 유지한다.
소감 3줄 요약
- 깨끗한 코드란 무엇인가 대한 다양한 시각이 있지만, 이들은 모두 ‘잘 쓴 문장’을 만들기 위한 노력의 방식을 말하는 것 같다.
- 깨끗한 코드를 만드는 일은 특정 언어에 좌우되는 것이 아닌, 어떤 프로그래머가 어떻게 짰느냐에 달려있다.
- 지속적인 개선이야말로 전문가 정신의 본질이 아니던가?