InterOrdra 구축: 시맨틱 갭 탐지기

발행: (2026년 1월 1일 오전 01:56 GMT+9)
10 분 소요
원문: Dev.to

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 로의 전체 여정을 기록하고 있습니다.

Back to Blog

관련 글

더 보기 »

RGB LED 사이드퀘스트 💡

markdown !Jennifer Davis https://media2.dev.to/dynamic/image/width=50,height=50,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%...

Mendex: 내가 만드는 이유

소개 안녕하세요 여러분. 오늘은 제가 누구인지, 무엇을 만들고 있는지, 그리고 그 이유를 공유하고 싶습니다. 초기 경력과 번아웃 저는 개발자로서 17년 동안 경력을 시작했습니다.