Enterprise Data Discovery / Logistics

SQL을 모르는 현업 담당자도 필요한 데이터를 찾고 활용할 수 있도록

고객의 최초 요청은 임직원이 SQL을 더 쉽게 사용할 수 있게 해달라는 것이었습니다. 하지만 쿼리 문법보다 먼저 해결해야 할 문제가 있었습니다. 현업 사용자는 어떤 데이터가 존재하는지, 어디에 있는지, 무엇을 검색해야 하는지 알기 어려웠습니다. 저는 프로젝트 중간, 베타테스트 2주 전에 현장 FDE로 투입되어 고객 요구사항을 제품과 코드에 직접 반영했습니다. 200명 대상 베타테스트를 마쳤고, 현재는 포털의 데이터 거버넌스 기능을 계속 개발하고 있습니다.

베타 완료 · 전사 확대와 거버넌스 진행 중 베타 2주 전 중간 투입현장 FDE20명 이상 다자 프로젝트
200

베타테스트 완료

2

투입부터 베타테스트까지

5/ 20+

전체 인원 중 Upflow 인원

3.5억

Databricks에 연결되어 포털에서 표현되는 데이터

이 페이지의 목차
  1. 01프로젝트 개요
  2. 02내가 담당한 범위
  3. 03고객의 최초 요청
  4. 04문제 발견: 작동하지만 실패한 화면
  5. 05제품을 결정한 제약조건
  6. 06핵심 의사결정
  7. 07서비스 아키텍처
  8. 08Query Builder — 직접 구현한 흐름
  9. 09구현과 반복
  10. 10결과 — 그리고 아직 끝나지 않은 것
  11. 11배운 점
01

프로젝트 개요

고객국내 대형 물류 기업 (익명화)
사용자SQL에 익숙하지 않은 현업 담당자
기간3월–10월. 프로젝트 중간, 베타테스트 2주 전 투입
팀 규모전체 20명 이상, Upflow 5명
담당 역할현장 FDE 및 고객 대응 개발자: 요구사항, 직접 구현, 제품 개선, 조직 간 조율
기술 환경Databricks · Power BI · Databricks 기반 LLM API
프로젝트 구조고객사, 원청 SI, 데이터 플랫폼·거버넌스 파트너, Upflow
현재 상태200명 베타 완료. 거버넌스와 전사 확대 진행 중
02

내가 담당한 범위

현장 FDE로서 고객 요구사항을 기술적으로 직접 책임지는 창구였습니다. 고객 피드백으로 요청된 개발 대부분을 직접 수행했고, 검색 결과 화면 개선, 데이터 거버넌스 기능, Query Builder의 세부 기능을 직접 담당했습니다.

직접 구현검색 결과 화면 업그레이드와 Query Builder 세부 기능 — 직접 설계하고 구현했습니다.
직접 구현데이터 품질 신호부터 관리자 수정까지 이어지는 포털의 거버넌스 업무 흐름 전체. 개발 진행 중이며 처음부터 끝까지 담당합니다.
직접 구현고객 현장의 요구사항과 피드백을 제품 및 엔지니어링 의사결정으로 전환.
총괄·조율20명 이상이 참여한 프로젝트에서 포털, Databricks, 파트너 담당 영역 조율.
총괄·조율Power BI 업무 총괄. 고객사와 모델러 사이의 소통 창구를 담당했으며, 보고서를 직접 모델링하지는 않았습니다.
03

고객의 최초 요청

“임직원이 SQL을 사용할 수 없습니다. 데이터에 접근하고 활용할 수 있도록 해주세요.”

고객, 프로젝트 착수 시점

이 요청은 SQL 문법이 핵심 장애물이라는 가정에서 출발했습니다. 하지만 쿼리를 작성하려면 먼저 어떤 데이터가 존재하고, 어떻게 구성되어 있으며, 무엇을 확인해야 하는지 알아야 합니다.

실제 문제는 쿼리를 작성하는 단계보다 앞에 있었습니다. 현업 담당자에게는 데이터를 조회하기 전에 필요한 데이터를 찾고 이해할 수 있는 방법이 필요했습니다.

최초 정의비개발자가 SQL을 쉽게 사용할 수 있도록 한다.
업무에서 발견한 문제사용자가 필요한 데이터를 찾기 위한 출발점을 알기 어렵다.
제품 정의거버넌스가 적용된 데이터 플랫폼과 데이터를 사용하려는 현업 사이에 탐색 계층을 구축한다.
04

문제 발견: 작동하지만 실패한 화면

첫 번째 버전은 200명 대상 베타테스트까지 배포됐습니다. 그리고 검색 결과 화면이 충분한 맥락을 전달하지 못한다는 직접적인 피드백을 받았습니다.

“데이터를 많이 제공하려는 것은 알겠지만, 어떤 정보가 있고 무엇을 보여주려는지 모르겠다.”

