역시 엠파스에 썼던 글
Javadoc 보기를 게을리 하지 않으면.. (마치 사전보듯이)
그리고 그들 API 를 닮기를 게을리하지 않으면
별도의 작명 지침이 필요없다.
그러나, 모든 개발자들이 자바를 좋아하는 것은 아니고
이름에 큰 의미를 부여하는 것도 아니고
더러는 자기만의 개성을 고수하려는 분들도 많다. ㅡㅡ;
"사원 ID가 맞는지 확인한다"는 CheckEmpID() 함수로 만들 수도 있다. 하지만, 이런 함수는 단순히 검사만 수행하는지 결과값을 반환하는지 알 수 없다. 디스크 검사를 수행하는 CheckDisk() 함수와 명확히 구별되지 않는다. 이것이 하드 디스크인지 알아내는데 IsHarddisk()와 CheckHarddisk() 함수 이름을 보면 어떤 것이 더 나은지 알 것이다.
IsValidEmpID() 함수와 같은 이름으로 별도의 함수를 만들면 좋다.
"사원 ID에 따른 직급을 구한다"
이 함수는 특정 기준(사원ID)에 따라 직급을 구하는 것이니 GetGrade(사원ID) 라는 이름을 사용할 수 있을 것이다.
그러나, 직급의 이름(대리, 과장, 부장)에 따른 직급을 구하는 함수가 필요할 때 GetGrade(직급명)으로 함수를 작성할 수
없을수도 있다. - 모든 언어가 객체지향의 특징을 제공하는 것이 아니다. PHP4도 그런 예이다 - 때문에
GetGradeByID, GetGradeByName과 같은 함수 명도 사용할 수 있다
써먹기 전에.. 글 남겨주신 한동훈님께 감사..^^;
이희승 2005/10/24 23:10
IsValidEmpID()
는 IsEmpIDValid() 쓰거나, 만약 메소드가 존재하는 클래스가 EmpID 면 isValid() 여야 합니다.
IsEmpIDValid() 가 어법상 더 매끄럽기 때문이죠. (주어는 메소드 호출 대상 개체가 된다고 생각해 보세요) 의미는
유사하더라도, 영어로 메소드 이름을 작성하는 것이니 어법을 지켜야 한다고 생각합니다.
내 답변)
저도 동의합니다. 세심하게 보지 못했네요.
윗글에서 배울 점은 checkXXX 와 같은 개발자 시각보다 isXXX 등으로 사용자의 시각으로 메소드이름을 만들어야 한다는 점이구요.
희승님이 지적해주신 것은 어차피 영어로 메소드 이름을 작성한다면 영문법을 지키자는 것이라고 정리할 수 있겠네요. :)