본문 바로가기
컴퓨터 일반/코딩 관습

메소드 네이밍 (3인칭 단수형 동사/일반동사)

by 호군 2013. 4. 18.
반응형


구글링을 하다가 '메소드 네이밍 3인칭 단수' 라는 키워드를 발견하고.. 이리저리 검색을 했습니다. 제가 궁금한 내용을 어떤 분이 정확히 물어봤지만, 원하는 대답이 아니였습니다.


자바에서 Object 클래스를 보면 equals() 라는 메소드가 있습니다. 또는 File 클래스에서 exists() 라는 메소드가 있습니다. 왜 이 메소드들은 3인칭 단수를 사용 할까요?


정답인지는 확실히 모르지만 나름 설득력이 있는 글을 찾았습니다. 구글에서 검색했지만, 답은 네이버 블로그에 작성된 글이네요. 저는 간단히 정리만 할 생각이고, 자세한 내용은 여기로 가서 확인하세요.




boolean을 반환하는 메소드


  규칙1. boolean을 반환하는 메소드가 동사의 경우 3인칭 단수의 동사로 시작한다.


예제1) File의 exists() 메소드

This function returns true if it exists.

이 함수는 이것(파일)이 존재하면, true를 반환합니다. 


File file = new File("/sdcard");

if ( file.exists() ) {

    // do something

}



예제2) List의 isEmpty() 메소드

This function returns true if it is empty.

이 함수는 이것(목록)이 비어 있으면, true를 반환합니다.


List<String> list = new ArrayList<String>();

if ( list.isEmpty() ) {

    // do something

}



두 예제는 boolean을 반환하는 메소드를 작성할 때,  동사와 형용사에 대해서 어떻게 메소드 이름을 짓는게 좋은지 보여주고 있습니다. 동사일 때는 3인칭 단수의 동사로 메소드 이름을 시작하였고, 형용사일 때는 메소드 이름을 is로 시작하였습니다. 즉, boolean을 반환하는 메소드는 3인칭 단수의 동사로 시작한다고 볼 수 있습니다.


원문 작성자의 글을 보면, "This function returns true if it exists"와 같이 영어 문장을 작성하는 방법을 통해서 메소드 이름을 작성하고 있다고 하는 것 같습니다.


boolean을 반환하는 메소드를 작성 할 때는 "This function returns true/false if it ~"의 형태로 문장을 작성해서 확인해보시면 좋은 방법이 될 것 같네요.






일반적인 메소드


  규칙2. 일반적인 동작을 수행하는 메소드는 동사원형으로 시작한다.


예제1) InputStream의 close() 메소드

This function is to be called to close it.

이 함수는 이것(스트림)을 닫기 위해 호출한다.


InputStream is = new FileInputStream("/sdcard/data.txt");

...

is.close():



예제2) 크기를 제어하는 get/set 메소드

This function is to be called to set the size.

이 함수는 크기를 설정하기 위해 호출 할 수 있다.


This function is to be called to get the size.

이 함수는 크기을 가져오기 위해 호출 할 수 있다.


메소드는 객체의 동작을 나타내기 때문에 일반적으로 메소드 이름은 동사로 시작합니다. 그리고 'Boolean을 반환하는 메소드' 에서 처럼 영어 문장을 작성해서 메소드 이름이 적합한지 확인합니다. 


일반적인 동사일 때는 "This function is to be called to ~ the ~"의 형태로 문장을 작성하여 메소드 이름을 결정 할 수 있습니다.







원 저자의 블로그 글을 보고 저는 어느 정도 궁금증이 풀렸네요. 아! 그리고 원문에서는 '인수가 주어가되는 경우'라는 부분이 있는데, 작성방법이 유사하기 때문에 추가적으로 작성하지 않았습니다. 하지만 보시면 도움이 되겠죠?


이렇게  몇 가지 원리를 알아봤지만 여전히 변수/메소드 이름을 짓는데 어려움이 많습니다. 메소드 이름이 항상 짧으면 좋겠지만, 어쩔 수 없이 길어질 때가 있기 마련이죠.. (ㅠㅠ;)

아마도 이런 경우에도 영어문장을 작성해보면 도움이 될 것 같다고 추측해봅니다.. 고로 '영어 공부를 해라' 이거군요..






References




반응형

'컴퓨터 일반 > 코딩 관습' 카테고리의 다른 글

헝가리안 표기법  (0) 2010.10.25