개발자 99% 커뮤니티에서 수다 떨어요!
블로그에서 작성하고 있습니다.
오늘 TIL 3줄 요약
절차적인 코드와 객체 지향 코드의 특성을 이해해야한다.
둘을 섞는 잡종 코드는 피하자.
각각의 특성에 따라 최적의 선택을 해야한다.
TIL (Today I Learned)
2022.05.03
오늘 읽은 범위
6장. 객체와 자료구조
책에서 기억하고 싶은 내용을 써보세요.
절차적인 코드는 기존 자료 구조를 변경하지 않으면서 새 함수를 추가하기 쉽다. 반면, 객체 지향 코드는 기존 함수를 변경하지 않으면서 새 클래스를 추가하기 쉽다. (p.122)
절차적인 코드는 새로운 자료 구조를 추가하기 어렵다. 그러려면 모든 함수를 고쳐야 한다. 객체 지향 코드는 새로운 함수를 추가하기 어렵다. 그러려면 모든 클래스를 고쳐야한다. (p.122)
객체는 조회 함수로 내부 구조를 공개하면 안 된다는 의미다. 그러면 내부 구조를 노출하는 셈이니까. (p.123)
절반은 객체, 절반은 자료 구조인 잡종 구조가 나온다. 잡종 구조는 새로운 함수는 물론이고 새로운 자료 구조도 추가하기 어렵다. 양쪽 세상에서 단점만 모아놓은 구조다. 그러므로 잡종 구조는 되도록 피하는 편이 좋다. (p.125)
자료 구조체의 전형적인 형태는 공개 변수만 있고 함수가 없는 클래스다. 자료 구조체를 때로는 자료 전달 객체(DTO)라 한다.(p.126)
활성 레코드는 DTO의 특수한 형태다. 공개 변수가 있거나 비공개 변수에 조회/설정 함수가 있는 자료 구조지만, 대가 save나 find와 같은 탐색 함수도 제공한다. 데이터베이스 테이블이나 다른 소스에서 자료를 직접 변환한 결과다. 활성 레코드는 자료 구조로 취급한다. 비즈니스 규칙을 담으면서 내부 자료를숨기는 객체는 따로 생성한다. (p.127)
시스템을 구현할 때, 새로운 자료 타입을 추가하는 유연성이 필요하면 객체가 더 적합하다. 다른 경우로 새로운 동작을 추가하는 유연성이 필요하면 자료 구조와 절차적인 코드가 더 적합하다. (p.128)
오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요
객체와 자료구조, 절차적인 코드의 특성을 이해하고 이를 통해 최적인 해결책을 선택하도록 해야한다.
솔직히 아직 이 파트의 내용을 정확히 이해하기 힘들었다. 나중에 다시 읽어봐야겠다.
아직 배울 것이 한참 많이 남았다...