Community

개발자 99% 커뮤니티에서 수다 떨어요!

← Go back
[TIL] Assignment #09 객체와 자료구조
#clean_code
2년 전
588


TIL (Today I Learned)

2022.03.01

오늘 읽은 범위

6장. 객체와 자료 구조

책에서 기억하고 싶은 내용을 써보세요.

  • 인터페이스는 자료구조를 명백하게 표현한다. (p.118)

  • 구현을 감추려면 추상화가 필요하다. (p.119)

  • 자료를 세세하게 공개하기보다는 추상적인 개념으로 표현하는 편이 좋다. (p.119)

  • 아무 생각 없이 조회/설정 함수를 추가하는 방법이 가장 나쁘다. (p.119)

  • 객체와 자료구조는 근본적으로 양분된다. (p.122)

    • 절차적인 코드는 기존 자료 구조를 변경하지 않으면서 새 함수를 추가하기 쉽다. 반면, 객체 지향 코드는 기존 함수를 변경하지 않으면서 새 클래스를 추가하기 쉽다.

    • 절차적인 코드는 새로운 자료 구조를 추가하기 어렵다. 그러려면 모든 함수를 고쳐야 한다. 객체 지향 코드는 새로운 함수를 추가하기 어렵다. 그러려면 모든 클래스를 고쳐야 한다.

  • 디미터 법칙은 잘 알려진 휴리스틱으로, 모듈은 자신이 조작하는 객체의 속사정을 몰라야 한다는 법칙이다. (p.123)

  • DTO는 굉장히 유용한 구조체다. 특히 데이터베이스와 통신하거나 소켓에서 받은 메시지의 구문을 분석할 때 유용하다. (p.126)

  • 객체는 동작을 공개하고 자료를 숨긴다. 그래서 기존 동작을 변경하지 않으면서 새 객체 타입을 추가하기는 쉬운 반면, 기존 객체에 새 동작을 추가하기는 어렵다. (p.127)

  • 우수한 소프트웨어 개발자는 편견없이 이 사실을 이해해 직면한 문제에 최적인 해결책을 선택한다. (p.128)

오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요


읽으면서 머리가 아팠다. 이제 점점 어려워지는 것을 알았다. 정말 마지막 문장에 나온 말처럼 객체와 자료구조에 대해 이해하고 최적의 해결책을 찾을 수 있도록 정말 많은 노력을 해야할 것이라고 생각했다. 전문적이고 우수한 개발자가 되기 위해서는 정말 많은 생각과 노력이 들어가야 할 것 같다.

자바스크립트에서는 특히 객체 형태로 작업을 할지, 자료 구조 형태로 작업을 할지 많이 고민되는 부분이 있는 것 같다. 어떠한 방식이 좋은지 좀 더 연습해야겠다.