베타 사용자 피드백 요약

화면은 데이터를 반환했지만, 사용자는 자신이 무엇을 보고 있는지, 그 데이터가 전체 구조에서 어디에 속하는지 이해하기 어려웠습니다. 표면적인 화면 수정에 그치지 않고 원인을 파악하기 위해 다른 데이터 검색 서비스들을 직접 사용하고 비교했습니다. 그 과정에서 계층 구조와 필터, 결과 맥락이 사용자의 해석 부담을 어떻게 줄이는지 확인했고, 이를 바탕으로 개선 방향을 정의한 뒤 탐색 경험을 다시 설계했습니다.

검색 결과 화면 — 재설계 전후
portal / search
TB_DLV_001shipment_id, dlv_dt, ctr_no, org_cd … 48개 컬럼
TB_DLV_014dlv_seq, org_cd, dest_cd, sts_cd … 31개 컬럼
VW_DLV_SUM_Myyyymm, org_cd, qty, amt … 12개 컬럼
TB_DLV_HISTdlv_seq, chg_dt, bef_sts, aft_sts … 22개 컬럼
TB_DLV_EXCPdlv_seq, excp_cd, rmk … 17개 컬럼
단어가 일치하는 모든 결과가 사용자에게는 보이지 않는 기준으로 정렬됩니다. 계층도, 담당자도, 최신성도, 비슷한 두 테이블을 구분할 방법도 없습니다.
portal / discover
데이터 도메인
  • 물류128
  • 배송36
  • 창고44
  • 운송48
  • 재무57
  • 고객39
인증 데이터만24시간 내 갱신데이터 담당자 있음
물류 배송 일별
배송 현황 (일별)
배송 건별 일 단위 1행. 4개 원천 시스템에서 표준화되었습니다.
인증됨담당: 운영데이터팀04:10 갱신120만 행
물류 배송 예외
배송 예외 건
지연·실패·재시도 배송과 사유 코드.
인증됨담당: 운영데이터팀04:10 갱신8.4만 행
물류 배송 월별
배송 물량 (월별)
포털에 임베딩된 Power BI 보고서가 사용하는 집계 뷰.
보고서 원천월 단위 갱신9.6만 행
단계적 탐색: 사용자가 도메인을 좁히고, 각 결과의 위치를 확인하고, 열기 전에 거버넌스 맥락을 함께 읽습니다.
대체 데이터로 재구성한 화면입니다. 고객사 데이터셋, 사용자명, 식별자는 포함되어 있지 않습니다. 변경의 핵심은 시각적 정리가 아니라, 사용자가 무엇을 열기 전에 "지금 어디에 있고, 이것이 무엇이며, 믿어도 되는가"에 답할 수 있게 만든 것입니다.
  • 결과 중심 화면에서 단계적인 탐색 방식으로 전환
  • 평면적인 검색 결과를 계층 구조와 필터 중심으로 변경
  • 사용자가 데이터 카탈로그를 알고 있다고 가정하지 않고, 각 결과의 위치와 맥락을 함께 제공
05

제품을 결정한 제약조건

새로운 환경에서 처음부터 만드는 작업이 아니었습니다. 기존 엔터프라이즈 시스템과 협업 구조 안에서 작동해야 했습니다.

  • Databricks 데이터 플랫폼이 이미 구축되어 있었고 파트너사가 운영하고 있었습니다.
  • 포털이 기존 데이터 거버넌스와 접근 권한을 우회해서는 안 됐습니다.
  • 주요 사용자는 분석가나 개발자가 아닌 현업 담당자였습니다.
  • 여러 회사가 각기 다른 시스템 계층을 담당했기 때문에 기술과 업무의 책임 범위를 명확히 해야 했습니다.
  • 베타테스트 2주 전에 투입되어, 기존 코드와 고객 상황을 빠르게 이해하면서 즉시 납기까지 맞춰야 했습니다.
  • 첫 번째 버전은 200명을 지원하면서 향후 전사 확대와도 호환되어야 했습니다.

저희 팀은 포털 계층과 Power BI 제공을 담당했고, Databricks 플랫폼을 대체하지는 않았습니다. 저는 포털의 기술 방향과 직접 구현을 책임지면서, 보고서 업무에서는 고객사와 모델러를 연결하고 전체 진행을 총괄했습니다. 이 경계가 제품의 초점과 참여자별 책임을 명확하게 유지했습니다.

06

핵심 의사결정

01SQL 교육 도구가 아닌 데이터 탐색 계층을 만든다

고객의 최초 요청을 최종 명세가 아니라 문제를 찾기 위한 출발점으로 보았습니다. 쿼리 생성을 먼저 최적화하는 대신, 어떤 데이터를 사용할 수 있는지 발견하고 이해 가능한 범위까지 좁혀가는 경험을 중심으로 제품을 구성했습니다.

