사람들이 처음 'SQLazy'라는 이름을 들으면 많은 사람이 의문을 가집니다. “정말로 SQL에 게으를 수 있나요? 이 도구가 실제로 신뢰할 만한가요?” 저희는 이름이 나올 때 사람들이 이런 질문을 할 것을 알고 있었습니다.
이 이름은 ‘게으름’에 관한 것이지만, 우리가 매일 이야기하는 것은 감사 가능성(auditability), 제로 환각(zero hallucination), 그리고 규정 준수(compliance)입니다. 이는 모순적으로 들립니다. 사실 게으름과 엄격함은 동전의 양면과 같습니다.
더 게으르게 작성하고, 더 높은 엄격함을 얻다
저희가 말하는 '게으르다'는 것은 다음과 같은 의미입니다: 작성이 점점 더 쉬워지고(lazy), 결과는 더욱 엄격해진다는 것입니다(rigorous).
작성 과정의 게으름: 복잡한 로직을 자연어로 단계별로 설명할 수 있으며, 손으로 작성하는 중첩 구조나 각 데이터베이스의 윈도우 함수 방언(window function dialects)을 외울 필요가 없습니다. 결과의 엄격함: AI는 평이한 언어만 단계를 거쳐 번역하고, 컴파일러가 최종 SQL을 결정론적으로 생성합니다. 동일한 로직은 항상 같은 SQL로 컴파일되며, 임의로 만들어진 필드 이름이나 환각 현상(hallucinations)이 전혀 없습니다.
엄격함이란 SQL을 손으로 더 많이 작성하는 노력을 의미하지 않습니다. 이는 그 노력을 검증에 사용하는 것을 의미합니다. 모든 단계는 실행하고 미리 볼 수 있습니다. 검토자는 수백 줄의 중첩된 SQL 코드가 아닌, 단계를 검사할 수 있습니다. 한 문장으로 요약하면: 작성하기엔 게으르고(Lazy to write), 결과로는 엄격하다(rigorous in results).
rigorous in results
게으르다는 것은 나태하다는 의미가 아닙니다. 이는 품질 관리(quality control)를 의미합니다.
SQLazy는 나무늘보와 같습니다. 여기서 그 역할은 표본이 되는 것이 아니라, 품질 검사관 역할을 하는 것입니다.
이는 최종 결과에 서명하기 전에 각 단계를 신중하게 검사하고 유효성 검사를 할 수 있게 해줍니다. 이 '서명'이란 다음을 의미합니다: 저는 이 SQL의 모든 단계를 검토했으며, 이에 대한 책임을 질 만큼 충분히 확신합니다.
아무도 건드리기 꺼리는 레거시 쿼리 조각—백 줄이 넘는 중첩 구조에 한 번만 봐도 머리가 아플 정도입니다. 이를 다단계 워크플로우(multi-step workflow)로 변환하면 각 단계에서 하나의 비즈니스 액션을 수행할 수 있으며, 모든 단계를 클릭하여 중간 결과를 검사하고 유효성을 검증할 수 있습니다. 진정한 게으름뱅이는 반복적인 노동에 성실하지 않은 것이 아니라—검증(validation)에 진지합니다.
validation
댓글에서 뵙겠습니다.
AI가 로직을 작성하고, 컴파일러(compiler)가 SQL을 작성합니다.
SQLazy: 복잡한 SQL을 게으르게 만듭니다. 설계부터 신뢰할 수 있습니다.
SQL 중 어떤 부분이 가장 게을러지고 싶지만 감히 그럴 수 없나요? 각 데이터베이스의 방언(dialects) 재작성? 세션 분할(Session splitting)? 아니면 레거시 분기별 보고서들의 복잡한 덩어리인가요? 댓글에서 저희와 대화해 주세요. 샘플 데이터베이스는 다음과 같습니다:
https://github.com/SPLWare/SQLazy/tree/master/examples