Skip to content

3.4. 코드 작성 규칙

3.4.1. 접근 제한자

  • 클래스 필드는 private을 기본으로 합니다.
  • 외부 노출이 필요한 경우에만 public 메서드를 제공합니다.
  • 패키지 내부에서만 사용되는 클래스는 패키지 프라이빗(접근 제한자 생략)으로 선언합니다.

3.4.2. import 규칙

  • 와일드카드 import (import java.util.*)는 사용하지 않습니다.
  • 사용하지 않는 import는 반드시 제거합니다.
  • Google Java Format이 import 정렬을 자동으로 처리합니다.

3.4.3. 매직 넘버 금지

리터럴 값을 코드에 직접 사용하지 않습니다. 상수로 정의하여 의미를 명확히 합니다.

java
// 잘못된 예
if (retryCount > 3) { ... }

// 올바른 예
private static final int MAX_RETRY_COUNT = 3;

if (retryCount > MAX_RETRY_COUNT) { ... }

3.4.4. Optional 사용 규칙

  • 반환 타입으로 Optional을 사용합니다. 필드나 파라미터에는 사용하지 않습니다.
  • Optional.get()을 직접 호출하지 않습니다. orElseThrow(), orElse(), ifPresent()를 사용합니다.
java
// 잘못된 예
UsersRecord record = userRepository.findById(id).get();

// 올바른 예
UsersRecord record = userRepository.findById(id)
    .orElseThrow(() -> new UserNotFoundException(id));

3.4.5. Null 처리

  • null을 반환하지 않습니다. 빈 컬렉션(Collections.emptyList()) 또는 Optional을 사용합니다.
  • 파라미터의 null 체크는 Objects.requireNonNull()을 사용합니다.
  • @Nullable, @NonNull 어노테이션을 적극 활용합니다.

3.4.6. 문자열 처리

  • 문자열 결합은 + 연산자 대신 String.format() 또는 텍스트 블록(""")을 사용합니다.
  • 빈 문자열 비교는 String.isEmpty() 또는 String.isBlank()를 사용합니다.

TIENIPIA QUALIFIED STANDARD