핵심 경험을 "더 나은 쿼리 작성"에서 "올바른 출발점 찾기"로 전환한 결정입니다.

trade-off쿼리 생성 기능은 뒤로 밀렸고 PoC로 남았습니다. 더 많은 사용자의 첫 장벽을 먼저 없애는 쪽을 택했습니다.
02첫 번째 검색 결과 화면을 수정하지 않고 다시 설계한다

첫 버전은 베타까지 배포됐지만 사용자가 결과를 읽지 못했습니다. 화면을 조정하는 대신, 다른 데이터 검색 서비스를 직접 사용하며 구조가 실패한 이유를 찾고 계층 구조·필터·결과 맥락을 중심으로 정보 구조를 다시 만들었습니다.

trade-off베타 진행 중 재작업이라는 비용이 있었습니다. 대안은 아무도 사용하지 못하는 정상 동작 화면이었습니다.
03아키텍처 안에서 책임 범위를 명확하게 유지한다

포털은 Databricks에 연결되어 표준화된 내용을 현업 사용자가 탐색할 수 있는 형태로 보여줍니다. 정제된 Gold Mart 데이터셋으로 Power BI 보고서를 만들고, 완성된 보고서는 다시 포털에 임베딩합니다. 포털은 기존 데이터 플랫폼을 대체하지 않으면서 탐색, 쿼리, 보고서, 거버넌스 경험을 제공합니다.

기술적인 결정인 동시에 프로젝트 운영에 관한 결정이었습니다. 여러 조직이 함께하는 프로젝트에서는 불명확한 책임 범위 자체가 시스템의 위험이 됩니다.

trade-off플랫폼 동작을 바꿀 수 있는 자유는 줄어듭니다. 대신 네 개 조직 사이의 경계가 분명해집니다.
04자연어 쿼리 생성을 PoC로 한정하고, 그렇게 표기한다

Query Builder는 Databricks 기반 LLM으로 사용자의 의도를 쿼리로 변환합니다. 사용자는 생성된 쿼리를 확인한 뒤 Databricks에서 실행하고, 반환된 데이터를 포털에서 확인한 다음 Excel로 내보낼 수 있습니다.

전체 흐름은 작동하지만, 현재 PoC에는 생성된 쿼리를 운영 수준에서 검증하는 계층이 없습니다. 이 계층을 생성기와 함께 설계해야 기능이 완성됐다고 말할 수 있습니다.

trade-off완료가 아닌 PoC로 표기했습니다. 거버넌스가 적용된 데이터에 검증되지 않은 생성 쿼리를 실행하는 것은 기능이 아니라 거버넌스 실패이기 때문입니다.
05데이터 품질을 실제 거버넌스 업무 흐름으로 만든다

거버넌스 기능은 품질 지표 대시보드에 그치지 않습니다. Databricks 데이터의 표준화 상태와 오염 정도를 측정하고, 거버넌스 관리자가 발견된 문제를 검토한 뒤 포털에서 수정할 수 있어야 합니다.

이 영역 전체를 담당하고 있습니다. 데이터 품질 신호를 관리자 검토와 수정으로 연결해, 표준화를 일회성 정제 작업이 아니라 조직이 반복 운영할 수 있는 프로세스로 만드는 중입니다.

trade-off대시보드보다 범위가 큽니다. 대시보드는 문제를 보고하고, 업무 흐름은 문제를 닫습니다.
07

서비스 아키텍처

포털 · Databricks · Power BI와 담당 범위
포털 · Databricks · Power BI와 담당 범위현업 사용자SQL 미사용거버넌스관리자데이터 포털계층 탐색 · 검색 · 필터Query BuilderPoC — 검증 계층 없음결과 화면 + Excel 내보내기거버넌스 업무 흐름개발 중거버넌스 및 접근 권한표준화된 데이터 (Databricks)Gold Mart — 정제 데이터셋Databricks 기반 LLM API데이터 품질 · 오염도 측정Power BI 보고서 — 내가 총괄, 모델러가 제작검색실행생성 요청생성 쿼리결과품질 신호수정임베딩
직접 구현총괄·조율기존 시스템 / 파트너 담당
포털은 기존 플랫폼을 대체하지 않고 사용자와 데이터가 만나는 탐색·상호작용 계층을 담당합니다. 연결된 데이터는 Databricks에서 표준화되어 포털에 표현되고, Gold Mart 데이터셋을 기반으로 저희 팀이 만든 Power BI 보고서가 포털에 임베딩됩니다. 저는 보고서를 직접 모델링하는 대신 고객사와 모델러를 연결하고 전체 업무를 총괄합니다.

