CleanCode

[CleanCode] 객체와 자료 구조

zamezzz 2023. 11. 4. 23:07

CleanCode - 객체와 자료 구조

 

책에서 정의하는 객체와 자료 구조의 정의부터 알아보겠습니다.


객체 : 추상화 뒤로 자료를 숨긴 채 자료를 다루는 함수만 공개한다.

자료구조 : 자료를 그대로 공개하며 별다른 함수를 제공하지 않는다.

객체와 자료구조는 근본적으로 양분됩니다.

 

아래 2가지 문장이 그 예시인데, 모두 참인 문장입니다.

'절차적인 코드는 기존 자료 구조를 변경하지 않으면서 새 함수를 추가하기 쉽다.

반면 객체 지향 코드는 기존 함수를 변경하지 않으면서 새 클래스를 추가히기 쉽다.'


'절차적인 코드는 새로운 자료구조를 추가하기 어렵다. 객체 지향 코드는 새로운 함수를 추가하기 어렵다.'

객체와 자료구조는 각각 적합한 경우가 있습니다.
새로운 함수가 아니라 새로운 자료 타입이 필요한 경우 -> 클래스와 객체 지향 기법이 적합
새로운 자료 타입이 아니라 새로운 함수가 필요한 경우 -> 절차적인 코드와 자료구조가 적합

그리고 추가적으로 DTO에 대해서도 설명을 하는데, DTO를 간단히 정리하면 아래와 같습니다.

 

자료 전달 객체 (DTO)
- 공개 변수만 있고 함수가 없는 클래스
- DB와 통신하거나 API/WS에서 받은 데이터를 처리할 때 유용
- DB 데이터를 애플리케이션 코드에서 사용할 객체로 변환하는 일련의 단계에서 가장 처음 사용하는 구조체

마무리
시스템에 따라 객체가 적합할수도 있고 절차적인 코드와 자료구조가 적합할 수 있습니다. 어느 하나가 우수하거나 맞는 방법이라고는 할 수 없습니다. 
그러므로 좋은 개발자는 편견없이 이 사실을 이해하고 직면한 문제에서 최적의 해결책을 선택해야 합니다.

반응형

'CleanCode' 카테고리의 다른 글

[CleanCode] 경계  (0) 2023.11.11
[CleanCode] 오류 처리  (0) 2023.11.10
[CleanCode] 형식 맞추기  (2) 2023.11.04
[CleanCode] 주석  (0) 2023.10.21
[CleanCode] 함수  (0) 2023.10.12