모델이나 메소드에 이름을 붙일 때는 영어의 품사에 주의 하자

모델의 이름은 명사로 한다

예: “지불 정보”를 나타내는 모델을 만들고 싶은 경우

  • × Pay
  • ○ Payment

pay는 동사로 pay의 명사형이 payment 이다.
Pay 모델이 아니라 Payment 모델을 만들자.

예: “종교”를 나타내는 모델을 만들고 싶은 경우

  • × Religious
  • ○ Religion

religious는 형용사로 명사형은 religion 이다.
Religious 모델이 아니라 Religion 모델을 만들자.

두 단어를 연결하여 모델을 만드는 경우는 형용사+명사 or 명사+명사로 하자

예: “첨부 파일”을 나타내는 모델을 만들고 싶은 경우

  • × AttachFile
  • ○ AttachedFile

file은 명사지만 attach는 동사이다. 동사+명사의 모델을 만들면 메서드처럼 보일 수 있다.

첫 단어는 동사가 아니라 형용사를 쓰자. 다만 attach의 형용사가 없으므로 대신 과거 분사형의 attached를 사용한다.
형용사+명사 뿐만 아니라 UserGroup 등 명사+명사의 모델명을 짓는 것도 OK 이다.

처리를 실행하는 메소드는 동사만 or 동사+명사로 하자

예: “User의 상태를 액티브하게 한다” 메소드를 정의하는 경우

  • × user.active
  • ○ user.activate

active는 형용사이다. 즉 “적극적인” 이라는 상태를 표시한다다.
“액티브하게 해”라는 동작(변경)을 나타내는 경우는 active 동사형인 activate를 사용하는 것이 적절하다.

예: “티켓 기간 만료를 통보하다”라는 메소드를 정의하는 경우

  • × ticket.notify_expire
  • ○ ticket.notify_expiration

expire도 notify도 동사이다. 보통 동사를 거듭 쓰는 용법은 없다.
동사 뒤에는 목적어, 즉 명사를 가져온다. 때문에 여기서는 notify(동사)+expiration(명사)로 notify_expiration 라는 메소드를 정의한다.

이름을 붙일 때는 가산 명사인지 불가산 명사인지를 의식한다

  • × informations
  • ○ information

영어의 명사에는 가산 명사(countable noun)와 불가산 명사(uncountable noun)이 있다.
가산 명사가 있으면 a dog, two dogs 처럼 두개 이상 있으면 복수형의 s를 붙이지만 불가산 명사는 항상 단수형이다.
원래 불가산 명사에는 센다는 개념이 없기 때문에 an information 이나 two informations 라는 표현 자체가 불가능하다.

그리고 또 한가지, 소스 코드 상에서 잘 사용될 만한 불가산 명사의 예

  • × datas
  • ○ data

data도 불가산 명사이다.
엄밀히는 “datum 이라는 단어의 복수형이 data”인데 일상적으로는 data는 불가산 명사로 다루는 것 같다.

해외 사이트를 이용하고 영어를 조사 때의 Tips

  • 단어 자체의 정의를 확인하고 싶은 경우
    • 단어 + define
    • 예: pay define
  • 명사형이나 동사형을 확인하고 싶은 경우
    • 단어 + verb(동사) or noun(명사) or adjective(형용사)
    • 예: pay noun
  • 복수형을 확인하고 싶은 경우
    • 단어+plural
    • 예: payment plural
  • 가산 명사인지 불가산 명사인지를 조사하고 싶은 경우
    • 단어 + countable uncountable
    • 예: information countable uncountable
  • 반대의 의미의 단어를 조사하고 싶은 경우
    • 단어 + opposite
    • 예: active opposite
  • 처음에 떠오르는 단어가 확실하지 않을 경우
    • http://thesaurus.com 같은 시소러스(유어 사전) 사이트를 이용
    • 예: http://thesaurus.com/browse/information




출처: https://qiita.com/jnchito/items/459d58ba652bf4763820


이 글은 2019-06-07에 작성되었습니다.