import 와일드카드 *

알파로그·2024년 1월 29일
0

Code conventions

목록 보기
2/4

✏️ 발단

팀 프로젝트에 합류해 코드 컨벤션에 대해 숙지하던중 import 에 와일드 카드 * 를 지양하자는 항목이 있었다.

  • Google java 컨벤션 3.3, 3.3.1 에 이에 관한 내용이 있다.

평소에 자동으로 import 문이 생성되도록 관리하고 있었는데,
이번 계기로 intellij 에서 같은 패키지의 import 를 5개 이상 하게되면 자동으로 와일드카드로 바꿔준다는 사실을 알게 되었다.

📍 import 에 와일드카드 * 을 지양해야 하는 이유

  1. 가독성
    • 명시적으로 어떤 클래스가 import 되었는지 확인하기 어려움
  2. 명확한 출처의 파악
    • 객체명이 충돌될 경우 어떤 객체를 사용하는지 명확하게 확인하기 어려움
  3. 컴파일 시간 증가
    • 불필요한 객체까지 모두 확인해야되기 때문에 컴파일 시간이 증가할 수 있음
  4. 의존성 관리의 어려움
    • 새로운 객체가 추가될 때 의존성을 추가하지 않고 해당 패키지 내의 모든 객체에대한 의존성이 발생함

✏️ 해결책

  • code style → java → import → Class count to use import with * → 자동 변환 카운트 변경

📍 나의 생각

  • 자동 변환 카운트를 말도안되게 늘려서 와일드카드를 절대로 사용하지 않을 수 도 있겠지만,
    intellij 에 기본값이 5개이고, 이런 기능이 있는 이유가 있다고 생각했다.
    • 와일드카드를 지양해 얻는 이점이 있지만,
      개인적인 기준이지만 같은 패키지에서 20개 이상의 객체를 import 한다는 것 자체가 문제가 있다고 생각한다.
    • 작업을 완료하고 * 이 검색된다면 해당 객체의 책임이 너무 많다는 의미이므로
      리팩토링을 검토해봐야 된다고 생각한다.
profile
잘못된 내용 PR 환영

0개의 댓글