Offcanvas

AI / How To / 개발자 / 빅데이터 | 애널리틱스

칼럼 | 개발자가 ‘데이터베이스’를 먼저 감안해야 할 이유

2024.02.06 Matt Asay  |  InfoWorld
사용자 경험의 핵심은 ‘데이터’에 달려 있다. 그렇다면 개발자는 이제 데이터부터 시작해야 하지 않을까? SQLite, NoSQL 데이터베이스, 그리고 뉴렐로(Neurelo)와 같은 추상화(abstractions)를 사용하면 이러한 전환이 좀 더 쉬울 수 있다.

애플리케이션 개발 여정을 시작할 때 먼저 운영체제를 선택하는 개발자들이 있다. 상대적으로 젊은 개발자 중에는 클라우드를 선택하는 것부터 시작하는 이들도 있을 것이다. 하지만 기술 분야의 한 저명 인사는 다른 출발점을 제안한다. 애플리케이션 스택의 가장 중요한 구성 요소인 데이터베이스에 주목하라는 주문이다. 

저명한 기술 전문가인 켈시 하이타워는 다음과 같이 말했다.

“돌이켜보면 나는 운영체제에만 집중하는 실수를 저질렀다. 또 데이터를 무시하는 실수를 저질렀다. 지금 생각해보면 데이터야말로 컴퓨팅의 가장 중요한 요소인 데도 말이다."

이러한 주장을 펼치는 이는 또 있다. Gatsby.js의 설립자 카일 매튜스도 "이제 나는 프로토타이핑을 할 때 100% [데이터베이스]로 먼저 전환한다"라고 말했다. 

데이터가 사용자 경험의 핵심이 되는 세상에서는 언어 프레임워크를 선택하는 대신 데이터 우선 접근 방식을 취하는 것이 합리적일 수 있다. 언어 프레임워크를 선택하고 함께 제공되는 데이터베이스를 사용하는 것이 아닌, 데이터 우선 접근 방식을 취하는 것이 좋다는 이야기다. 이 접근 방식은 말처럼 쉬운 일은 아닐 수 있다. 그러나 뉴렐로와 같은 클라우드 API 플랫폼은, 데이터베이스를 우선시하고 싶지만 그 방법을 모르는 개발자에게 특히 유용할 수 있다.

어디에나 온통 데이터
최근의 모든 클라우드 실적 발표에서 주요 뉴스는 AI가 클라우드 서비스 소비를 촉진하는 방식에 관한 것이다. (마이크로소프트의 최신 실적 발표에서 AI에 대한 모든 언급을 확인해보라.) 물론 AI의 핵심은 데이터, 그것도 아주 많은 양의 데이터다. 사실 '빅데이터'라는 용어가 유행한 이래, 데이터는 클라우드의 도입과 사용을 주도해 왔다.

이는 어떤 데이터를 다루든, 데이터를 저장하고 처리하는 데 사용하는 기술이 무엇이든 마찬가지다. 최근 오라일리 트렌드를 살펴보면, 아파치 하둡, 아파치 스파크, 데이터 웨어하우스와 같은 기술에 대한 관심이 감소하고 있다. 반면 데이터에 대한 관심은 계속 급증하고 있다. 흥미롭게도, 오라일리는 독립형 벡터 데이터베이스와 같은 특수 데이터베이스가 상대적으로 틈새 시장에 그칠 것으로 보고 있다, 반면 MySQL과 같은 범용 데이터베이스가 벡터 기능성을 추가 확보해가며 계속 성장할 것이라는 전망이다.

데이터 기술의 변화로 인해 개발자는 끊임없이 새로운 기술이나 새로운 방법을 배워야 한다. 그리고 하이타워와 같은 개발자들은 이제 데이터를 기술 스택에서 가장 먼저 고려해야 할 시점이라고 주장하고 있다.

하이타워는 데이터베이스에 집중하여 복잡성을 제거하는 한 가지 방법을 제시했다. 복잡한 데이터베이스가 아닌 SQLite로 간단하게 시작하라는 것이다. 그는 "데이터의 기본을 배우고 데이터를 관리하는 방법을 배우고 싶다. 데이터베이스 서버를 관리하는 방법보다는 SQL을 배우는 데 시간을 할애하고 싶다”라고 말했다. 개발자 사이먼 윌리슨도 "서버를 실행할 필요도 없고 인증을 알아낼 필요도 없다는 점이 SQLite의 장점”라고 말했다.

