데이터 직군은 21세기에 가장 매력적인 직업으로 주목받고 있습니다. 그렇지만 정작 ‘어떤 일을 하는지’에 대해서는 덜 알려진 편입니다. 특히 데이터 직군 중 하나인 ‘데이터 엔지니어’는 업무의 중요도에 비해 정보를 구하기가 어렵고, 특히 해당 일을 하는 사람을 만나기도 힘듭니다. 저는 데이터 직군에서 일을 시작했기 때문에 업계에서 일하는 관계자들을 쉽게 만날 수 있었습니다. 각자의 배경, 소속한 기업의 상황에 따라 조금씩 다르지만 데이터 엔지니어의 업무에 대한 전반적인 이야기를 들을 수 있었습니다. 그래서 오늘은 이러한 내용들을 정리해 데이터 엔지니어를 목표로 하는 사람들을 위한 가이드를 작성해 보겠습니다.
객체지향 프로그래밍은 클래스(Class)를 통해 데이터와 행위를 묶어 관리하는 프로그래밍 패러다임입니다. 그렇지만 OOP의 사용에 대한 모호함에 대한 논의는 여전히 진행되고 있으며, 최근에는 함수형 프로그래밍(Functional Programming, FP)을 통한 활용도 많은 관심을 받고 있습니다. 이러한 배경 속에서 예호나단 샤르빗(Yehonathan Sharvit)이 데이터 지향 프로그래밍(Data Oriented Programming)이라는 새로운 개념을 제안했습니다. 그래서 이번 글에서는 데이터 지향 설계와 데이터 지향 프로그래밍에 대해 간략히 알아보는 시간을 갖고자 합니다. 첫 번째로 데이터 지향 설계와 관련된 이야기입니다.