이 서비스는 사용자의 증상을 입력받아 적절한 진료 과목을 안내하고, 근처의 추천 병원 목록을 제공하는 AI 기반 웹 어플리케이션입니다.
- AI 증상 분석: OpenAI 또는 Gemini를 사용하여 증상을 분석하고 진료 과목을 추천합니다.
- 히스토리 관리: 이전 상담 내역을 저장하고 다시 확인할 수 있습니다.
- 병원 추천: 증상에 따른 맞춤형 병원 정보를 제공합니다.
- 모바일 우선 디자인: 다양한 기기에서 최적화된 UX를 제공하며, 부드러운 애니메이션과 스켈레톤 UI를 포함합니다.
- Framework: Next.js 15+ (App Router)
- Styling: Vanilla CSS, Framer Motion
- AI Integration: OpenAI SDK, Google Generative AI SDK
- Backend Architecture: Layered Architecture (Controller -> Service -> DTO -> Repository -> Entity)
-
의존성 설치:
npm install
-
환경 변수 설정:
.env.local파일을 생성하고 아래 키를 입력하세요:OPENAI_API_KEY=your_openai_api_key GEMINI_API_KEY=your_gemini_api_key
-
개발 서버 실행 (SST):
npx sst dev
SST를 사용하여 AWS에 배포합니다. 도메인은 afzma.aws.shdkej.com으로 Route53을 통해 연결됩니다.
npx sst deploy --stage seongho-nohmain 브랜치에 push하면 GitHub Actions를 통해 자동 배포됩니다.
GitHub 리포지토리에 아래 Secrets 등록이 필요합니다:
| Secret | 설명 |
|---|---|
AWS_ACCESS_KEY_ID |
AWS IAM Access Key |
AWS_SECRET_ACCESS_KEY |
AWS IAM Secret Key |
backend/entity.ts: 도메인 모델 정의backend/dto.ts: 데이터 전송 객체backend/repository.ts: 데이터 저장소 레이어 (현재 인메모리 방식)backend/service.ts: 비즈니스 로직 및 AI 추상화 레이어backend/controller.ts: API 요청 처리 레이어