dev -> main 머지 - #105
dev -> main 머지#105
Conversation
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
COPY . . 이 dev-deps의 node_modules 위에 호스트(맥) node_modules를 덮어써서 .bin/nest 의 NODE_PATH 가 컨테이너에 없는 호스트 경로를 가리켰고, source-map-support/register 를 찾지 못해 dev 서버가 죽었다(nginx 502). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
- 교직원식당(form_type 2), 중앙식당, 교육문화식당: 식당마다 식단 표 형태가 달라 파서 검증에 필요 - 학교 공지(department 117) 카테고리 4개: 학사, 공지사항, 장학, 교내채용 (학술/행사는 목록이 아닌 달력형 게시판이라 공지 목록 파서 대상이 아니므로 제외) Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
- batch 서비스 추가: supabase start 로 띄운 DB(54322)에 붙어 수집 결과를 확인
- app은 env_file .env.local 을 쓰고 environment 의 ${VAR:-기본값} 보간을 제거:
같은 폴더의 .env(외부 DB 값)가 보간되어 dev 컨테이너가 외부 DB에 붙는 문제 방지
- .env.local 을 .gitignore 에 추가
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
✨ feat: 학사일정·학교 공지·학식 수집 배치 구현 (대상별 scrape_run)
재시도 루프에서 중간 시도 실패가 로깅 없이 버려지던 문제를 해결. 재시도가 결정된 경우 시도 횟수와 다음 재시도까지의 지연 시간을 warn 레벨로 남기도록 함. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
[Fix] FetchHttpClient 재시도 시 중간 실패 warn 로그 추가
console.log/warn/error 대신 nest-winston 기반 전역 Logger로 교체하여 timestamp/level/context 메타데이터가 로그에 포함되도록 함. api 서비스와 동일한 LoggerModule 구성을 batch에도 적용. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
nest-winston의 WinstonLogger.warn(message, context)는 인자를 2개만 받는데, this.logger.warn(msg, lastError)로 호출하면 인스턴스 로거가 자동으로 붙이는 context(FetchHttpClient) 앞에 lastError가 끼어들어 context 자리를 lastError가 차지하고 실제 context는 버려짐. 에러 정보를 메시지 문자열에 직접 포함시키고 context는 생성자에 바인딩된 값이 자동으로 실리도록 별도 인자를 넘기지 않게 수정. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Error 객체를 trace 인자로 그대로 넘기면 nest-winston이 meta.stack에
담아 JSON 직렬화하는데, Error의 message/stack은 enumerable 프로퍼티가
아니라서 직렬화 시 {}로 사라짐. error.stack(문자열)을 전달하도록 수정.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
[Chore] batch 서비스에 전역 winston Logger 도입
- /api/api-docs: 우리집 공인 IP(210.121.177.238)만 허용 - /api/admin/: api 도메인에서는 차단 (admin 도메인 전용으로 유지) - /api: GET(Expo 앱)은 공개, 그 외 메소드(카카오 웹훅)는 카카오 IP 대역(219.249.231.0/24)만 허용 - admin.connectgnu.kro.kr 인증서 경로를 실제 EC2 경로(-0001)에 맞게 수정 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
[Chore] nginx API 접근 제어 재정비 (swagger/카카오/어드민)
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Repository: GNU-connect/Server-Node/.coderabbit.yaml Review profile: CHILL Plan: Advanced Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
📌 개요
✨ 작업 내용
🔥 변경 이유
🧪 테스트
🔗 관련 이슈