에토스AI · 개발 이력 (Changelog)
버전 규약: Semantic Versioning —
MAJOR.MINOR.PATCH. 각 릴리스는 git 태그(v0.x.x)로 표시하고, 요약을 Slack#veorai-dev+ veor admin(products/veor-ai/)에 반영한다. 형식: Keep a Changelog.
[Unreleased]
[0.5.1] — 2026-08-03
Changed
- 표기 한글화 — 국내 시장 전용 확정에 따라 제품 표기를 에토스AI로 통일 (로고 워드마크·화면·메일·문서·OG). 파생: 에토스 허브(MCP)·에토스 AI 게이트웨이·에토스 스마트 라우팅. 영문 Ethos.AI 는 도메인(ethos.ai.kr)·검색 키워드로만 유지
- CI: EC2 배포·Slack 알림 워크플로우가 시크릿 미등록 시 실패 대신 skip
- 업종별 데모 ERP 시드 — 공공행정·제조·수탁검사 3개 팩(
npm run seed:demo) + MCP QA 하네스(npm run qa:mcp). 데이터에게 묻기가 게이트웨이 키 하나로 툴콜링하도록 통일 - MCP Hub → 데이터 커넥터 명칭 변경 (소비자 언어) — 외부 MCP 서버명은 "에토스AI MCP"
- 브랜드 컬러·심볼 전면 교체 — 심볼을 솔리드 방패로, 브랜드색을 베오르 블루에서 에메랄드(#0FA47A)/딥 포레스트(#0D2B23) 로 전환. 앱 강조색·다크 섹션·파비콘·OG 일괄 적용
[0.5.0] — 2026-08-03
Changed — 제품 브랜드 전환: Ethos.AI
- 리브랜딩 — 제품명 VeorAI → Ethos.AI (신뢰·보안 강조, 도메인
ethos.ai.kr예정). 화면·메일·문서·OG·파비콘·로고(E 모노그램) 전면 교체. 법인 표기(주식회사 베오르)와 운영 env(VEOR_*)·저장소명은 호환성 유지를 위해 그대로 둠
Added
- 테넌트별 MCP 서버 (Ethos Hub) — 워크스페이스마다 표준 MCP 엔드포인트(
POST /api/mcp, Streamable HTTP) 노출. Claude Desktop 등 외부 에이전트에서 API 토큰으로 연결, 지식베이스 검색·DB 조회·메신저 발송 등 연결 상태에 따라 도구 동적 노출 - 토큰별 도구 제한 — API 토큰 발급 시 허용 MCP 도구를 선택(부서별 권한 분리)
- 데이터 노출 수준 관리 (L0~L4) — 관리자가 외부 모델사 노출 수준을 트랙 UI로 선택. 세부 기능 17종(개인정보 마스킹·엔티티 가명화·문서 발췌 가명화·첨부 차단·검증 모델사 제한 등) 개별 ON/OFF, 레벨 탭 클릭 시 해당 단계만 표시, 엔티티 가명화는 응답 스트림에서 자동 복원
- 도입 문의 모달 — 랜딩 어디서나 회사명/담당자/이메일/내용 접수 → 운영 메일 자동 전달
Changed
- 관리자·수퍼 화면 설명 문구 전수 정리 — 긴 안내를 ⓘ 툴팁·접기로 축약
- /sales 랜딩 전면 개편(스티키 네비·기능 블록·비교표), 홈(/)은 비로그인 시 게이트 없는 랜딩
- 모델·요금 문서를 게이트웨이 라이브 단가(원화, 10% 마진, 10원 올림)로 자동 표시
[0.4.0] — 2026-07-25
Added — AI 게이트웨이 전환 · 원화 과금 · 관리자 전면 개편
- 통합 AI 게이트웨이 서빙 — 모든 LLM 호출이 단일 게이트웨이를 경유. OpenAI·Anthropic·Google·xAI· Perplexity·Upstage·DeepSeek·Qwen·MoonshotAI·MiniMax·Z.ai 등 95+ 모델을 한 키로 서빙, 모델 목록 라이브 조회, 오류 한국어 매핑, 스마트 라우팅(옵션)
- 원화 확정 과금 미터링 — 호출별 실제 과금액(KRW, 부가세 제외 공급가액)을
UsageLog.costKrw로 저장. 이용 통계·대시보드 전면 원화 표시(소수 3자리), 게이트웨이 도입 이전 기록은 통계에서 제외 - 비용 한도 관리 — 워크스페이스 월 비용 한도 + 구성원별 월 이용 요금 한도(관리자 인라인 설정, 80/100% 진행바) — 한도 도달 시 채팅 429 차단
- 사용자 관리 전면 개편 — 검색(이름·이메일·부서), 인라인 한도 편집, 이용 ON/OFF, 권한 변경, 행 수정(이름·부서), 일괄 등록(붙여넣기 → 임시 비밀번호 일괄 발급, 최대 200명), CSV 다운로드, 2FA 해제(기기 분실), 초대 메일(비밀번호 설정 링크 24h)
- 모델·보안 정책 탭 — 허용 모델을 프로바이더 그룹(로고·전체선택)으로 통제 + 데이터 처리 정책 고지: 모델사 공개 문서로 확인된 학습 미사용 범위(근거 링크)와 미확인 표시를 구분 명시
- 임시·체험 계정 —
User.expiresAt만료일 기반. 만료 시 로그인·SSO·채팅·API 전부 차단, 목록 임시 D-n/만료 배지, 초대 시 만료일 지정·해제(정규 전환). 수퍼 전용 체험 워크스페이스 발급(회사명+담당자+만료일 → 관리자 계정, 초대 메일 자동) - 수퍼 콘솔 사이드바 셸 — 왼쪽 워크스페이스 목록(검색·인원·체험 배지)으로 개별 조회, 전체 현황은 KPI + 활동 TOP 8 요약. 게이트웨이 사용량·잔액, 환경 구성 점검, 도입 문의 목록 표시
- 청구서 자동 발행 문서 —
/invoice/[id]인쇄/PDF (공급가액·부가세 자동 분리, 공급자 env, 공급받는자 워크스페이스 자동), 관리자 결제 페이지에서 다운로드 - 사업자번호 자동조회 — 가입 화면에서 10자리 입력 시 법인명·주소 자동 완성(금융위 공공데이터, 폴백 수동)
- 세일즈 랜딩 v2 — 슬라이드형 → 섹션 스크롤형 SaaS 랜딩(스티키 네비·제품 목업·연동 실로고 스트립·
기능 교차 블록·비교표), 모바일 최적화. 홈(
/)은 로그인 시 채팅 앱, 비로그인 시 게이트 없는 랜딩,/sales는 리드 게이트 유지 - 도입 문의 시스템 — 랜딩 문의 모달 → DB 저장 + 영업 수신함(CONTACT_INBOX) 메일 전달(replyTo=문의자), 모바일 바텀시트
- 브랜드 로고 실장착 — 사내 시스템 24종(이카운트·더존·팝빌·네이버웍스 등) 실로고, 모델사 12종 실로고(Claude·OpenAI·Gemini·Grok·DeepSeek·Qwen·Kimi 등)
- OG·메타 전면 정리 — og:image(1200×630)·apple-icon·타이틀 템플릿·키워드·robots·테마컬러,
NEXT_PUBLIC_APP_URL기반 절대 URL
Changed
- 모든 기간 집계(월·일 경계)를 KST(Asia/Seoul) 고정 산정으로 통일
- Vercel 함수 리전 서울(icn1) 고정 — DB(서울 RDS) 왕복 지연 제거
- 관리자·수퍼 화면 간격/카드 레이아웃 정리(섹션 20px 리듬)
Fixed
- 로그인 라우트가 비활성(active=false) 계정을 차단하지 않던 문제 — 비활성·만료 검사를 로그인·SSO·가드·채팅 전 경로 공통화
[0.3.0] — 2026-07-19
Added — 2026-07-19 2차: 보안·자동화·과금 완성
- 2단계 인증(TOTP) — RFC 6238 자체 구현, 인증앱 QR·수동 키, 로그인 2단계(5분 pending), 시크릿 AES-256 봉인
- 개인정보 필터 — 주민번호(생년월일+체크섬)·카드(Luhn)·전화·이메일·여권·면허 7종을 LLM 전송 전 + 저장 전 마스킹. 워크스페이스 정책(off/mask), 답변에 🔒 마스킹 건수 표시
- 채팅 파일 첨부 — 이미지 비전 입력(Claude·GPT·Gemini) + 문서(pdf·docx·hwp 등) 텍스트 추출 인라인, 썸네일·칩 표시
- 워크플로우 서버 저장 + 스케줄 트리거 — 이름 저장·불러오기·공유, 요일·시각(KST) 정기 실행, 최근 실행 상태
- MCP Hub 실연동 — Connection 모델(AES-256 봉인). Slack·잔디·두레이 웹훅 실발송 검증, Notion·카카오워크 토큰 검증, PostgreSQL 실접속 테스트, 그 외는 암호화 저장(승인 후 활성). 워크플로우 Slack 노드가 연결 자동 사용
- 지식베이스 복수화 + 부서 권한 — 부서 전용 KB 는 해당 부서·관리자만 접근 (업로드·검색·삭제·채팅 결합 전부)
- 프롬프트 금칙어 — 관리자 등록 단어 포함 시 전 경로 차단 + 사유 표시
- 공지사항 — 수퍼 게시 → 전 테넌트 상단 배너 (일반/주의, 닫음 기억)
- 결제(무통장 입금) — 요금제(trial/standard/enterprise), 청구서 자동 채번(VE-YYYYMM-####)·입금 확인, 관리자 결제 페이지(입금 계좌·내역). 카드 PG 미사용
- 계열사 그룹 — 본사-종사업장 2단계 그룹, 그룹 통합 사용량 (수퍼 콘솔)
- 비밀번호 정책 + 보안 헤더 — 8자+영문+숫자·흔한 비밀번호 차단, CSP·HSTS·X-Frame-Options 등
- Gemini 툴콜링 — 데이터에게 묻기 3사(Claude·GPT·Gemini) 모두 실 도구 호출 지원
Added — 2026-07-19 대규모 기능 확장
- 대화 이력 DB 저장 — 로그인 시 모든 대화 서버 저장·기기 간 동기화, localStorage 1회 자동 이관. 대화 삭제·이름 변경·검색, 스트리밍 중단(부분 답변 저장), 답변 복사, 답변별 모델·토큰·시간 표기
- 프로젝트 — 대화 폴더 + 프로젝트 지침 자동 주입, 지식베이스 자동 결합 옵션
- RAG 지식베이스 — 업로드(txt·md·csv·json·pdf·docx·xlsx)→청킹→임베딩(pgvector)→근거 인용 답변. 일반 채팅 "지식베이스 ON" 토글, HNSW 인덱스, OpenAI 임베딩 + 키 없을 때 로컬 폴백
- 실데이터 연결 — 회사 PostgreSQL 등록(비밀번호 AES-256-GCM 암호화)→AI가 SQL 생성·읽기전용 실행 (READ ONLY 트랜잭션 + 단일 SELECT + 타임아웃·행수 제한). "데이터에게 묻기"에서 소스 선택
- 예약 리포트 — 요일·시간(KST) 지정 정기 실행, 결과를 대화로 배달. Vercel Cron + 지금 실행
- 모델 라이브 조회 — Anthropic /v1/models 실시간 조회로 Claude 전 세대 노출, 정적 폴백 14종
- 조직 관리 확장 — 초대 이메일(비밀번호 설정 링크), 월 토큰 한도(전 경로 429 차단)+진행바, 관리자 모바일 사이드바
- 수퍼 관리자 — 워크스페이스 행 클릭 → 상세 드릴다운(구성원별 사용량·14일 추이·모델별·문서·토큰)
- 온프레미스 미터링 —
POST /api/v1/metering집계 카운터 수신(내용 미전송), 대시보드 합산 - 보안 하드닝 — 로그인·가입·비밀번호찾기 레이트 리밋(Postgres 고정 윈도우)
function.md— 구현/목업/미구현 전수 정리 문서- 워크플로우 실행 엔진 — 캔버스 그래프를 서버가 실제 실행(AI·RAG검색·DB조회·이메일·웹훅), 노드별 결과 패널 + 실행 이력(WorkflowRun)
- Google SSO(OIDC) — env 설정만으로 활성화, 신규는 비밀번호 없는 가입
- 한글 문서 지원 — .hwp(CFB 레코드 파서)·.hwpx(OWPML) 텍스트 추출 → RAG 업로드
- /sales 리드 게이팅 — 이름·직책·이메일 입력 후 열람(30일 쿠키), 수퍼 콘솔에서 열람자 조회
- /brochure — 전체 기능 명세표(엑셀형, 39개 기능) · /manual, /manual/admin — PPT 스타일 사용자/관리자 매뉴얼 (각 8슬라이드)
Added
- 관리자 대시보드 (
/admin) — 실시간 사용량 조회- 챗·데이터Q&A 사용 시
UsageLog기록(누가·모델·토큰·부서). Anthropic·OpenAI·Gemini 토큰 캡처 - 관리자(ADMIN) 전용, 본인 워크스페이스 스코프: 총 메시지·토큰, 구성원별·모델별·부서별 집계, 최근 활동
- 15초 자동 갱신 + 새로고침. 비로그인→로그인, 구성원→차단(403/리다이렉트) 3중 게이팅
- 챗·데이터Q&A 사용 시
- 엔터프라이즈 인증 (Phase 1) — 실제 백엔드 첫 도입 (Docker/AWS 대상)
- Prisma + PostgreSQL 데이터 모델: 워크스페이스(사업자번호)·부서·유저·대화·메시지
- 회원가입/로그인/세션: 사업자번호 기준 워크스페이스, 최초 가입자=관리자·이후=구성원, 부서 upsert. bcrypt 해시 + jose 쿠키 세션(HttpOnly)
- 가입 게이팅:
AUTH_ENABLED=true시 로그인해야 앱 진입(미들웨어). 없으면 기존 데모 모드 유지 → Vercel 데모 안 깨짐 - Docker 구성:
Dockerfile·docker-compose.yml(앱+Postgres), 시작 시 자동 마이그레이션 - API:
/api/auth/{signup,login,logout,me}(모두 서버 전용),/login·/signup페이지
- 프로바이더 연동 상태 표시:
/api/health(키 존재 여부만 반환, 키값 비노출) + 모델 선택기에 프로바이더별 "연결됨/키 필요" 배지 — 실제 테스트 전 연동 확인 - 데이터 Q&A 고도화 — 업종·차트·세일즈 데모
- 업종별 데이터셋: 건설·제조·유통 3종, MCP Hub에서 전환(스탯·답변·차트 모두 반영)
- 답변 차트: 미수금·매출(바), 재고 대비 안전재고(게이지) — 툴 결과에서 결정적 생성,
ChartView /sales라이브 데모 임베드: 슬라이드에서 실제 질문→조회→근거·차트 답변을 바로 시연(SalesDemo)
- 데이터에게 묻기 (핵심 기능): 연결된 사내 데이터에 자연어로 물으면 AI가 실제 조회해 근거와 함께 답
lib/dataQuery.ts결정적 쿼리 엔진(매출·미수금·재고) + 데모 데이터셋(lib/demoData.ts)/api/data-chat— Anthropic·OpenAI 툴 콜링 루프 + 키 없을 때 결정적 폴백(실쿼리), NDJSON 스트리밍DataAsk.tsx— 연결 배너·실계산 스탯·툴 콜 근거 칩·마크다운 답변, 사이드바 최상단 배치- 예: "이번 분기 미수금 왜 늘었어?" → 미수금 조회 → "직전 분기 대비 66%↑, 60일초과 85%…" 실데이터 답
Changed
- 포지셔닝 재정렬 — "자동화 위의 AI 현황·보고 레이어": 실행(RPA·MES) 경쟁이 아니라 그 위의 확인·현황·보고로 메시지 전환
/sales카피 전면 리라이팅: 히어로 "자동화는 이미 돌아갑니다, 문제는 아무도 안 본다는 것" + 문제 재정의(취합·사각지대·파편화)- 4기둥을 읽기(연동)·확인(파이프라인)·이해(RAG)·보고(예약) 레이어로 재구성
- 보안 슬라이드 "읽기만 합니다, 그래서 더 안전합니다"(읽기 전용 + DMZ)로 강화
- MCP Hub 헤더도 "읽어옵니다(현황 수집)" 톤으로 정렬
Added
- 제품 소개 페이지
/sales(PPT 슬라이드 느낌, 11슬라이드): 홍보·세일즈용 랜딩- 히어로 · 문제 · 솔루션 4기둥(워크플로우·MCP·RAG·예약) · 강점 슬라이드
- 보안 슬라이드: DMZ 게이트웨이 3존 구조도 + 인바운드 개방0·자격증명 사내보관·망분리 대응·최소권한 4대 보증
- 멀티 프로바이더(Claude/GPT/Gemini)·왜 VeorAI·도입 문의 CTA
- scroll-snap 슬라이드, 브랜드 토큰 기반 반응형
Changed
- MCP Hub 연동 정보 실검증: 30종 각 시스템의 공식 개발자문서를 조사해 실제 연동 방식으로 교체
- DMZ 게이트웨이 아키텍처 명문화: 고객사 DMZ에 Connector(API 게이트웨이) → 내부 API 노출 → Hub는 아웃바운드로만 통신
- 연동 가능 3등급 배지: 바로 연동(공개 API·DB) / 승인·구축 필요 / 직접연동 불가(망분리·API 없음)
- 실제 공개 API 확인: 이카운트·SAP·팝빌·바로빌·네이버웍스·카카오워크·두레이·잔디·하이웍스·나라장터(공공데이터포털 OpenAPI)·Slack·Teams·Google·Notion
- 직접연동 불가 정직 표기: 웹케시·홈택스·위택스(중계사 경유)·새올·온나라·e호조(행정내부망 망분리)
- 각 시스템 실제 인증 방식·공식 개발자문서 링크 추가, closed 등급은 연결폼 대신 현실적 경로 안내
- Docs 4종(/docs/mcp) DMZ 기준으로 전면 재작성
Added
- RAG 지식베이스(파일 업로드 중심): 지식베이스 관리 + 드래그앤드롭 업로드
- PDF·Word·한글(HWP)·Excel·CSV·텍스트·PPT·Markdown 등록, 미지원 형식 구분
- 문서별 크기·추정 청크 수·임베딩 상태(임베딩 중→준비 완료) 표시, 문서 검색
- 지식베이스 생성/삭제, localStorage 저장 (실제 청킹·임베딩은 사내 RAG 백엔드)
- 워크플로우(N8N 스타일 노드 캔버스): 시각적 자동화 빌더
- 노드 팔레트 5종(트리거·AI·연동MCP·로직·액션, 총 15개 노드)
- 드래그로 노드 이동, 출력→입력 포트 드래그로 연결(베지어), 연결 클릭 삭제
- 노드 선택 인스펙터(이름 편집·삭제), 캔버스 패닝, 실행 시뮬레이션(위상순 하이라이트)
- 예시 워크플로우("매일 매출 요약→Slack") 기본 제공, localStorage 저장
- MCP Hub 연동 카탈로그: 국내 기업 시스템 30종 연동 카드 (검색·카테고리 필터 + 연결 모달)
- DB(PostgreSQL·MySQL·Oracle·MSSQL·Tibero·MongoDB) 바로 연결 폼
- ERP(이카운트·더존·영림원·SAP·웹케시) · 세무(팝빌·바로빌·홈택스·위택스)
- 그룹웨어(네이버웍스·카카오워크·두레이·잔디·하이웍스·다우오피스) · 협업(Slack·Teams·Workspace·Notion)
- 공공(새올·온나라·e호조·나라장터·정부24)
- Docs 연동 가이드 4종(/docs/mcp) — 개요·DB·시스템·공공설치형
- 모바일 최적화: 사이드바 슬라이드 드로어(햄버거) + 백드롭, docs 접이식 네비, 헤더·입력·카드 반응형
- 커스텀 모델 선택기(ModelPicker): 프로바이더별 그룹 + 실제 로고 + 체크. native select 제거
- 프로바이더 로고(
public/logos/*.svg): Anthropic·OpenAI·Google — 파일 교체로 공식 로고 반영 가능 - 버튼 폴리시: docs 상단 앱열기(primary)/GitHub, 모바일은 햄버거 메뉴로 수납
이하 이전 기록
- 문서 사이트
/docs(SaaS 스타일): 개요 · 시작하기 · 릴리스 노트 · 모델·프로바이더 · API 레퍼런스- 릴리스 노트는
CHANGELOG.md를 렌더(버전관리 단일 소스), 앱 사이드바에 "문서" 링크
- 릴리스 노트는
- 사이드바 재설계: 프로젝트/MCP Hub/RAG/워크플로우/예약 네비 + 하단 계정 카드
- 커밋 단위 Slack 알림 (
scripts/notify-commit.mjs) — 커밋→push→Slack 자동화
[0.2.0] — 2026-07-14
Added
- 멀티 프로바이더 모델 연동: Anthropic(Claude), OpenAI(ChatGPT), Google(Gemini) 동시 지원
- 모델 레지스트리 단일 소스:
lib/models.ts(프로바이더·모델 ID·환경변수 매핑) - 헤더에 모델 선택 드롭다운 (프로바이더별 그룹). 선택은 localStorage 저장
/api/chat프로바이더 라우팅: Anthropic/OpenAI는 공식 SDK, Gemini는 REST SSE 스트리밍
- 모델 레지스트리 단일 소스:
- 개발 이력 문서(본 파일) + 버전관리 규약 도입
Notes
- 프로바이더 키는 각각
ANTHROPIC_API_KEY/OPENAI_API_KEY/GOOGLE_API_KEY(.env.local) - 키 없는 프로바이더 모델을 고르면 안내 메시지 반환
[0.1.0] — 2026-07-14
Added
- VeorAI 챗 앱 초기 구축 (Next.js 15 + React 19 + Tailwind v4 + TypeScript)
- Veor 브랜드 적용 (
veor/brand/02_guideline.md기준)- 컬러 토큰(ink
#0B1F3A/ pulse#2E7BFF), Pretendard·Inter·JetBrains Mono, 8px 그리드, V 모노그램 로고
- 컬러 토큰(ink
- ChatGPT/Claude 스타일 메인 챗 UI
- 다크 사이드바 + 대화목록, 스트리밍 응답, 마크다운 렌더, localStorage 대화 저장, 자동확장 입력창
- Claude Fable 5 백엔드 (
/api/chat, Anthropic SDK 스트리밍) - GitHub 연동:
spacebar-corp/VeorAI