Outsider Stage 0.5
실제 봉인된 Outsider Stage 0.5 개입 체인을 재생하고 검증합니다
기업용 에이전트 AI 플랫폼, 모든 데이터·시스템을 안전히 연결, 내장 보안·거버넌스로 신뢰 AI 운영
Agentic AI Platform for Enterprises. Securely connect all your data and systems. Operate trusted AI with built-in security and governance.
보안HTML · TypeScriptGitHub @querypie온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기구현 준비 중. 현재 웹사이트 변경, 컨텐츠 추가는 corp-web-app repo 를 사용하세요~
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
• QueryPie 회사 홍보·소개 웹사이트 • Next.js App Router 기반 다국어 사이트 • 지원 locale: en, ko, ja • 주요 공개 영역: Product, Features, Demo, Documentation, Company, Plans, Legal • Admin CMS: Demo / Documentation / News 콘텐츠 편집·게시 관리형 콘텐츠는 src/content/{demo,documentation,news}/**/cnt_xxxxxx/ 아래 파일로 저장됩니다. • meta.json: 제목, slug, 카테고리, 게시 상태 등 메타데이터 • en.html, ko.html, ja.html: locale별 본문 • *.tiptap.json: Admin editor 원본 데이터README 전문 보기 ↗
en, ko, ja| 항목 | 버전 |
|---|---|
| Next.js App Router | 15.x |
| React | 19.x |
| TypeScript | 5.8 |
| Tailwind CSS | 3.4 |
| Tiptap | 3.x |
| Vitest | 3.x |
src/
├── app/
│ ├── [locale]/ # 공개 페이지: en / ko / ja
│ ├── admin/ # Admin CMS
│ └── api/ # 서버 API 라우트
├── components/
│ ├── ui/ # Button, Input, Select 등 UI primitive
│ ├── content/ # 콘텐츠 미리보기, Tiptap, rich text 렌더링
│ ├── mockups/ # 제품 화면 mockup 컴포넌트
│ ├── sections/ # 페이지 섹션
│ │ ├── common/ # Cta, DetailContentList, FeatureMediaList 등 공유 섹션
│ │ └── *.tsx # Home*, Aip* 등 페이지/도메인 접두사 섹션
│ ├── site/ # 쿠키 배너, UTM capture 등 전역 사이트 동작
│ ├── forms/ # 공유 form 조각
│ ├── layout/ # GNB, Footer, Admin shell
│ ├── admin/ # Admin 전용 화면 컴포넌트
│ └── pages/ # 공개 페이지 조립 컴포넌트
├── features/ # content, seo, contact 등 도메인 로직
├── content/ # demo, resources, news, legal 콘텐츠
├── constants/ # i18n, navigation, plans, legal 등
├── public/assets/ # 이미지, mockup asset 등 정적 리소스
└── styles/ # 전역 스타일
Admin 진입점: /admin
관리형 콘텐츠는 src/content/{demo,resources,news}/**/cnt_xxxxxx/ 아래 파일로 저장됩니다.
meta.json: 제목, slug, 카테고리, 게시 상태 등 메타데이터en.html, ko.html, ja.html: locale별 본문*.tiptap.json: Admin editor 원본 데이터src/content/legal/privacy-policy/
├── en/
│ ├── 2026-06-01.md
│ └── ...
└── ko/
├── 2026-06-01.md
└── ...
YYYY-MM-DD.mdsrc/content/legal/privacy-policy/{en|ko}/YYYY-MM-DD.md/[locale]/privacy-policy에 표시됩니다./[locale]/privacy-policy/YYYY-MM-DDja는 en 파일을 fallback으로 사용합니다.en, ko, jasrc/features/content/legacyRedirects.ts, next.config.ts/platforms/aip, /platforms/acp, /platforms/aip/fde-services이며 AIP·ACP의 하위 페이지도 /platforms 아래에 둡니다./solutions/ai-crew, /solutions/ai-dashi, /solutions/as400-cobol을 유지합니다./solutions/aip...·/solutions/acp... 주소는 새 /platforms/... 주소로 영구 리디렉션합니다.src/constants/navigation.ts, 플랫폼 경로는 src/features/platforms/routes.ts, 솔루션 경로는 src/features/solutions/routes.ts에서 관리합니다.플랫폼·솔루션 폴더는 공개 경로와 같은 기준으로 분리합니다.
src/app/[locale]/
├── platforms/ # AIP·ACP 및 하위 페이지, 플랫폼 route 테스트
└── solutions/ # AI Crew·AI Dashi·COBOL, 솔루션 route 테스트
src/components/pages/
├── platforms/
│ ├── aip/ # FDE·MCP Gateway·LLM·통합 포함
│ ├── acp/
│ └── common/ # 플랫폼 본문 공통 렌더링 컴포넌트
└── solutions/japan/ # AI Crew·AI Dashi·COBOL 컴포넌트
src/features/
├── platforms/routes.ts
└── solutions/routes.ts
public/assets/pages/
├── platforms/ # AIP·ACP 이미지, 영상 및 통합 로고
└── solutions/ # AI Crew·AI Dashi·COBOL 전용 자산
기존 /assets/products/...와 /assets/platforms/... 자산 URL은 /assets/pages/platforms/...로 영구 리디렉션합니다.
/en, /ko 홈은 공통 src/components/pages/home/HomePage.tsx를 사용합니다./ja 홈은 일본 시장에 맞춘 별도 src/components/pages/home/japan/JapanHomePage.tsx로 구성합니다.src/app/[locale]/page.tsx에서 수행하며 /ja URL과 공통 GNB·Footer 구조를 유지합니다. 언어 선택 UI는 위 사이트 운영 정책을 따릅니다.src/components/pages/home/japan, 정적 문구와 metadata copy는 src/copy/homeJapan.ts, CMS 조회와 데이터 조합은 필요할 때 src/features/home/japanPageData.ts에 둡니다.HomePage의 조건문으로 누적하지 않습니다.SEO 메타데이터와 OG 이미지는 src/features/seo에서 관리합니다.
src/features/seo/metadata.tssrc/features/seo/ogImage.tsxsrc/features/seo/ogTitle.ts홈페이지는 Partner Portal의 Hermes Agent를 상담 주체로 사용합니다. 대화창에 열린 대화
내역 최대 20개를 모두 Hermes Wrapper에 전달하고 choices[0].message.content를 답변으로 반환합니다.
답변의 지식, 문서 검색, 사실 정확성, 어조와 표현 방식은 Hermes Agent의 내부 설정과 동작에 의존합니다. 이 저장소는 제품 상담 역할, 최신 질문과 같은 언어 사용, 비밀정보와 시스템 지침 보호를 위한 3문장 system prompt만 전달합니다. 지식·품질·형식 지시를 추가하거나 외부 문서를 조회하지 않으며, 답변의 완전성·품질·근거 충족 여부를 판정하지 않습니다.
웹사이트 BFF와 UI는 다음 책임만 가집니다.
sources로 구문적으로 정규화합니다.sources는 Hermes가 응답에 포함한 링크이며 웹사이트가 사실성이나 출처 적합성을
검증했다는 의미가 아닙니다.BFF 응답은 answer, sources, 선택적인 slackThreadToken으로 구성합니다. 품질 판정값인
answered는 사용하지 않습니다.
Origin 헤더가 있을 때 API와 다른 origin이면 차단합니다. 헤더가 없는 직접 호출까지 막는 인증 기능은 아닙니다.현재 제한은 인스턴스 메모리 기준의 간단한 보호입니다. IP별 제한·서버 간 공유 카운터·일일 전체 한도·CAPTCHA는 없습니다. 동시 처리 제한은 Hermes Wrapper 응답 처리까지 적용됩니다.
| 환경 변수 | 용도 |
|---|---|
AI_CHAT_ENABLED | true로 챗봇 활성화 |
AI_CHAT_API_KEY | 환경별 Partner Portal token, Vercel의 서버 전용 비밀 환경변수 |
API 주소와 모델은 서버 전용 src/features/ai/config.server.ts의 이름 있는 상수로 고정합니다.
| 코드 상수 | 값 |
|---|---|
AI_CHAT_BASE_URL_PROD | https://partner-portal.app.querypie.com/api/hermes/v1 |
AI_CHAT_MODEL | querypie-product-guide |
브라우저는 /api/ai-chat에 질문을 보내고 Hermes 답변과 응답에 포함된 링크를 받습니다. Partner Portal Wrapper의 /chat/completions 호출은 Vercel 서버에서 수행합니다. 모든 환경에서 AI_CHAT_ENABLED=true와 API 키가 필요하며, 미설정 시 API는 503 NOT_CONFIGURED를 반환합니다. CMS 번역 설정은 CMS_TRANSLATION_*로 별도 관리합니다.
환경은 Development, Preview(= Stage = Staging), Production 세 가지로 구분합니다. 모든 환경은 외부에서 접근 가능한 Production Partner Portal URL을 사용하되, token은 Partner Portal에서 환경별로 발급한 값을 사용합니다. Dev Partner Portal URL은 외부 인터넷에서 접근할 수 없으므로 Vercel upstream으로 사용하지 않습니다. AI_CHAT_BASE_URL_PROD와 AI_CHAT_MODEL은 환경변수로 등록하지 않고 위 코드 상수를 사용합니다.
| Vercel 등록 위치 | AI_CHAT_API_KEY 출처 | 등록 타입 | AI_CHAT_ENABLED |
|---|---|---|---|
| Development | corp-web-v2-development | encrypted | true |
| Preview PR | corp-web-v2-preview | sensitive | true |
| Preview Main (= Stage = Staging) | corp-web-v2-stage | sensitive | true |
| Production | corp-web-v2-production | sensitive | false |
Development는 로컬 pull을 위해 encrypted로 등록합니다. Vercel은 Development에서 sensitive 타입을 지원하지 않습니다. 공식 문서
로컬 개발은 Vercel Development 환경 값을 사용합니다. 기존 .env.local을 덮어쓰지 않으려면 임시 gitignored 파일로 받은 뒤 필요한 두 줄만 병합합니다.
vercel env pull .env.vercel-development.local --environment=development
그 다음 임시 파일의 AI_CHAT_ENABLED와 AI_CHAT_API_KEY만 .env.local에 병합하고 임시 파일을 삭제합니다.
.env.local이 비어 있거나 새로 만드는 경우에는 vercel env pull .env.local --environment=development를 사용할 수 있습니다.
src/features/ai-chat/answer.server.tssrc/features/ai-chat/reply.tssrc/components/site/ai-chat/HermesAnswer.tsxsrc/app/api/ai-chat/route.tsnpx vitest run src/features/ai-chat src/app/api/ai-chat| 환경 | 정규 FQDN 및 별칭 처리 | 트리거 |
|---|---|---|
| Development | localhost:3000 | 로컬 npm run dev |
| Preview / Stage / Staging | main: stage.querypie.com, stage-v2.querypie.com, stage-v2.querypie.aiPR: Vercel Preview URL | main push / PR open·sync |
| Production | 정규: www.querypie.com, querypie.ai별칭 FQDN은 Vercel에서 정규 FQDN으로 redirect | workflow_dispatch |
Preview, Stage, Staging은 같은 환경을 뜻합니다.
Stage 또는 Staging 배포는 특히 main 브랜치의 Preview Deployment를 가리키며 위 세 고정 도메인을 사용합니다.
PR 배포는 같은 Preview 환경에서 각각의 Vercel URL을 사용합니다.
Preview에는 FQDN 정규화 redirect를 적용하지 않으며, 각 Preview FQDN을 그대로 사용합니다.
deploy-staging.yml은 main push 또는 수동 실행 시 항상 main을 Preview에 배포합니다.
Production은 선택한 소스 브랜치(기본 main)로 release를 먼저 갱신한 뒤 release를 배포합니다. 배포가 실패해도 release는 갱신된 상태로 남습니다.
Vercel Production Branch는 release로 지정하고, Git 자동 배포는 끄고 모든 배포를 GitHub Actions로 실행합니다.
상세 내용은 Vercel 배포 문서를 확인합니다.
| 문서 | 설명 |
|---|---|
| Vercel 배포 | GitHub Actions / Vercel 배포 구조 |
| Lead Capture Forms | Contact Us, Community License, 콘텐츠 게이팅 폼 흐름 |
| Contact Us API | Contact Us 폼 API 처리, Slack/DeskPie 연동, UTM 전달 |
| Community License | Community License 신청·발급 API와 외부 연동 |
| UTM Attribution | UTM 쿠키 저장과 리드폼 전달 흐름 |