Community

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

← Go back
[Day 10 of 21] 클린코드 TIL
#clean_code
1년 전
433

오늘 TIL 3줄 요약

  • 디미터 법칙: Don’t talk to stranger.

  • 동작은 공개하고 자료는 숨길 것.

  • 직관적으로 이해가 어려운 장이었다.

TIL (Today I Learned) 날짜

  • 2024.02.04

오늘 읽은 범위

  • 6장 객체와 자료구조

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

  • 자료를 세세하게 공개하기 보다는 추상적인 개념으로 표현하는 편이 좋다. 개발자는 객체가 포함하는 자료를 표현할 가장 좋은 방법을 심각하게 고민해야 한다. 

<디미터 법칙 - Law of Demeter, LoD>

  • 잘 알려진 휴리스틱, 모듈은 자신이 조작하는 객체의 속사정을 몰라야한다는 법칙. -> 최소한의 지식 원칙(The principale of least knowladge)

  • 기차충돌

  • 잡종구조: 절반은 객체, 절반은 자료구조인 구조를 뜻함. 양쪽의 단점만 모아 놓은 구조. 최대한 피하는 편이 좋다.

  • 구조체 감추기

<자료 전달 객체>

  • 자료 구조체의 (전형적) 형태: 공개 변수만 있고 함수가 없는 클래스 -> 자료 전달 객체(Data transfer Object, DTO)라고 한다.

  • 활성 레코드: DTO의 특수형태

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

  • 이때까지 읽은 장 중에서 가장 짧았지만, 가장 난해하게 느껴졌다. ㅠㅠ 잘 이해도 되지 않았다. 단어 단어는 찾으면 이해됐지만, 구조체, 클래스를 자주 사용하지 않아서 그런 것 같다. 자바는 해본 적 없지만 지난날 c++을 사용했을때를 떠올리면서 읽었다. 디미터의 법칙만 머릿속에 남아있다…

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

  • 휴리스틱: 문제를 해결하거나 불확실한 사항에 대해 판단을 내릴 필요가 있지만, 명확한 실마리가 없을 경우에 사용하는 편의적 발견적인 방법. 쉽게 표현하면 쉬운방법, 간편법, 발견법, 어림짐작 등이 있다.

  • 디미터의 법칙: 디미터라는 프로젝트를 진행하던 개발자들은 어떤 객체가 다른 객체에 대해 지나치게 많은 정보를 알고 있다 보니, 서로에 대한 결합도가 높아지고 이로 인해 좋지 못한 설계를 야기한다는 사실을 발견한다. 이를 개선하고자 다른 객체에게 어떤 자료(내부 구조)를 가지고 있는지 숨기고 함수를 통해 공개하게 만들었다. 디미터 법칙을 준수하게 되면 캡슐화를 높여 객체의 자율성과 응집도를 높일 수 있다. (디미터 법칙)

오늘 읽은 다른사람의 TIL

  • 654321su님의 TIL

    - 소감에서 같은 느낌을 공유해주셔서 공감하며 읽은 TIL