코드를 작성하다 보면 좋은 메서드명에 대해 고민을 정말 많이하게된다.
물론 정답은 없는 거 겠지만, 좋은 습관이 일관성 있는 코드를 만들어 준다고 생각하기 때문에 여러 글을 참고해서 한번 정리를 해본다.
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 될 것을 고려해 접두사는 간결하지만 직관적인 단어로 시작하는 것이 좋다.