나는 비개발자의 일을 하고 있다. 그러나 일하면서 늘 '어느 정도의 프로그래밍은 알아야 한다'라는 생각을 한다. 그래서 다양한 시도 끝에 파이썬과 자바스크립트를 가볍게 활용하는 정도까지는 터득했다. 그리고 돌이켜보니 도움이 되는 강의와 그렇지 못한 강의에는 뚜렷한 차이가 있었다. 이번 글에서는 내 경험을 바탕으로 정리해 본 '프로그래밍 지식이 전혀 없는 비개발자를 가르칠 때 주의점'을 살펴보고자 한다. 프로그래밍 강의를 만드는 분들이나, 비개발자와 협업하는 개발자들에게 도움이 될 것이다.
Vim 프로젝트는 제게 정말 많은 의미가 있습니다. 저는 항상 무언가를 만드는 것을 좋아하지만, 무언가를 완성하고 나면 그걸로 무엇을 해야 할지 고민하는 경우가 많습니다. 하지만 Vim은 대중에게 공개했기 때문에 단순히 저만 사용하는 게 아니라 많은 사람이 즐기는 소프트웨어가 되었습니다. 덕분에 제 이름이 세상에 알려졌고 간접적으로 직업도 얻게 되었습니다. 그리고 은퇴한 지금은 흥미롭고, 즐겁고 유용한 일도 계속할 수 있게 되었죠. 그래서 Vim은 제 인생에서 매우 중요한 부분입니다.
데이터는 흐릅니다. 다시 말해 그 흐름 중 어느 한 곳이라도 품질이 제대로 관리되지 않으면 다운스트림에서 문제가 생길 수 있다는 이야기입니다. 그래서 요즘에는 ‘데이터가 없는 것보다 잘못된 데이터에 기반한 의사 결정이 더 무섭다’는 말도 자주 보입니다. 하지만 저품질 데이터, 불량 데이터의 발생을 완전히 틀어막기는 거의 불가능합니다. 그러면 우리가 할 수 있는 일은 한 가지, 문제가 발생했을 때 적절하게 대처하는 것입니다. 그리고 그 대처의 첫걸음은 ‘무엇을 체크하면 되는지 인식’하는 일입니다.
객체지향 프로그래밍(Object-Oriented Programming, OOP)은 클래스(Class)를 통해 데이터와 행위를 묶어 관리하는 프로그래밍 패러다임입니다. 그렇지만 OOP의 사용에 대한 모호함에 대한 논의는 끊임없이 진행되고 있습니다. 이러한 배경 속에서 예호나단 샤르빗(Yehonathan Sharvit)이 데이터 지향 프로그래밍(Data Oriented Programming)이라는 새로운 개념을 제안했습니다. 전편 ‘개발자가 알아야 할 데이터 지향 설계란?’에 이어, 이번 글에서는 데이터 지향 프로그래밍은 어떤 내용인지 알아보겠습니다.