From 3a8eb89dab4fe18130f9b2a592df6a185f96481e Mon Sep 17 00:00:00 2001 From: htlee Date: Thu, 19 Feb 2026 07:29:11 +0900 Subject: [PATCH] =?UTF-8?q?fix(rules):=20SLF4J=20=EB=A1=9C=EA=B9=85=20?= =?UTF-8?q?=EC=A7=80=EC=B9=A8=20=EC=B6=94=EA=B0=80=20(printf=20=ED=8F=AC?= =?UTF-8?q?=EB=A7=B7=20=EC=82=AC=EC=9A=A9=20=EA=B8=88=EC=A7=80)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .claude/rules/code-style.md | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) 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 클래스 정의