개발자가 내팔자

[Nomad Coder] 노개북 클린코드 챌린지 2기 Assignment 9 본문

BOOK

[Nomad Coder] 노개북 클린코드 챌린지 2기 Assignment 9

야생의 개발자 2022. 3. 2. 01:46

 

TIL (Today I Learned)

2022.02.22 - 2022.02.24

 

오늘 읽은 범위

6장. 객체와 자료구조

 

 

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

  • 흔히 위와 같은 코드를 기차 충돌이라 부른다. 여러 객차가 한 줄로 이어진 기차처럼 보이기 때문이다.
  • 활성 레코드는 DTO의 특수한 형태다. ...(중략) ... 해결책은 간단하다. 활성 레코드는 자료 구조로 취급한다. 비즈니스 규칙을 담으면서 내부 자료를 숨기는 객체는 따로 생성한다.
  • 자료를 세세하게 공개하기 보다는 추상적인 개념으로 표현하는 편이 좋다. 인터페이스나 조회/설정 함수만으로는 추상화가 이뤄지지 않는다. 개발자는 객체가 포함하는 자료를 표현할 가장 좋은 방법을 심각하게 고민해야 한다. 아무 생각 없이 조회/설정 함수를 추가하는 방법이 가장 나쁘다.
  • 객체는 추상화 뒤로 자료를 숨긴 채 자료를 다루는 함수만 공개한다. 자료구조는 자료를 그대로 공개하며 별다른 함수는 제공하지 않는다.
  • 분별있는 프로그래머는 모든 것이 객체라는 생각이 미신임을 잘 안다.

 

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

  • 아직 읽는 중이긴 한데 active record pattern에서 DTO와 관련하여 명확하게 설명을 해줘서 흥미로웠다.
  • 추상화를 하는 이유
    • 모든 걸 알 필요가 없게끔 만들려고
    • 통제하기 위해 - 문이 수백개인 것과 문이 한 두개인 것을 상상해보자.

 

 

 

궁금한 내용이 있거나, 잘 이해되지 않는 내용이 있다면 적어보세요.

  • 목록 6-4가 목록 6-3보다 더 좋은 코드라고 하는데 (추상화가 더 잘되어있어서) 회사에서 비슷한 코드를 개발한 적이 있는데, 조금 달라서 많은 생각이 들었다. 프론트에서 계산하는 게 좋을지, 서버에서 계산하는 게 좋을지 항상 고민을 하고, 종종 프론트에서 계산을 할 수 있도록 추상화 단계를 낮춰서 그대로 내려줄 때가 있다. 서버에서 모든 걸 계산해서 내려주면 프론트가 편하고 좋겠지만, 전체적으로 서버가 느려진다면 그것도 손해이기 때문에. 항상 추상화를 하는 것이 좋을까? 라는 생각이 든다.
  • 객체와 자료구조의 차이가 뭘까?
  • 디미터 법칙이 뭘까?
  • 휴리스틱은 뭘까?
Comments