그들의 제안은 데이터베이스를 처음 접하는 개발자이 참고할 만한 한 가지 접근 방식이지만, 유일한 접근 방식은 아니다. 소위 NoSQL 데이터베이스라고 불리는 데이터베이스는 개발자가 더 쉽게 접근할 수 있다. 개발자들이 몽고DB를 좋아하는 이유 중 하나는 개발자가 데이터를 관계형 모델로 전환하기 위해 ORM(객체 관계형 매퍼)을 사용하지 않고도 이미 알고 있는 객체 지향 프로그래밍에 가깝게 매핑할 수 있기 때문이다. (참고로 필자는 몽고DB에서 일하고 있다.)

또 다른 옵션으로는 개발자가 데이터베이스 운영에 대해 걱정하는 시간을 줄일 수 있도록 관리형 PostgreSQL을 제공하는 수파베이스(Supabase)가 있다. 데이터베이스에 대해 아예 생각하고 싶지 않다면? 뉴렐로가 해답이 될 수 있다.

'필요악'과의 싸움
뉴렐로는 데이터베이스 추상화 플랫폼을 제공하여 개발자가 복잡한 SQL 쿼리를 작성하지 않고도 데이터베이스 작업을 할 수 있도록 지원한다. 개발자는 이를 통해 PostgreSQL 또는 MySQL과 같은 관계형 데이터베이스에서 레코드를 생성, 검색, 업데이트 또는 삭제(CRUD)하거나 몽고DB용 몽고DB 쿼리 API를 사용하여 쿼리를 작성할 수 있다. 즉 뉴렐로는 개발자의 데이터 모델과 스키마에서 직접 REST 및 GraphQL 엔드포인트를 모두 생성하는 API를 자동 생성한다.

뉴렐로의 공동 창립자이자 CEO인 쉬락 샤는 한 인터뷰에서 뉴렐로의 핵심이 이것이라고 강조했다. 개발자가 수용해야만 한다고 생각했던 ORM이라는 '필요악'에 맞서 싸운다는 것이다. 그는 ORM으로 작업하는 것은 "힘든 싸움"이라며, "스키마가 변경되거나 요구 사항이 변경될 때마다 모든 것을 다시 조정해야 하기 때문에 많은 것을 거쳐야 하고, 그러한 하네스를 만들어야 하며, 이를 유지 관리해야 한다"라고 설명했다.

그에 따르면 희망이 있다. 

기존 ORM은 SQL 계층을 가리는 반면, 뉴렐로는 완전한 쿼리 가시성을 제공한다고 회사 사이트에서 언급하고 있다. 개발자는 데이터베이스에 대한 익숙해지면서 데이터베이스 상호 작용을 검사하고 개선할 수 있게 된다.

뉴렐로는 또한 데이터베이스가 반복적으로 쿼리를 수행하여 데이터베이스 왕복 횟수를 불필요하게 늘리는 ORM의 "N+1" 문제를 해결하는 데 도움이 된다. 뉴렐로는 조인(joins)을 사용하여 단일 쿼리에서 관련 데이터를 검색하는 열망 로딩을 사용하여 이 문제를 해결한다. 이렇게 하면 데이터베이스에 닿는 쿼리 수가 최소화되고 성능이 향상된다. 또한 뉴렐로는 기본 CRUD 작업을 넘어 여러 엔터티에 걸친 고급 조인 읽기/쓰기 작업도 제공한다.

뉴렐로를 사용하면 데이터베이스를 처음 접하는 개발자든 숙련된 개발자든 데이터베이스 작업 방법을 파악하는 데 소요되는 시간을 줄이고 애플리케이션 작성에 좀더 집중할 수 있다. 샤는 "사실상 모든 것을 즉시 얻을 수 있으며 손가락 하나 까딱할 필요가 없다”라고 주장했다. 몇 시간 또는 몇 주가 아니라 몇 분 만에 코드를 작성할 수 있다고 그는 덧붙였다.

이는 데이터가 개발자의 첫 번째 관심사가 되어야 한다는 하이타워의 주장과 맞닿는다. 그의 말이 맞다면, 뉴렐로와 같은 도구는 데이터베이스 드라이버를 사용할 때 발생할 수 있는 코드의 하드와이어링이나 ORM으로 인한 각종 트레이드오프에 대한 걱정을 덜어준다. 즉 데이터를 애플리케이션의 중심에 두고 개발자가 훨씬 더 쉽게 접근할 수 있는 방법이다. 

* Matt Asay는 몽고DB의 개발자 관계 업무를 담당하고 있다. 그러나 본 글은 몽고DB의 입장이 아니다. ciokr@idg.co.kr
추천 테크라이브러리

회사명:한국IDG 제호: CIO Korea 주소 : 서울시 중구 세종대로 23, 4층 우)04512
등록번호 : 서울 아01641 등록발행일자 : 2011년 05월 27일

발행인 : 박형미 편집인 : 천신응 청소년보호책임자 : 한정규
사업자 등록번호 : 214-87-22467 Tel : 02-558-6950

Copyright © 2024 International Data Group. All rights reserved.