diff --git a/.claude/rules/code-style.md b/.claude/rules/code-style.md index 0cb1563..f5f0203 100644 --- a/.claude/rules/code-style.md +++ b/.claude/rules/code-style.md @@ -44,7 +44,21 @@ - `@Builder` 허용 - `@Data` 사용 금지 (명시적으로 필요한 어노테이션만) - `@AllArgsConstructor` 단독 사용 금지 (`@Builder`와 함께 사용) -- `@Slf4j` 로거 사용 + +## 로깅 +- `@Slf4j` (Lombok) 로거 사용 +- SLF4J `{}` 플레이스홀더에 printf 포맷 사용 금지 (`{:.1f}`, `{:d}`, `{%s}` 등) +- 숫자 포맷이 필요하면 `String.format()`으로 변환 후 전달 + ```java + // 잘못됨 + log.info("처리율: {:.1f}%", rate); + // 올바름 + log.info("처리율: {}%", String.format("%.1f", rate)); + ``` +- 예외 로깅 시 예외 객체는 마지막 인자로 전달 (플레이스홀더 불필요) + ```java + log.error("처리 실패: {}", id, exception); + ``` ## 예외 처리 - 비즈니스 예외는 커스텀 Exception 클래스 정의