withai.co.kr

개인 프로젝트 포트폴리오

혼자 만들어
직접 띄워 둔 서비스 일곱 개

영어를 읽고 따라 읽고 진단하는 학습 서비스 세 개, 사주·주역·타로·점성술을 계산하고 풀어 주는 운세 서비스 네 개. 기획부터 엔진·화면·배포까지 전부 직접 만들었고, 지금 모두 열려 있습니다.

7운영 중인 서비스
2제품 계열
100%기획 · 엔진 · 화면 · 배포 직접

계열 1 — 영어 학습

읽기 · 말하기 · 문법, 세 갈래

한국인 학습자가 실제로 막히는 자리를 하나씩 맡았습니다. 원문을 끝까지 읽게 하는 리더, 내 목소리를 원문과 겹쳐 보는 쉐도잉, 약점부터 골라 주는 문법 진단.

Gutenberg Reader 화면

Gutenberg Reader

클로즈드 베타
gr.withai.co.kr

AI 가정교사와 함께 읽는 영문 고전 리더. Project Gutenberg의 퍼블릭 도메인 원문을 문단 단위로 정독하면서 모르는 단어·문법·문장을 그 자리에서 노트로 쌓습니다. 드라큘라, 프랑켄슈타인, 오만과 편견, 모비딕, 로미오와 줄리엣으로 시작합니다.

  • 단어장 · 문법노트 · 문장노트가 읽는 흐름 안에서 만들어짐
  • 레벨 테스트로 읽을 책과 난이도를 맞춤
Next.jsNestJSPostgreSQL · PrismaDocker
Echo English 화면

Echo English

공개
echoeng.withai.co.kr

읽고 싶은 영어 문장을 붙여 넣으면 그대로 내 발음 연습이 됩니다. 기준 음성을 듣고 따라 읽으면, 내 발화를 전사해 원문과 단어 단위로 정렬하고 맞은 단어·바뀐 단어·빠뜨린 단어·덧붙인 단어를 색으로 갈라 보여 줍니다.

  • 3초 카운트다운 뒤 기준 음성과 동시에 읽는 동시 쉐도잉 모드
  • 틀린 단어를 누르면 내 녹음의 그 구간만 다시 재생
  • Whisper로 판정하고 MFA 강제 정렬로 단어 경계를 보정
Next.jsNestJSWhisperMFAKokoro TTS
그래머핏 화면

그래머핏 GrammarFit

공개
grammarfit.vercel.app

중·고등 내신과 수능을 위한 영문법 학습. 28문항 진단 테스트로 14개 문법 영역의 약점을 먼저 찾고, 약한 곳부터 순서를 짜 커리큘럼을 만들어 줍니다. 틀린 문제는 오답 복습으로 돌아오고, 리포트에서 영역별로 얼마나 메워졌는지 봅니다.

Next.jsTailwind CSSVercel

계열 2 — 운세

계산은 규칙이, 해설은 말이

사주·주역·타로·점성술을 하나씩 만들고 마지막에 겹쳐 봤습니다. 공통 규칙은 하나입니다 — 간지와 괘와 카드는 코드가 결정론으로 뽑고, LLM은 뽑힌 결과를 질문 맥락으로 풀어 쓰기만 합니다. 계산에 손대지 못하게 해서 없는 간지·없는 괘가 지어지는 길을 막았습니다.

타로 리딩 화면

타로 리딩

그로블 결제
tarot.withai.co.kr

질문을 적고 78장 중에서 직접 카드를 고르면, 한 장씩 따로 읽는 대신 펼쳐진 배열 전체를 그 질문과 겹쳐 하나의 글로 읽어 드립니다. 드로우는 시드 기반 결정론이라 결과 링크를 열면 같은 배열이 그대로 다시 펼쳐집니다.

  • 스프레드 선택 · 정역방향 · 배열 전체 종합 리딩
  • 리딩이 흘러 나오는 SSE 스트리밍 화면
