개발자 99% 커뮤니티에서 수다 떨어요!
오늘 TIL 3줄 요약
복잡한 시스템을 짜다보면 새로운 함수가 아니라 새로운 자료 타입이 필요한 경우가 생긴다. 이때는 클래스와 객체 지향 기법이 가장 적합하다.
반면 새로운 자료 타입이 아니라 새로운 함수가 필요한 경우라면 절차적인 코드와 자료 구조가 좀 더 적합하다.
TIL (Today I Learned) 날짜
2022. 05.03
오늘 읽은 범위
6장. 객체와 자료 구조
책에서 기억하고 싶은 내용을 써보세요.
구현을 감추려면 추상화가 필요하다. 추상 인터페이스를 제공해 사용자가 구현을 모른채 자료의 핵심을 조작할 수 있어야 진정한 의미의 클래스다.
객체는 자료를 숨기고, 함수를 공개한다. 즉, 객체는 조회 함수로 내부 구조를 공개하면 안 된다는 의미다.
자료 구조는 자료를 그대로 공개하며 별다른 함수는 제공하지 않는다.
자료 구조체의 전형적인 형태는 공개 변수만 있고 함수가 없는 클래스다. 이런 자료 구조체를 때로는 자료 전달 객체(DTO)라고 한다. DTO는 데이터베이스와 통신하거나 소켓에서 받은 메시지의 구문을 분석할 때 유용하다.
어떤 시스템을 구현할 때, 새로운 자료 타입을 추가하는 유연성이 필요하면 객체가 더 적합하다. 다른 경우로 새로운 동작을 추가하는 유연성이 필요하면 자료 구조와 절차적인 코드가 더 적합하다. 우수한 소프트웨어 개발자는 편견없이 이 사실을 이해해 직면한 문제에 최적인 해결책을 선택한다.
오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요
객체와 자료구조, 클래스에 대한 오늘의 개념은 다소 어려웠다. 아직 이해가 가지 않는 부분이 많고, 자바가 주 언어가 아니기 때문에 파이썬에서 객체 지향을 바라보는 관점과 개념을 더 공부해야 겠다는 생각이 든다.