Query Builder는 쿼리 생성과 실행, 결과 확인, Excel 내보내기까지 전체 흐름을 지원합니다. 남은 핵심 과제는 실행이 아니라 쿼리 검증 계층입니다. 거버넌스 기능은 Databricks의 데이터 품질과 오염 정도를 측정해 관리자에게 보여주고, 포털에서 표준화 상태를 검토·수정할 수 있게 합니다.

거버넌스 업무 흐름 — 측정에서 수정까지
거버넌스 업무 흐름 — 측정에서 수정까지품질 측정표준화 · 오염도관리자 검토포털에서 수행수정 반영표준화 정정플랫폼 데이터 갱신다음 측정값이 바뀜순환 자체가 목적
개발 진행 중입니다. 이 순환의 핵심은 수정 결과가 다시 플랫폼에 반영되어 다음 측정값을 바꾼다는 점입니다. 표준화가 일회성 정제가 아니라 운영되는 프로세스가 됩니다.
08

Query Builder — 직접 구현한 흐름

의도 → 쿼리 → 실행 → 결과 → Excel
단계 1 · 의도

사용자가 질문을 그대로 적습니다

진입 시점에 SQL이 필요하지 않습니다. 탐색 단계에서 이미 좁혀 놓은 데이터셋 안에서, 사용자의 표현 그대로 의도를 입력합니다.

이 데이터셋에 질문하기
1 / 5
대체 데이터로 재구성했습니다. 2단계가 PoC의 경계입니다. 시스템이 아직 쿼리를 검증하지 못하기 때문에 사용자가 직접 확인합니다.
09

구현과 반복

베타 − 2주

현장에 투입

기존 코드와 진행 중인 고객 관계를 파악하면서 고객 요청 개발을 인수했습니다.

베타 − 2주

요청을 재정의

SQL 요청이 데이터 탐색 문제가 되면서, 첫 릴리스가 증명해야 할 것이 달라졌습니다.

베타

200명 대상 베타 완료

네 개 조직이 참여한 전체 프로젝트 팀과 함께 마쳤습니다.

베타 직후

결정적인 피드백

"데이터는 많은데 무엇이 있는지 모르겠다." 기술적으로 정상인 화면이 실패하고 있었습니다.

베타 이후

수정이 아닌 원인 분석

타사 데이터 검색 서비스를 직접 사용하며 구조가 실패한 이유를 찾고 개선 방향을 정의했습니다.

베타 이후

검색 결과 화면 재구축

계층 구조, 필터, 결과 맥락을 직접 구현했습니다.

베타 이후

Query Builder 전체 흐름

생성, 확인, 실행, 결과 표시, Excel 내보내기.

진행 중

거버넌스 업무 흐름

품질 측정, 관리자 검토, 표준화 수정. 전체를 담당하고 있으며 개발 진행 중입니다.

가장 중요한 개선은 기술적인 것이 아니었습니다

기술적으로 정상 동작하는 결과 화면도 사용자가 이해하지 못하면 실패한다는 사실을 인정하는 것이었습니다. 이는 제품 판단이고, 현장에서 그 말을 직접 들었기 때문에 드러났습니다.

10

결과 — 그리고 아직 끝나지 않은 것

완료

  • 베타 2주 전 투입되어 200명 대상 베타를 완료했습니다.
  • Databricks에 연결·표준화된 데이터를 기존 플랫폼 경계를 유지하면서 포털에 표현했습니다.
  • Gold Mart 기반 Power BI 보고서를 포털에 임베딩했습니다.
  • Query Builder의 생성·실행·결과 표시·Excel 내보내기를 구현했습니다.

진행 중

  • 전사 확대
  • 데이터 거버넌스 업무 흐름 — 측정, 관리자 검토, 수정

명확한 한계

  • Query Builder는 PoC이며 운영 수준의 쿼리 검증 계층이 아직 없습니다.
  • 사용자 만족도는 아직 측정하지 않았습니다.
  • 약 3.5억 건은 플랫폼에 연결된 데이터 규모이며, 포털이 생성하거나 처리한 데이터가 아닙니다.
  • 이 사례가 증명하는 범위는 200명 베타테스트이며 전사 구축 완료가 아닙니다.
11

배운 점

최초 요청은 업무 문제의 원인보다 가장 눈에 잘 보이는 장애물을 설명하는 경우가 많습니다. 이 프로젝트에서는 SQL이 눈에 보였지만, 데이터 탐색이 먼저였습니다.

다시 진행한다면 첫 주에 최소 기능으로 만든 검색 결과 화면을 현업 담당자 5명에게 먼저 보여줄 것입니다. 넓은 배포에 투자하기 전에 사용자가 정보 구조를 이해하는지 검증할 수 있습니다. 또한 쿼리 생성과 검증 계층을 처음부터 함께 설계할 것입니다.

모든 다이어그램은 실제 구조를 바탕으로 다시 그렸으며, 고객사명·데이터·식별자는 제거했습니다.