InterOrdra 구축: 시맨틱 갭 탐지기
Source: Dev.to
위의 소스 링크에 포함된 전체 텍스트를 제공해 주시면, 해당 내용을 한국어로 번역해 드리겠습니다. 코드 블록, URL 및 기술 용어는 그대로 유지하면서 번역해 드립니다.
Week 1 – 추상적인 아이디어에서 배포된 MVP까지
안녕하세요! 저는 Rosibis이며, 기술 지원에서 AI 엔지니어링으로 전환 중인 AI/ML 학생입니다. 이것은 InterOrdra, 의미 격차 감지 프레임워크를 구축하는 첫 번째 주입니다. 제가 여정을 기록하는 것을 함께 따라와 주세요.
문제
당신에게는 완벽히 명확하게 설명했는데도 상대방의 눈이 멍해지는 모습을 본 적이 있나요? 혹은 기술적으로 질문에 답은 되지만 어쩐지 만족스럽지 않은 문서를 읽은 적이 있나요?
그것이 바로 시맨틱 갭(semantic gap) — 그리고 이 갭은 어디에나 존재합니다:
- 📚 사용자가 갖고 있지 않은 지식을 전제로 하는 기술 문서
- 🤖 혼란스러운 응답을 이끌어내는 AI 프롬프트
- 🔬 비전문가에게는 완전히 이해되지 않는 전문가 설명
- 💼 서로 “다른 언어”를 쓰는 팀 간 커뮤니케이션
가장 답답한 점은 이 갭이 보이지 않는다는 것입니다. 뭔가 잘못됐다는 건 알지만, 정확히 어디에서 오해가 발생했는지 짚어낼 수 없습니다.
저는 이런 보이지 않는 갭을 보이고 측정할 수 있게 해주는 도구를 만들고 싶었습니다.
통찰
몇 주 전, 나는 이 반복적인 생각을 했었다 (솔직히 말하면, 집착에 가까웠다):
“만약 커뮤니케이션 격차가 무작위 오류가 아니라 시맨틱 토폴로지에서 감지 가능한 패턴이라면 어떨까요?”
나는 그것을 기하학적으로 보기 시작했다 – 마치 두 텍스트가 고차원 공간의 포인트 클라우드로 존재하는 것처럼. 그들이 서로 이해할 때, 클라우드가 겹친다. 이해하지 못할 때는 고아 개념이 한 공간에 떠다니며 다른 쪽에 대응되는 포인트가 없다.
이것은 내가 Resonance Spectrometer(공명 스펙트로미터)라고 부르는 더 큰 비전으로 이어졌다 – 서로 다른 “커뮤니케이션 밴드” 전반에 걸쳐 조정된 패턴 전송을 감지하는 도구(인간 언어뿐 아니라 조직된 정보를 전송하는 모든 시스템).
InterOrdra는 그 스펙트럼에서 첫 번째 도구이며, 인간 텍스트의 시맨틱 격차를 감지한다.
하지만 나는 구체적인 시작점이 필요했다. 그래서: MVP 먼저, 철학은 나중에.
기술 결정
스택
- Python 3.11 – 빠르고 깔끔하며 훌륭한 ML 생태계
- Sentence‑Transformers (
all-MiniLM-L6-v2) – 가벼운 의미 임베딩 - Scikit‑learn – 클러스터링(DBSCAN) 및 유사도 계산
- Streamlit – UI 빠른 프로토타이핑 (Streamlit Cloud에 배포)
1. .gitignore & Venv
# .gitignore
venv/
__pycache__/
*.pyc
git add .gitignore
git commit -m "Remove venv from tracking"
git push --force
교훈: .gitignore는 당신의 친구입니다. 재앙을 이미 푸시한 뒤가 아니라 먼저 설정하세요.
2. Import‑Path 혼란
Streamlit Cloud는 로컬 개발 환경과 다른 작업 디렉터리 가정을 사용합니다. 배포 시 임포트가 깨졌습니다:
# Broke on Streamlit Cloud
from backend.embeddings import generate_embeddings
수정된 버전
import os, sys
sys.path.append(os.path.dirname(os.path.abspath(__file__)))
from backend.embeddings import generate_embeddings
교훈: 항상 상대 경로 임포트를 테스트하세요. 가능하면 프로젝트를 처음부터 올바른 Python 패키지 구조로 만들세요.
현재 상황
✅ 작동하는 부분
- 두 텍스트 간 의미 유사도 분석
- “고아 개념” 탐지 (한 텍스트에 존재하지만 다른 텍스트에 매치되지 않는 아이디어)
- 어휘 분석 (공유 단어 vs. 고유 단어)
- 의미 토폴로지의 3‑D 인터랙티브 시각화
- 격차를 해소하기 위한 실행 가능한 권고사항
배포 및 공개됨.
⚠️ 현재 제한 사항
- UI가 스페인어만 지원 (영어 번역 진행 중)
- 모바일 환경에서 가끔 렌더링 문제 발생
- 유사도 기반 격차만 감지 – 보완성 및 조화 패턴은 아직 탐색 중
📊 초기 반응
- 약 1 주일간 운영 중
- 자연스럽게 성장 중
- 첫 사용자 피드백을 기다리는 중
다음 단계
즉시 (이번 주)
- 🌐 영어 UI 전환
- 📱 모바일 반응형 수정
- 📄 결과를 PDF로 내보내기
단기 (다음 2–4 주)
- 고급 갭 감지 – 유사도 분석을 넘어
- 분석 설정 (실제 사용 패턴 보기)
- 파일 업로드 지원 (
.txt,.docx,.pdf)
중기 (1–3 개월)
- 공개 API (FastAPI 백엔드)
- 다중 텍스트 비교 (동시에 3개 이상의 텍스트 분석)
- 보다 깊은 의미‑위상 분석
직접 해보기
무엇을 발견하게 될지 궁금하신가요? 발견한 내용을 댓글에 남기거나 흥미로운 문제가 생기면 GitHub에 이슈를 열어 주세요. 즐거운 갭 사냥 되세요!
버그를 발견했어요 🐛
반성
이 프로젝트는 다르게 느껴졌습니다. 보통은 끊임없이 스스로를 의심하곤 했죠. InterOrdra와 함께라면 이상한 확신이 생겼습니다 – 마치 존재해야 할 무언가를 만들고 있었고, 그 사실을 먼저 알아챈 사람은 바로 나라는 느낌이었습니다.
“음, 흥미로운 아이디어”에서 “사용자와 함께 배포된 MVP”까지 4일이 걸렸습니다. 이것이 바로 다음 요소들의 힘입니다:
- 구체적인 문제에서 시작하기 (추상적인 철학이 아니라)
- 지루하고 신뢰할 수 있는 기술 선택하기
- 빠르게 배포하고, 더 빠르게 반복하기
- 완벽함에 얽매여 좋은 것을 놓치지 않기
다음 글: 의미‑위상 수학과 DBSCAN + 코사인 유사도가 전통적인 NLP가 놓치는 구조를 어떻게 드러내는지 깊이 파고들 예정입니다.
어떻게 생각하시나요? 작업 중 의미적 격차를 경험한 적이 있나요? 시스템 간 오해를 현재 어떻게 해결하고 계신가요?
아래에 댓글을 남겨 주세요 – 여러분의 생각을 듣고 싶습니다! 💬
3. 시리즈 메타데이터 (향후 게시물용)
두 번째 글을 게시할 때, 시리즈를 만들 수 있습니다:
Series: Building InterOrdra
Part: 1
공개적으로 만들기. 공개적으로 배우기. 공개적으로 부수기.
함께 따라오세요: 저는 Technical Support Engineer → AI/ML Engineer 로의 전체 여정을 기록하고 있습니다.