Community

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

← Go back
TIL 6장. 객체와 자료 구조
#clean_code
2년 전
617


TIL (Today I Learned)

2022.03.01

오늘 읽은 범위

6장. 객체와 자료 구조

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

  • 자료 추상화 - 변수 사이에 함수라는 계층을 넣는다고 구현이 저절로 감춰지지는 않는다. 구현을 감추려면 추상화가 필요하다. 자료를 세세하게 공개하기 보다는 추상적인 개념으로 표현하는 편이 좋다.

  • 자료/객체 비대칭 - 새로운 자료 타입이 필요한 경우에는 클래스와 객체 지향 기법이 적합하다. 새로운 함수가 필요한 경우에는 절차적인 코드와 자료 구조가 좀 더 적합하다.

  • 디미터 법칙 - 묘듈은 자신이 조작하는 객체의 속사정을 몰라야 한다. 객체는 조회 함수로 내부 구조를 공개하면 안된다.


    #기차 충돌
    #잡종 구조 - 절반은 객체, 절반은 자료 구조인 잡종 구조는 되도록 피한다.(프로그래머가 함수나 타입을 보호할지 공개할지 확신하지 못하므로)

  • 자료 전달 객체 - 자료 구조체의 전형적인 형태는 공개 변수만 있고 함수가 없는 클래스다. 이를 때로는 자료 전달 객체(DTO)라 한다. 데이터베이스에 저장된 가공되지 않은 정보를 애플리케이션 코드에서 사용할 때 사용할 객체로 변환하는 일련의 단계에서 가장 처음으로 사용하는 구조체


    #일반적인 형태는 빈(bean)구조 - 빈은 비공개 변수를 조회/설정 함수로 조작한다.
    #활성 레코드 - DTO의 특수한 형태. 데이터베이스 테이블이나 다른 소스에서 자료를 직접 변환한 결과이다. 자료구조로 취급하고, 비즈니스 규칙을 담으면서 내부 자료를 숨기는 객체는 따로 생성한다.

  • 결론 - 새로운 자료 타입을 추가하는 유연성이 필요하면 객체가 더 적합하고, 새로운 동작을 추가하는 유연성이 필요하면 자료 구조와 절차적인 코드가 더 적합하다.

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

  • 무조건 객체지향이 좋다는 것을 알게 되었고, 절차/자료구조와 클래스/객체 중 어느 것이 더 적합할지 판단하고 사용해야겠다.

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

  • DTO의 예시는 무엇일까 찾아봐야겠다.