얼마 전 유학생들을 대상으로 University of Washington에서 취업에 관련 멘토링 이벤트를 참여한 적 있다. 이 자리에서 데이터 베이스나 데이터 엔지니어로서 커리어 대한 질문을 받을 적이 있다. 질문 중, "데이터 베이스 쪽 전망은 어떤가요?"에 대해 개인적인 대답을 하고자 한다.
거의 20년 동안 이 쪽에 일을 하며 느낀 것은 순수 데이터 베이스 쪽 전망은 그렇게 좋지 않은 것 같다. 10년 전만 해도 Oracle이나 MS SQL Server 등 Relational Database 관리자나 개발자의 수요가 많았다. 개인적으로도 전자공학 전공자로서 하드웨어 쪽 직업을 미국에서 구하기 쉽지 않아, 소프트 웨어로 눈을 돌렸는데 그래도 만만해 보이는 것이 데이터 베이스인 것 같아, 스스로 공부하여 MS SQL Server 관리자 및 개발자 역할을 꽤 했었다. 그러나 빅 데이터가 출연하고 다양한 종류의 소스에서 다양한 포맷을 데이터가 출현함으로 기존의 관계형 데이터 베이스의 한계를 느끼고 NoSQL 등 다양한 데이터 베이스가 출시되고 그 여파로 관계형 데이터 베이스의 사용은 점점 줄어들고 있는 실정이다.
관계형 데이터 베이스 중 꾸준히 사용이 늘어나고 있는 것은 PostgreSQL 뿐이다.
PostgreSQL은 객체지향 관계형 데이터 베이스이다. PostgreSQL은 NoSQL 데이터 베이스의 가능 중인 하나인 Sharding을 지원한다. Sharding 뿐 아니라 HStore(Key-Value)과 JSON(Document) 데이터 유형을 지원한다. 어떻게 보면 관계형 데이터 베이스와 NoSQL 데이터 베이스의 장점들을 융합시키려고 노력하고 있다고 보면 된다. 개인적으로 PostgreSQL은 많이 써보지 않았지만 MySQL에서 PostgreSQL로의 SQL 질의로 변경하는 데는 약간의 수정 외에는 손쉬운 편이었다.
또 NoSQL 데이터 베이스의 대표 주자로 Document 데이터 베이스인 MongoDB가 꾸준히 사용자 수가 늘어나는 것을 알 수 있다. 관계형 데이터 베이스 시대에는 전문적인 데이터 베이스 관리자와 개발자가 많이 필요하였다. 그러나 NoSQL 데이터 베이스 시대에는 애플리케이션과 데이터 베이스의 연동과 융합이 중요해지고 있다. 애플리케이션에 따라 데이터 베이스가 정해지고, 컴퓨터 언어를 통하여 실시간 적으로 데이터 베이스 객체들을 생성, 및 관리가 용이하게 됐다. 데이터 베이스 관리 측면에서도 각 데이터 베이스 회사들이 데이터 베이스 관리 통합 콘솔 또는 인터페이스들을 제공하고 있으면, 인공지능을 적용한 자동 성능 최적화 및 능동적인 경고(alert)등으로 적은 인원으로 더 많은 데이터 베이스 인스턴스들을 관리할 수 있게 됐다.
또 기업들의 클라우드화도 한 못 한다고 할 수 있다. 기업들이 자체 데이터 센터를 운영하기는 쉽지 않다. 데이터 센터는 큰 건물 안에 많은 컴퓨터가 연결된 단순한 구조가 아니다. 건물 자체도 웬만한 자연재해도 견딜만한 구조로 되어 있어야 하고, 또 수만 대 또는 수십만 대 컴퓨터와 각종 장비를 돌려야 하므로 전력 공급 또 장비들에서 발생하는 열에 대한 처리 등 생각할 것이 많다. 그 외에 각종 네트워크 장비, 수많은 선, 외부 사이버 공격으로부터 보호하기 위한 방화벽, 장비 간의 속도 및 지연 문제, 장비들 관리 등 다양한 분야의 많은 사람이 24시간 관리하고 문제를 해결해야 한다. 또 용량의 폭발적인 증가에 대응하기도 쉽지 않다. 그래서 중소기업은 선택의 여지가 없고 심지어 대기업도 클라우드로 옮겨가는 추세이다.
내가 다니는 회사는 Amazon, Microsoft, Google 같은 퍼블릭 클라우드를 쓰지 않는다. 그렇지만 회사 내 데이터 센터를 두고, 자체 클라우드 플랫폼, 즉 개인 클라우드를 쓴다. MongoDB와 Neo4j 클라우드 작업을 한 적이 있다. 데이터베이스가 필요한 사람은 데이터베이스 팀에게 이제 요청하지 않아도 된다. 자체 클라우드 사이트에 가서 원하는 사양의 데이터베이스 인스턴스를 만들면 된다. 데이터베이스를 생성하기 위해 그전에 필요했던 많은 사람 즉 데이터베이스 관리자, 데이터베이스 개발자, 네트워크 엔지니어, 저장 장치 엔지니어, 시스템 엔지니어, 보안 담당자들 수많은 직군이 도움 없이 애플리케이션 개발자가 자기가 필요한 데이터베이스를 손쉽게, 빠르게 구축할 수 있기 된 것이다.
데이터 베이스 쪽으로 진로를 잡고 싶다면 수많은 데이터 베이스 종류들의 장단점을 알고 애플리케이션의 용도(요구 사항)에 따라 가장 적절한 데이터 베이스를 고를 수 있는 그런 스킬을 가진 사람은 아직은 별로 없다. 이 분야는 아직 가능성이 있어 보인다.
데이터, 정보화 시대의 석유라는 말이 있다. 그만큼 데이터에서 많은 가치를 유출할 수 있다는 얘기다. 앞으로 당분간 데이터와 관련된 일을 수용가 늘어날 전망이다.
데이터 관련에서 데이터 엔지니어, 데이터 분석, 데이터 과학자 등 다양한 분야가 있다. 데이터 과학자의 수요는 많지만 데이터 과학자가 되기 위해선 높은 수준의 학력과 기술을 요구하는 경우가 많다. 대학원에서 적어도 석사나 박사까지 해야 되는 경우가 대부분이다. 몰론 그 만한 시간과 경제적 여력이 있으면 석, 박사를 권유한다. 그렇지 않은 경우는 데이터 엔지니어나 분석으로부터 시작해도 나쁘지 않다.