TIL 22.3.26 5장

hun2__2·2022년 3월 26일
0

노개북

목록 보기
5/5
post-thumbnail

Day

오늘 TLI 3줄 요약

  • 결국은 다시 ETC(Easy To Change)

TIL(Today I Learned) 날짜

22.3.26

오늘 읽은 범위

5장

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

  • 현대의 미친 듯이 빠른 변화 속도를 따라가려면 모든 수단을 동원하여 가능한 한 느슨하고 유연한 코드를 작성해야 한다. (p181)
  • 유연함을 유지하는 한 가지 가장 좋은 방법은 물론 가능한 한 코드를 적게 작성하는 것이다. (p182)

TOPIC 28 결함도 줄이기

  1. 다리를 설계할 떄는 그 형태가 바뀌지 않기를 바랄 것이다. 따라서 구조가 단단해야 한다. 하지만 소프트웨어를 설계할 때는 언젠가 형태를 바꾸려 할 것이다. 바라는 것이 정확히 반대다. 소프트웨어의 구조는 유연해야 한다. 그리고 유연하려면 각각의 부품이 다른 부품에 가능한 한 조금만 연결되어야 한다. (p183)

  2. 열차 사고 : 기차의 모든 객차가 서로 연결되어 있듯이 메서드나 속성들이 모두 연결되어 있다.

  • 열차 사고를 고치는 첫 발짝은 다른 객체의 내부 상태에 따라 판단을 내리고 그 객체를 갱신해서는 안된다. (p187)
  • 무언가에 접근할 때 "."을 딱 하나만 쓰려고 노력해 보라. (p188)
    • 예외의 경우가 하나 있다. 엮는 것들이 절대로 바뀌지 않을 것 같다면 이 규칙을 지키지 않아도 된다.(언어에 내장된 라이브러리를 제외한 그런 경우는 없다고 봐야한다)
  1. 연쇄와 파이프라인 : 이 파이프라인도 함수에서 함수로 데이터를 넘겨가며 변환하지만, 숨겨진 구현 세부 사항에 의존하지 않기 때문에 열차사고와는 다르다. (p189)

    • 결합이 없는건 아니지만 열차 사고로 인한 결합에 비해 문제가 적다.
  2. 글러벌화의 해악 : 어디서나 접근할 수 있는 데이터는 컴포넌트 간의 결합을 만들어낸다. (p190)

    • 모든 메서드에 갑자기 매개 변수가 추가된 것과 같은 효과를 낸다.
    • 코드를 재사용할 수 있게 하려면 깨끗한 인터페이스를 만들고 나머지 코드와의 결합을 없애야 한다. 하지만 전역 데이터를 사용한다면 뗴어 내기 힘들어질 것이다.
    • 싱글턴도, 외부 리소스도 전역 데이터다. 이것의 해법은 반드시 이 리소스들을 당신이 작성하는 코드로 모두 감싸는 것이다.
  3. 상속은 결합을 늘린다. (p191)

    • topic 31에서 설명
  4. 결국은 ETC로 (p192)

    • 직접적으로 아는 것만 다루는 부끄럼쟁이 코드를 계속 유지하라. 그러면 결합도를 낮게 유지할 수 있고, 코드를 바꾸기 쉬워질 것이다.

TOPIC 29 실셰게를 갖고 저글링하기

  • 이벤트는 무언가 정보가 있다는 것을 의미한다 (p193)
    - 이벤트에 잘 반응하는 애플리케이션을 만들기 위해 4가지 전략이 있다.
  1. 유한 상태 기계(FSM) (p194)
    • 상태기계(SM)은 그냥 이벤트를 어떻게 처리할지 정의한 명세일 뿐이다.
    • FSM의 멋진 점은 FSM을 오로지 데이터만으로 표현할 수 있다는 것이다.
  2. 감시자 패턴 (p199)
    • 감시자 패턴은 이벹트를 발생시키는 쪽인 '감시대상'과 이런 이벤트에 관심이 있는 클라이언트인 '감시자'로 이루어진다.
  3. 게시-구독
  4. 반응형 프로그래밍과 스트림

TOPIC 30 변환 프로그래밍

TOPIC 31 상속세

TOPIC 32 설정

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

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

오늘 읽은 다른사람의 TLI

profile
과정을 적는 곳

0개의 댓글