Node.jsClaudePostgreSQLDocker
주역 화면

주역 — 지금 움직여도 되는가

공개
juyeok.withai.co.kr

질문을 적고 동전을 던지면 본괘 → 변효 → 지괘를 유도하고, 판단 규칙이 지목한 괘사·효사를 그 질문 맥락으로 풀어 드립니다. 척전법과 시초법은 확률 분포가 다르므로, 어느 점법으로 쳤는지 결과에 항상 남깁니다.

  • 64괘사 + 386효사 한국어 해설을 직접 집필해 데이터로 고정
  • 시드 기반 — 같은 시드면 같은 괘, 결과 링크로 공유
  • 마음에 드는 괘가 나올 때까지 다시 치는 길은 엔진에 넣지 않음
Node.jsClaudesystemd
만세력 사주 정밀 분석 화면

만세력 — 사주 정밀 분석

공개
sayu.withai.co.kr

성별·생년월일·출생시각을 넣으면 절기 기준으로 원국을 세우고, 지장간·십성·12운성·12신살·오행 분포·신강약·격국·용신 후보·합충형파해까지 펼친 뒤 대운과 세운 10년, 월운 12개월을 이어 붙입니다.

  • 계산은 100% 결정론 — 같은 입력이면 언제나 같은 원국
  • 해설은 10단계 구조의 심층 보고서로 스트리밍
  • 진태양시 보정 · 야자시/통자시 선택
Node.jsClaudeSSE 스트리밍
Final Fortune 화면

Final Fortune

공개
ff.withai.co.kr

앞의 서비스들이 한 전통씩 맡았다면 여기는 겹쳐 보는 쪽이 상품입니다. 생년월일시·성별·출생지 하나로 사주팔자·자미두수 명반·서양 점성술 네이탈 차트를 동시에 세우고, 세 전통이 같은 곳을 가리키는 자리와 갈라지는 자리를 함께 보여 줍니다.

  • 천체력·도시 좌표·타임존 이력을 내장해 외부 의존 없이 계산
  • 출생 시각을 모르면 그 전통을 빼고, 뺐다는 사실을 결과에 명시
TypeScriptNode.jsDocker

만드는 방식

일곱 개를 관통하는 네 가지 규칙

01

판정은 코드가, 설명은 모델이

어떤 단어를 빠뜨렸는지, 어느 문법 영역이 약한지, 어떤 간지와 괘가 나왔는지는 전부 코드가 정합니다. 모델은 이미 나온 결과를 사람이 읽을 문장으로 옮기는 일만 합니다. 채점과 계산에 끼어들 수 없으니, 없는 근거가 지어질 자리도 없습니다.

02

한 번 보고 사라지지 않게

틀리게 읽은 단어를 누르면 내 녹음의 그 구간만 다시 들리고, 틀린 문법 문제는 복습으로 돌아오고, 읽다 만든 단어·문장 노트는 그대로 쌓입니다. 뽑힌 배열과 괘도 결과 주소를 열면 같은 모습으로 다시 펼쳐집니다.

03

실패는 실패라고 말한다

정밀 정렬이 실패하면 덜 정확한 경계로 물러나되 물러섰다는 사실을 화면에 남기고, 출생 시각을 모르면 그 전통을 계산에서 빼고 뺐다고 적습니다. 답처럼 보이는 것을 조용히 내보내는 쪽이 훨씬 비싼 실수라, 사고를 한 번 겪고 세운 규칙입니다.

04

혼자 굴릴 수 있는 크기로

여섯 서비스가 VPS 한 대 위에서 Caddy 설정 한 장을 나눠 씁니다. 도메인마다 컨테이너 또는 systemd 유닛 하나가 붙고 TLS는 자동으로 발급되며, 그래머핏만 Vercel에 있습니다. 이 포트폴리오도 같은 자리에 같은 방식으로 올라가 있습니다.