[라포르시안] 얼마 전 대학원에서 서비스디자인을 전공 중인 딸이 필자에게 IT 관련 공부를 했으면 하는데 뭘 하면 좋을지 물었다. 대학원 공부와 병행해 온 IT업체 6개월 인턴십 과정을 곧 마무리하게 되는 딸이 전공 중인 디자인과 다른 IT 관련 공부를 하겠다고 하니 기특한 마음이 들었다.
필자는 요즘 여러 분야에서 많이 사용 중인 파이썬(Python) 프로그래밍을 권했다. 하지만 딸은 파이썬 대신 SQL(Structured Query Language·데이터에 구조화된 질문을 하는 언어)를 공부하는 건 어떨지 되물었다. 딸은 “회사에서 일하다 보니 개발자들이랑 대화에 어려움이 있었어. 한번은 내가 작성한 개발 기획안에 대해 개발자들이 안 된다는 거야. 내가 데이터베이스(DB)에 대한 개념이 없어서 개발 기획하는 데 좀 어려움이 있어서'라고 이유를 설명했다.
필자는 딸의 말을 듣고 대략 어떤 의미인지 알 것 같았다. 전산 개발 기획에 있어 중요한 부분 중 하나가 구현 가능 여부를 판단하는 것이다. 여기서 가장 중요한 것이 자료구조를 파악할 수 있는 능력이며, 이는 관계형 DB의 기본 개념을 알고 있어야 한다. 그래서 필자는 딸에게 SQLD(Structure Query Language Developer·SQL 개발자) 자격증 취득을 권유했다. 딸은 3월부터 학원을 다니기로 했다.
이 일이 있은 후 얼마 지나지 않아 필자가 근무하는 병원 모 실장이 ‘MongoDB’를 아느냐고 물었다. 다행히 필자는 앞서 정리해 놓은 <표1>을 통해 MongoDB가 NoSQL 계열의 Document DB라는 것, Document DB는 스키마를 명세할 필요가 없으며, 데이터는 키와 문서 형태로 저장된다는 것을 알고 있었다.
해당 실장은 데이터 레이크를 기반으로 하는 프로젝트에서 NoSQL 계열의 MongoDB를 사용하는 것이 어떨지 필자에게 물었다. 이에 필자는 “아마 생소한 DB를 사용하면 시장에서 개발자를 구하거나 유지보수에 어려움이 있을 수 있다. 굳이 NoSQL을 사용하려면 ‘PostgreSQL’을 사용하는 것이 좋을 것 같다”고 말했다. 그러자 “PostgreSQL도 NoSQL 계열인가요?”라는 질문이 이어졌다. 필자는 그렇다고 답했지만 <표2>를 확인해 보니 PostgreSQL의 경우 빅데이터에서 주로 사용하는 DB지만 NoSQL 계열의 DB는 아니었다. 이러한 NoSQL DB는 분산 DB를 지향하는데, 분산 DB 시스템의 특징을 이야기할 때 보통 CAP 이론을 설명한다.