
이 글의 목적
십자말풀이 웹에 쓴 소스 코드를 공개합니다. 파일을 펼칠 때만 코드를 불러옵니다.
사용한 도구
- Next.js 15, React 19, TypeScript: 대기실, 게임방, API
- node:sqlite: 판과 입력 기보 저장
- Ollama의 gemma4: 판 설계와 문제 작성. OpenAI 호환 API로 부르므로 다른 모델로 바꿀 수 있습니다.
- 구글 뉴스 RSS, 한국어 위키백과 API: 시사 헤드라인과 무작위 단어
- OpenSubtitles 한국어 빈도 순위: 단어 등급
폴더 구성
- lib/puzzle.ts: 난이도 설정, 판을 문제 목록으로 바꾸기, 기준 검사
- lib/gridFill.ts: 판 검증·보정, 미리 그린 판, 단어 채우기, 단어 연결형 배치기
- lib/dynamicBank.ts: AI 판 설계, AI 문제 작성, 뉴스·위키 단어
- lib/words.ts, freqRanks.ts: 단어 은행과 빈도 순위
- lib/db.ts: 기보 DB, 중간 저장, 빈 판 정리
- app/page.tsx, app/play/page.tsx: 대기실과 게임방
- app/api: 새 판, 기보 저장·목록·이어 풀기 API
- components/CrosswordBoard.tsx: 판 그리기
- scripts/text-agent.ts, ai-pipeline-test.ts: 생성기와 AI 과정을 글자로 시험하는 도구
실행할 때는 .env.local.example을 .env.local로 복사해 모델 주소를 넣습니다. 모델이 없으면 단어 은행과 위키 단어만으로 판을 만듭니다. 기보 DB, 광고·배포 스크립트, 서버 감시기는 싣지 않았습니다.
전체 소스
32개 파일 · 6,788줄 — 폴더를 펼친 뒤 파일을 누르면 코드를 불러옵니다.
프로젝트 루트
.env.local.example
코드를 불러오는 중입니다…
next.config.ts
코드를 불러오는 중입니다…
package.json
코드를 불러오는 중입니다…
tsconfig.json
코드를 불러오는 중입니다…
app/
app/api/game/[code]/move/route.ts
코드를 불러오는 중입니다…
app/api/game/[code]/route.ts
코드를 불러오는 중입니다…
app/api/game/abandon/route.ts
코드를 불러오는 중입니다…
app/api/game/list/route.ts
코드를 불러오는 중입니다…
app/api/game/route.ts
코드를 불러오는 중입니다…
app/api/puzzle/route.ts
코드를 불러오는 중입니다…
app/globals.css
코드를 불러오는 중입니다…
app/layout.tsx
코드를 불러오는 중입니다…
app/page.module.css
코드를 불러오는 중입니다…
app/page.tsx
코드를 불러오는 중입니다…
app/play/page.tsx
코드를 불러오는 중입니다…
app/play/play.module.css
코드를 불러오는 중입니다…
components/
components/CrosswordBoard.module.css
코드를 불러오는 중입니다…
components/CrosswordBoard.tsx
코드를 불러오는 중입니다…
lib/
lib/db.ts
코드를 불러오는 중입니다…
lib/dynamicBank.ts
코드를 불러오는 중입니다…
lib/freqRanks.ts
코드를 불러오는 중입니다…
lib/gameTypes.ts
코드를 불러오는 중입니다…
lib/gridFill.ts
코드를 불러오는 중입니다…
lib/guest.ts
코드를 불러오는 중입니다…
lib/puzzle.ts
코드를 불러오는 중입니다…
lib/recentWords.ts
코드를 불러오는 중입니다…
lib/services.ts
코드를 불러오는 중입니다…
lib/words.ts
코드를 불러오는 중입니다…
scripts/
scripts/ai-pipeline-test.ts
코드를 불러오는 중입니다…
scripts/dev-with-ts.mjs
코드를 불러오는 중입니다…
scripts/text-agent.ts
코드를 불러오는 중입니다…
types/
types/node-sqlite.d.ts
코드를 불러오는 중입니다…
COMMENTS · CHAPTER 04
전체 소스 코드와 사용한 도구 댓글 0
아직 댓글이 없습니다. 읽다가 궁금한 점이나 보탤 내용을 남겨 주세요.
댓글을 등록하려면 구글로 시작하기를 눌러 닉네임과 메일 주소를 등록해 주세요.
구글로 시작하기