Skip to content

docs: 프로젝트 스펙 문서 추가 #5

Merged
i3months merged 2 commits into
devfrom
feature/project-spec
Apr 29, 2026
Merged

docs: 프로젝트 스펙 문서 추가 #5
i3months merged 2 commits into
devfrom
feature/project-spec

Conversation

@i3months
Copy link
Copy Markdown
Member

@i3months i3months commented Apr 27, 2026

변경 사항

하네스 엔지니어링을 목표로 합니다. 토큰 열심히 쓰고 개발자동화 해보죠

docs/ 하위에는 프로젝트 기본 구조 및 요구사항을 정리한 문서가 저장됩니다.
Claude Code가 작업 시 알아서 저 문서들을 찾아갑니다.
사용자가 명시적으로 @로 문서를 지정하는 것도 가능합니다.

각 레이어 및 프로젝트 루트에는 CLAUDE.md 가 저장됩니다.
해당 레이어에서 작업하는 순간 자동으로 로드됩니다.
루트에 위치한 문서는 항상 로드됩니다.

하네스 구성요소 : 컨텍스트 / 권한 / 명령 / 서브에이전트 / 훅 / 검증 / 메모리 중
컨텍스트를 정의합니다.

경험공유

  1. 레이어별로 claude.md 두는게 더 잘뽑혔음
  2. 최대한 구체적으로 기술하는게 좋음
  3. 휴먼 QA는 어쩔수없이 해야함 많이 해야함
  4. 코드리뷰 꼭 해야함

@Jaeho-Site
Copy link
Copy Markdown
Contributor

claude local 파일은 업로드 안하는거죠?

@i3months
Copy link
Copy Markdown
Member Author

i3months commented Apr 27, 2026

@Jaeho-Site
CLAUDE.local.md 는 업로드하지 않습니다.
CLAUDE.local.md에서 필요한 내용이 있거나 공유 가치가 있는 내용은 CLAUDE.md에 기록하도록 합시다.

Copy link
Copy Markdown
Contributor

@Jaeho-Site Jaeho-Site left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

갓i3months 수고하셨습니다.

Comment on lines +87 to +97
## 4. styles 구성

```
app/styles/
├── tokens.css # CSS variables (디자인 토큰)
├── reset.css # CSS reset (modern-normalize 권장)
├── global.css # 폰트, html/body 기본
└── index.ts # import 진입점
```

`main.tsx`에서 `import '@/app/styles'`로 일괄 로드.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

야무지네요. tailwind v4방식으로 설계된것 같은데 좋습니다.

domain/* → pages/*, app/* ✗
```

타입 자체는 다른 도메인을 참조 가능 (예: `Session`이 `User`를 알고 있음).
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

순환 참조는 금지한다는 내용이 있으면 좋을것 같네요.

Comment thread frontend/CLAUDE.md Outdated
## 10. 실시간 이벤트

- SSE: `shared/hooks/useEventStream.ts` (자동 재연결 + 폴링 fallback)
- WebSocket: `features/interview/lib/socket/` (면접 세션 메시지 push)
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

저희가 웹소캣을 썼던가요?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

스택업 프로젝트에서는 웹소켓 대신 SSE 방식을 사용합니다. 초기 프로젝트 스펙을 참고하느라 웹소켓이 포함됐네요.
지적 감사합니다. 수정하겠습니다.

Comment thread frontend/CLAUDE.md
Comment on lines +184 to +190
## 9. 미디어 (음성/영상)

- 마이크: `navigator.mediaDevices.getUserMedia({ audio: true })`
- WebRTC: RealTime 서버와 SDP/ICE 교환
- 코덱: 음성은 Opus, 영상은 VP9
- 권한 거부 시 텍스트 입력 fallback (US-21 AC-05)
- 구현 위치: `features/interview/lib/media/`
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[별개 의견] 흐름 좋습니다. 이걸 구현하는 도구로 브라우저 내장 speech api를 사용해보았는데 성능이 너무 안좋았습니다. 그래서 삼성중공업 측 선박에서 음성인식으로 무엇을쓰나 물어보았을때 openai의 whisper api를 사용한다고 하는군요. 근데 이게 무료가 아니라서 이야기해보면 좋을것 같습니다.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

우선 whisper는 무료가 아니긴 합니다. faster-whisper 를 사용하면 로컬 서버에서도 STT를 돌릴 수 있으니 추후 확인해보면 좋겠습니다.

Comment thread ai/CLAUDE.md Outdated
| 시점 | 모델 | 용도 |
|------|------|------|
| 세션 시작 | Pro (Gemini 1.5 Pro 기본) | 질문 풀 (품질) |
| 세션 중 | Flash (Gemini 1.5 Flash) | 꼬리질문 (저지연 < 3s) |
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Gemini 1.5????
3.1 Pro, 3.1 Flash로 바꿉시다

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

우선 비용을 최대한 줄이기 위해 1.5로 명시했습니다.
우선 3.1 모델을 사용해보고 비용 관련해서는 추후 얘기해봅시다.

Comment thread ai/CLAUDE.md Outdated
openai_api_key: str = ""
google_api_key: str = ""
llm_pro_model: str = "gemini-1.5-pro"
llm_flash_model: str = "gemini-1.5-flash"
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

이것도 위와 마찬가지로 모델 변경 필요합니다

Comment thread docs/architecture.md Outdated

┌──────────────┐
│ Redis │ ← 세션 ephemeral state
└──────────────┘
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Redis 쓰는거 맞나요? RabbitMQ만 쓴다고 알고있었어요

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

초기 아키텍처에서는 Redis 사용이 명시되어있어서 저렇게 들어간듯합니다.
지적 감사합니다. 수정하겠습니다.

Comment thread docs/environment.md Outdated
OPENAI_API_KEY=
LLM_DEFAULT_PROVIDER=gemini # gemini | openai
LLM_PRO_MODEL=gemini-1.5-pro
LLM_FLASH_MODEL=gemini-1.5-flash
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

여기도 마찬가지로 모델 변경해야 합니다

Comment thread backend/CLAUDE.md Outdated
| DB | PostgreSQL + pgvector |
| Build | Gradle (Groovy DSL) |
| Test | JUnit 5 + Spring Boot Test |
| 추가 예정 | Spring Security, Spring AI, RabbitMQ starter, Redis, Flyway, springdoc-openapi |
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Spring AI의 경우 AI서버가 따로 있고 Redis의 경우에는 사용하지 않는다고 알고 있어서 삭제하면 좋을거같아요

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

초기 아키텍처에서는 Redis 사용이 명시되어있어서 저렇게 들어간듯합니다.
지적 감사합니다. 수정하겠습니다.


---

## 8. 테스트
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ArchUnit이라는 도구가 테스트 코드를 통해 잘못된 참조나 레이어 침범 등을 빌드 단계에서 막을 수 있다고 알고 있는데 좀 더 알아보고 도입을 고려하면 좋을거 같습니다

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

이 부분은 좀 더 살펴보겠습니다. 감사합니다.

@i3months i3months merged commit 05a4462 into dev Apr 29, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants