Community

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

← Go back
7. TIL (2022.03.26)
#pragmatic
2년 전
737

오늘 TIL 3줄 요약

  • 응집도는 높이고 결합도는 줄인다.

  • 디미터 함수의 법칙

  • MVC 패턴은 적은 비용으로 큰 유연성을 얻는다.


TIL (Today I Learned) 날짜

2022.03.26-2022.03.26

오늘 읽은 범위

5장. 구부러지거나 부러지거나

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

  • 결합도 줄이기

    • 적게 연결된 코드가 바꾸기 쉽다.

    • 왜 의존의 증가가 나쁠까? → 시스템 어딘가의 무관한 변화가 코드의 영향을 미칠 수 있는 위험이 커진다.

  • 디미터 함수 법칙

    • 프로그램에서 모듈 간 결합도를 최소화한다.

    • 한 객체가 제공하느 메서드에 접근하기 위해 또 다른 객체들을 통하는 것을 허용하지 않는다.

    • 주 계약자 → 모든 하부 계약자를 직접 관리, 이를 위임한다.

  • 메타 프로그래밍

    • 세부사항을 코드에서 몰아낸다.

    • 즉, 우리 코드는 설정가능해 지며 소프트해져 변화에 쉽게 적응할 수 있다.

    • 코드에는 추상화를, 메타데이터에는 세부 내용을.

  • 시간적 결합

    • 시간이나 순서에 따른 의존성 끊기.

    • UML 활동다이어그램 → 사용자들의 작업흐름을 모델화하는 기법

    • 작업흐름 분석을 통해 동시성을 개선하고 병렬성을 극대화한다.

    • 배고픈 소비자 모델

      • 중앙 일정 관리자 대신 여러 개의 독립적인 소비자 작업들과 중앙집중식 작업 큐를 사용.

  • MVC (Model, View, Controller)

    • 다시한번 확인하는 좋은 모듈(클래스)란? → “잘 정의된 단 하나의 책임만 가지는 것”

    • UML 시퀀스 다이어그램 → 객체들을 세로줄로 나열해 놓고, 그 객체들 사이의 메시지 흐름을 보이는 다이어그램.

    • MVC 핵심은 모델을 표시하는 뷰, 뷰를 관리하는 컨트롤러에서 모델을 분리해 내는 것.

      • 모델: 대상 객체를 나타내는 추상 데이터 모델.

      • 뷰: 모델을 해석하는 방법. 뷰는 모델의 변화 그리고 컨트롤러가 보내는 논리적 사건을 구독.

      • 컨트롤러: 뷰를 제어학 모델에 새로운 데이터를 제공하는 방법. 모델과 뷰 둘 모두에 이벤트를 보냄.

  • 칠판

    • 비동기적으로 데이터를 주고받는 공간(개념)으로 객체들 사이의 결합을 완전히 끊을 수 있다.

    • 칠판을 사용해 작업흐름을 조율한다.

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

다른 분들의 TIL를 읽다가 왠지 책의 구성이 조금 다른 것 같다는 생각이 들었다. 같은 책이었나 하는 마음에 식은땀이..😇 구조적인 부분에서의 결합도와 응집도를 계속 설명했다면 이번 챕터에서는 시간적 결합과 시간적 결합을 완전 독립시킬 수 있는 칠판의 개념에 대해 배우는 유익한 시간이었다. 무엇보다도 실제로 이벤트에 따른 결합도가 가능할까 책을 읽는 동안 내내 가지고 있었던 고민이 어느정도 (이론적으로) 해결된 것 같아 유익했다.

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

  • 여러 소비자의 부하를 개선하는 배고픈 소비자 모델.

오늘 읽은 다른사람의 TIL