성능을 고려한 구조화 작업을 진행하면서 객체지향성에 대해 다시 한번 의미를 돌이켜보는 시간이 되었고, 이 과정에서 일급 객체와 일급 컬렉션에 대한 개념을 알게 되었다.
일급 객체와 일급 컬렉션을 잘 이해하면, 가장 효율적으로 객체지향성을 구현할 수 있을 것이란 생각이 들었다.
이에 대해 알게된 부분을 기록한다.
일급 객체란 쉽게 말하면 그냥 어디에 마음대로, 함수든 리턴값이든 변수든 가져다 쓸 수 있는 모든 것을 의미한다.
참고로 자바스크립트의 경우 함수 자체를 변수나 리턴값(콜백)으로 사용할 수 있기 때문에, 일급객체와 동일한 성격을 지닌다, 일급 객체와 같다고 하기도 한다.
자바의 경우, 일반적인 객체로는 함수, 리턴값에 사용할 수 없기 때문에 보통의 객체는 일급 객체가 아니다.
이때 사용하는 함수형 프로그래밍, 람다 함수가 바로 일급 객체로 활용할 수 있다.
컬렉션 객체처럼, 멤버 변수를 요소를 담을 list만으로 구성한 컬렉션 객체를 의미한다.
이것이야말로 객체지향성, 의존성 역전의 가장 좋은 예시이지 않을까 싶다.
특히, 해당 일급 컬렉션을 만들면서 validate 등의 추가적인 부분을 사용자가 어디든지 자유롭게 구성할 수 있고 이를 재활용해서 사용할 수 있으므로 객체지향성의 재활용성을 가장 잘 보여주는 개념인것 같다.
구조화할때 이 두가지 개념을 잘 활용해보자.
일급 객체 - https://inpa.tistory.com/entry/CS-%F0%9F%91%A8%E2%80%8D%F0%9F%92%BB-%EC%9D%BC%EA%B8%89-%EA%B0%9D%EC%B2%B4first-class-object
일급 컬렉션 - https://jojoldu.tistory.com/412, https://dkswnkk.tistory.com/m/696