30

Why: SQL도 있는데 왜 Text2Cypher?

Day 1: Text2Cypher 개론

학습 목표

Text2SQL과 Text2Cypher의 근본적 차이를 이해한다 그래프 DB의 자연어 질의가 더 어려운 구조적 이유를 안다 LLM에게 그래프 쿼리가 어려운 5가지 원인을 설명할 수 있다

Text2SQL은 이미 있잖아?

맞다. ChatGPT, Gemini 모두 "자연어 → SQL" 변환을 잘한다.

에디터 로딩 중...

그런데 Text2Cypher는 왜 따로 배워야 할까?


1. Text2SQL vs Text2Cypher: 근본적 차이

SQL: 테이블 중심 사고

에디터 로딩 중...
  • 테이블이 정해져 있다
  • 컬럼명이 명확하다
  • JOIN 방식이 획일적이다
  • LLM이 예측하기 쉽다

Cypher: 관계 중심 사고

에디터 로딩 중...
  • 같은 노드가 여러 관계를 가진다
  • 관계 방향이 의미를 바꾼다
  • 가변 길이 경로가 존재한다
  • LLM이 예측하기 어렵다

2. 왜 그래프 쿼리가 LLM에게 더 어려운가?

이유 1: 관계의 방향성

에디터 로딩 중...

SQL에서는 JOIN 방향이 없다. 하지만 Cypher에서는 화살표 방향이 의미를 완전히 바꾼다.

LLM이 "인수한"과 "인수된"을 구분해서 화살표 방향을 결정해야 한다.

이유 2: 가변 길이 경로

에디터 로딩 중...

SQL로 이걸 표현하려면 재귀 CTE가 필요하다. 복잡하다.

에디터 로딩 중...

Cypher는 [*1..2] 한 줄로 끝난다. 하지만 LLM이 언제 가변 길이 경로를 써야 하는지 판단하기 어렵다.

이유 3: 동일 레이블의 다중 역할

에디터 로딩 중...

"삼성전자와 관련된 회사"라는 질문에서 LLM이 어떤 관계를 선택할지 모호하다.

이유 4: 속성 vs 레이블 매핑

에디터 로딩 중...

같은 질문인데 DB 모델링에 따라 Cypher가 완전히 달라진다. LLM이 스키마를 정확히 알아야 올바른 패턴을 선택할 수 있다.

이유 5: 집계와 패턴의 조합

에디터 로딩 중...

단순해 보이지만, LLM이 결정해야 할 것:

  • 관계 방향 (→ vs ←)
  • 집계 함수 (count)
  • 정렬 방향 (DESC)
  • GROUP BY는 자동 (Cypher 특성)

3. 스키마가 유연하다

특성RDBMSGraph DB
스키마엄격 (테이블, 컬럼 고정)유연 (레이블, 속성 자유)
같은 타입 노드동일 컬럼 보장노드마다 속성이 다를 수 있음
관계FK로 제한어떤 노드든 연결 가능
LLM 난이도쉬움 (구조 명확)어려움 (다양한 패턴)

스키마 유연성의 함정

에디터 로딩 중...

같은 Company 레이블인데 속성 이름이 다를 수 있다. industry vs sector, founded vs year_established...

LLM이 "설립 연도"를 물으면 foundedyear_established 중 뭘 쓸지 모른다.


4. 쿼리 패턴이 다양하다

에디터 로딩 중...

LLM이 질문을 보고 어떤 패턴인지 파악해야 한다. 패턴 선택을 잘못하면 아예 다른 결과가 나온다.


Text2Cypher의 핵심 도전 요약

도전설명난이도
스키마 이해LLM이 DB 구조를 모르면 엉뚱한 레이블 사용높음
관계 방향화살표 방향 하나가 의미를 바꿈중간
패턴 선택단순 조회인가? 경로 탐색인가?높음
파라미터 추출"삼성전자" → {name: '삼성전자'}중간
모호성 해소"관련된" = 경쟁? 파트너? 투자?높음
보안DELETE, DROP 같은 위험한 쿼리 차단필수
에러 처리실패 시 자동 수정높음

이번 주에 이 모든 것을 다룬다.


실무 적용 사례

분야활용예시 질문
BI 대시보드비개발자가 직접 데이터 탐색"올해 신규 고객 중 재구매율"
챗봇"우리 회사 파트너 현황 알려줘""파트너사 중 반도체 분야"
검색 시스템자연어로 지식그래프 검색"코로나와 관련된 약물"
내부 도구개발자 의존도 감소"지난 분기 이직한 인원"
컴플라이언스규제 관계 탐색"이 거래의 관련 규정"
추천 시스템유사 패턴 탐색"이 고객과 비슷한 구매 패턴"

자연어 질의는 데이터 민주화의 핵심이다.