글로벌 칼럼 | “SQL 50주년” 구조화 쿼리 언어의 다음 단계를 생각할 때
SQL은 이제 50년이 됐다. SQL은 데이터베이스를 중심으로 설계되고 채택됐으며, 데이터 관리 및 인터랙션을 위한 방법으로 계속 성장하고 발전해 왔다. 스택 오버플로우(Stack Overflow)에 따르면, 전문 프로그래머가 정기적으로 사용하는 언어 중 세 번째로 많이 사용되는 언어이다. 2023년에는 IEEE가 SQL이 다른 프로그래밍 언어와 결합할 수 있기 때문에 개발자가 취업을 위해 알아야 할 가장 인기 있는 언어라고 평가하기도 했다.
오늘날 사용되고 있는 다른 오래된 언어들을 살펴보면, 1959년에 출시된 COBOL과 1958년에 처음 컴파일된 FORTRAN 같은 언어도 여전히 사용되고 있다. 이런 언어는 보수가 좋은 일을 제시하기는 하지만, 새롭고 흥미로운 프로젝트보다는 기존 레거시 환경과 연결되어 있다. 반면에 SQL은 여전히 AI, 분석 및 소프트웨어 개발을 위한 작업에 사용되고 있다. SQL은 우리가 매일 데이터를 활용하는 방식에 대한 표준으로 계속 사용되고 있다.
SQL이 여전히 중요한 이유
SQL을 보면 왜 그토록 오랫동안 살아남아 번성할 수 있었는지 의문이 들 수 있다. SQL은 독특한 구문으로 이뤄져 있기 때문에 배우기가 쉽지 않은 것은 분명하다. SQL과 관련된 사용자 경험은 신입 개발자가 익히기 어려울 수 있다. 이와 더불어 모든 데이터베이스 업체는 SQL을 지원해야 하지만, 구현 방법은 각기 다른 특징이나 뉘앙스가 있다. 따라서 한 데이터베이스에 대한 접근 방식이 다른 데이터베이스에 쉽게 적용되지 않을 수 있으며, 이로 인해 더 많은 작업과 더 많은 지원 요구사항이 발생할 수 있다.설상가상으로, SQL은 실수를 저지르기 쉬우며, 이런 실수는 실제적이고 잠재적으로 치명적인 결과를 초래할 수 있다. 예를 들어, 명령어에서 WHERE 절을 누락하면 원하는 트랜잭션을 수행하는 대신 전체 테이블을 삭제해 데이터 손실 및 복구 작업으로 이어질 수 있다. 로직을 점검하고 실제로 어떻게 작동하는지 아는 것은 필수 요건이다.
그렇다면 SQL이 처음 설계되고 출시된 지 50년이 지난 오늘날에도 여전히 데이터 작업에 여전히 사용되는 이유는 무엇일까? SQL은 강력한 수학적 이론에 기반을 두고 있기 때문에 효과적으로 작동하고 설계 당시의 사용례를 계속 지원한다. SQL과 관계형 데이터베이스를 결합하면 생성하는 데이터와 그 데이터를 관리하는 방법을 안정적이고 효과적이며 확장 가능한 방식으로 많은 비즈니스 프랙티스에 매핑할 수 있다는 것이다. 간단히 말해, SQL은 잘 작동하며, SQL을 대체할 수 있는 어떤 선택지도 같은 식으로 들어맞지 않았다.
예를 들어, SQL은 단일 요청당 여러 행을 반환하는 최초의 프로그래밍 언어였다. 따라서 데이터 집합 내에서, 결과적으로 비즈니스와 애플리케이션 내에서 어떤 일이 일어나고 있는지에 대한 데이터를 쉽게 얻고 이를 비즈니스에서 사용할 수 있는 데이터로 변환할 수 있다. 마찬가지로 SQL을 사용하면 정보를 여러 테이블로 분류하고 분리한 다음, 한 테이블에는 고객 데이터를, 다른 테이블에는 제조 데이터를 넣는 등 특정 비즈니스 작업에 해당 테이블의 데이터를 사용하는 것이 더 쉬워진다. 트랜잭션 수행 능력은 오늘날 대부분 프로세스에서 중추적인 역할을 하며, SQL은 이를 대규모로 수행할 수 있도록 했다.
SQL 성공의 또 다른 이유 중 하나는 항상 시대와 함께 발전했다는 점이다. 관계형 데이터베이스에 뿌리를 둔 SQL은 여러 해에 걸쳐 지리 정보 시스템 데이터, JSON 문서, XML 및 YAML에 대한 지원을 추가했다. 이를 통해 SQL은 개발자의 데이터 인터랙션 방식에 발맞춰 왔다. 이제 SQL은 벡터 데이터와 결합할 수 있어, 개발자는 SQL을 사용해 데이터를 활용하면서 생성형 AI 애플리케이션을 위한 벡터 검색을 수행할 수 있다.
SQL의 미래
과거에도 SQL을 대체하려는 시도가 있었다. 관계형 데이터베이스를 대체하고 대규모 데이터 작업 및 관리의 기존 모델에서 벗어나기 위해 NoSQL(Not only SQL) 데이터베이스가 개발됐다. 그러나 NoSQL 데이터베이스는 SQL을 대체하기보다는 SQL과 유사한 자체 언어를 추가하는 데 그쳤다. 그것도 SQL이 개발자의 작업 방식에 뿌리내린 일부 방법론과 접근 방식을 복제한 것이었다.자연어 처리 옹호 진영에서 SQL의 표준화되고 투박한 접근 방식을 없애는 새로운 방법을 요구한 적도 있다. 그러나 이런 시도는 결국 대체하려고 했던 SQL만큼이나 투박한 방식으로 끝났고, 결국 외면당하거나 무시당했다. 생성형 AI는 LLM의 언어 모델이 학습의 일부로 대량의 SQL 코드에 노출되어 왔기 때문에 개발자의 SQL 작업을 대신할 수 있다. 이런 방식은 시간이 지나면서 점점 발전하고 대중화되겠지만, 데이터 세트와의 실제 인터랙션과 결과를 사용자에게 다시 전달하기 위해서는 여전히 SQL에 의존해야 한다. 오히려 개발자의 눈에 띄지 않더라도 SQL의 중요성은 더 커질 것이다.
무대 앞에 나서지 않더라도 SQL은 데이터를 사용하는 방식에서 중요한 역할을 계속할 것이다. 모든 IT 시스템의 엄청난 비율이 데이터에 의존하여 작동하는 만큼, SQL은 금방 사라지지 않을 것이다. 따라서 SQL의 50주년을 축하하며 앞으로 어떻게 계속 발전시키고 사용할 수 있을지 생각해 보자.
* Charly Batista는 오픈소스 데이터베이스 소프트웨어, 지원, 서비스 전문업체 Percona의 PostgreSQL 기술 책임자이다.
editor@itworld.co.kr