Back-End/JAVA

좋은 메서드명에 대한 고민

isTrue 2025. 5. 15. 23:29
반응형

코드를 작성하다 보면 좋은 메서드명에 대해 고민을 정말 많이하게된다.

물론 정답은 없는 거 겠지만, 좋은 습관이 일관성 있는 코드를 만들어 준다고 생각하기 때문에 여러 글을 참고해서 한번 정리를 해본다.

1. Boolean 값을 반환하는 메서드

Prefix 의미 예시
is 상태 확인 (boolean) isActive, isEnabled
can 어떤 동작을 수행할 수 있는지 여부 canExecute, canDelete
should 호출자가 이 동작을 실행해야 하는지 여부 shouldReload
has 해당 속성이나 객체를 보유하고 있는지 여부 hasChildren, hasError
needs 어떤 처리가 필요한지 여부 needsRefresh
was 과거 상태를 표현할 때 wasSuccessful

 

2. 조건부로 동작하는 메서드

Prefix / Suffix 의미 예시
try 실행을 시도하고 실패 시 예외 또는 실패 결과 반환 tryConnect, tryLoad
might 필요 시 동작 (불확정, 다소 추상적인 의미) mightCreate
IfNeeded (Suffix) 조건부 실행 (필요할 때만 수행) refreshIfNeeded
OrDefault 실패 시 기본값 반환 getValueOrDefault
OrElse 실패 시 대체값 반환 getConfigOrElse("default")
force 강제로 실행 (예외를 던지지 않음) forceClose, forceRefresh

 

3. 비동기 관련 메서드

위치 의미 예시
Async (Suffix) 비동기 메서드 fetchDataAsync
Sync (Suffix) 동기 메서드 (비동기 대비) fetchDataSync
InBackground 백그라운드에서 실행 loadInBackground
blocking 현재 스레드를 블로킹하는 처리 blockingGetResult
schedule 예약 실행 또는 큐 등록 scheduleRetry, scheduleJob
post, execute, start 비동기 작업 시작 postMessage, executeTask, startSync
cancel, stop 작업 중단 cancelJob, stopSync

 

4. 콜백 관련 메서드

Prefix 의미 예시
on 특정 이벤트 발생 시 호출되는 메서드 onClick, onFinish
before 어떤 동작 직전에 실행 beforeSave
pre 어떤 동작 직전에 실행 (before와 유사) preInit
will 미래의 실행을 암시, 예상되는 동작 전에 willLoadData
after 어떤 동작 직후에 실행 afterUpdate
post after와 유사, 특히 이벤트/비동기에서 자주 사용 postExecute, postLoad
did 완료 후 실행된 동작 (과거형, Swift 계열에서 선호됨) didFetchData
should 이벤트 발생 여부 판단 shouldHandleClick

 

5. 컬렉션 조작

add 요소 추가 addItem
append 끝에 추가 appendMessage
insert 위치 지정하여 추가 insertAtIndex
remove 삭제 (일반적) removeItem
delete 삭제 (데이터베이스나 비즈니스 용어로) deleteUser
enqueue 큐 끝에 추가 enqueueTask
dequeue 큐 앞에서 제거 dequeueTask
push 스택에 추가 pushToStack
pop 스택에서 제거 popFromStack
peek 삭제 없이 조회 peekCurrentItem
contains 요소 포함 여부 확인 containsUser
find 조건에 맞는 요소 찾기 findById

 

6. 상태 및 유효성 검사

validate 유효성 검사 후 예외 발생 가능 validateInput
ensure 기대 상태 보장, 아니면 예외 ensureLoggedIn
check 상태를 검사 (validate보다 부드러움) checkPermission

 

7. 라이프사이클 관련

initialize 초기화 initializeConnection
destroy 소멸 destroySession
dispose 자원 정리 disposeResources
abandon 작업 포기 (cancel과는 다른 의미) abandonChanges

 

8. 데이터 관련

create 새로 생성 createUser
from 변환 (정적 팩토리 메서드로 자주 사용됨) fromDto, fromJson
to 변환 (보통 String, Dto, Json) toEntity, toString
load 로컬에서 읽기 loadConfig
fetch 네트워크/리모트에서 읽기 fetchUserInfo
save 저장 saveProfile
store 저장 (save보다 하위 개념, 캐시 등에 사용) storeToken
update 기존 데이터 갱신 updateSetting
apply 설정/변경 사항 적용 applyChange
commit 확정 적용 commitTransaction
clear 데이터 초기화 clearCache
reset 상태 초기화 resetForm

 

  • 함수 이름은 “자기 자신을 설명할 수 있을 정도로 명확”해야 한다.
  • 같은 의미라도 상황에 따라 단어를 골라야 한다.
    • 예: fetch vs load → fetch는 외부 API에서, load는 로컬에서.
  • 동사의 뉘앙스 차이를 이해하고 정확한 단어를 고르는 습관이 중요하다.
  • IDE에서 autoComplete 될 것을 고려해 접두사는 간결하지만 직관적인 단어로 시작하는 것이 좋다.
반응형