배경
PR #284 (feat(auth)) 리뷰에서 CodeRabbit이 lib 레이어(src/lib/github-app.ts, src/lib/app-auth.ts)에서 던지는 사용자 노출 에러 메시지가 영어 하드코딩이라 ko 로케일에서도 영어로 출력된다는 점을 지적했습니다 (스레드: login.ts:50, github-app.ts:107, i18n.ts:425).
현재 상태 (decline 사유)
이 저장소의 기존 컨벤션은 다음과 같습니다:
- lib 레이어(
github-api.ts, github-graphql.ts 등)는 진단용 Error 메시지를 영어로 던진다.
- 명령 레이어(
src/commands/**)가 errorPrefix와 진행/성공 메시지를 i18n으로 처리한다.
새 auth 모듈도 동일 컨벤션을 따랐으며(명령 레이어 진행/성공 메시지는 ko/en 모두 처리), auth만 lib 에러를 i18n으로 바꾸면 오히려 저장소 내 일관성이 깨집니다. 따라서 PR #284에서는 적용하지 않고 별도 이슈로 분리합니다.
제안 (별도 검토)
저장소 전반에 걸쳐 lib 레이어 에러 처리 전략을 통일:
- 옵션 A: lib에서 구조화된 에러 코드/키를 반환하고 명령 레이어에서
getXxxMessages()로 매핑
- 옵션 B: 현행 유지(영어 진단 메시지 + 명령 레이어 i18n prefix)를 공식 컨벤션으로 문서화
auth 모듈만이 아니라 github-api.ts / github-graphql.ts 등 전체에 일괄 적용해야 일관성이 유지됩니다.
참고
배경
PR #284 (
feat(auth)) 리뷰에서 CodeRabbit이 lib 레이어(src/lib/github-app.ts,src/lib/app-auth.ts)에서 던지는 사용자 노출 에러 메시지가 영어 하드코딩이라ko로케일에서도 영어로 출력된다는 점을 지적했습니다 (스레드: login.ts:50, github-app.ts:107, i18n.ts:425).현재 상태 (decline 사유)
이 저장소의 기존 컨벤션은 다음과 같습니다:
github-api.ts,github-graphql.ts등)는 진단용 Error 메시지를 영어로 던진다.src/commands/**)가errorPrefix와 진행/성공 메시지를 i18n으로 처리한다.새
auth모듈도 동일 컨벤션을 따랐으며(명령 레이어 진행/성공 메시지는 ko/en 모두 처리), auth만 lib 에러를 i18n으로 바꾸면 오히려 저장소 내 일관성이 깨집니다. 따라서 PR #284에서는 적용하지 않고 별도 이슈로 분리합니다.제안 (별도 검토)
저장소 전반에 걸쳐 lib 레이어 에러 처리 전략을 통일:
getXxxMessages()로 매핑auth모듈만이 아니라github-api.ts/github-graphql.ts등 전체에 일괄 적용해야 일관성이 유지됩니다.참고
src/commands/**/*.ts출력 메시지 i18n 필수