Community

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

← Go back
TIL-Assignment #09(2022.03.01[화])
#clean_code
2년 전
618


TIL (Today I Learned)

// 2022.03.01


오늘 읽은 범위

// 6장. 자료 추상화


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

자료 추상화

- 변수 사이에 함수라는 계츠을 넣는다고 구현이 저절로 감춰지지 않는다 : 추상화가 필요하다

- 추상 인터페이스를 사용해 사용자가 구현을 모른채 자료의 핵심을 조작할 수 있어야 진정한 의미의 클래스다

자료/객체 비대칭

- 객체지향 코드에서 어려운 변경은 절차적인 코드에서 쉽다

- 절차적인 코드에서 어려운 변경은 객체지향코드에서 쉽다

- 새로운 자료 타입이 필요한 경우 클래스와 객체지향 방법이 적합하다

디미터 법칙 : 자신이 조작하는 객체의 속사정을 몰라야 한다

- 객체는 조회 함수로 내부 구조를 공개하면 안된다

1) 기차 충돌 : 여러 함수가 한줄로 이어진 기차처럼 보여져 피하는것이 좋음

2) 잡종 구조 : 객체, 자료구조가 혼합되어있는 것은 피해라

3) 구조체 감추기

자료 전달 객체 : 공개 변수만 있고 함수가 없는 클래스

- 데이터베이스와 통신하거나 소켓에서 받은 메시지의 구문을 분석할 때 유용

- 데이터베이스에 저장된 가공되지 않은 정보를 애플리케이션 코드에 사용할 객체로 변환하는 단계에서 가장 처음 사용하는 구조체

1) 활성 레코드 : 데이터베이스 테이블이나 다른 소스에서 자료를 직접 변환한 결과

- 활성 레코드에 비지니스 규칙 메서드를 추가해 자료구조를 객체로 취급하는 개발자가 많다

- 활성 레코드는 자료구조로 취급하고, 비즈니스 규칙을 담으면서 내부 자료를 숨기는 객체는 따로 생성한다

결론

- 객체는 동작을 공개하고 자료를 숨긴다 : 기존 동작을 변경하지 않으면서 새 객체타입을 기존 객체에서 새 동작을 추가하기는 어렵다

- 자료 구조는 별다른 동작없이 자료를 노출한다 : 자료 구조에 새 동작을 추가하기는 쉬우나, 기존 함수에 새 자료 구조를 추가하기는 어렵다

- 시스템을 구현할 때, 새로운 자료타입을 추가하는 유연성이 필요하면 객체가 더 적합하다

- 새로운 동작을 추가하는 유연성이 필요하면 자료구조와 절차적인 코드가 더 적합하다


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

  • 사실 오늘은 개인적으로 바쁜일이 있어, 책을 읽을 시간이 없어 급하게 자기전에 발췌독만 했다. 그리고 자바스크립트 개발자인 나에게는 아직은 멀게만 느껴지는 내용들이었다. 그래서 이해를 하려기보단 중요한 내용을 요약해보겠다는 내용으로 썼다