패키지명(Package name)
domain (영역, 범위, 소유지) |
단위로 표현할 수 있고 원자성을 띄는 자바빈 클래스, Enum 클래스 등이 위치한다. 다른 곳에서 VO라고 하는 것을 본적이 있는데 필자는 domain이란 이름이 더 마음에 든다 |
dao (Data Access Object) |
데이터액세스 계층과 관련된 클래스와 인터페이스들이 자리한다. DB과 관련된 작업을 한다면 사용할 수 있는 패키지명이다. |
service (근무, 봉사, 편익, 이용…) |
역시 웹에서 사용되는 계층 중 하나이며 대개 dao를 조합하고 트랜잭션의 경계가 설정되는 구간이기도 하다. |
core (속, 중심부, 핵심…) |
어플리케이션의 핵심적인 역할을 수행하는 클래스와 인터페이스들이 자리하는 구간이다. |
task (일, 과업, 과제…) |
단어와는 가장 딴판으로 사용되는 용어 중 하나이다. 자바에서 스레드와 관련된, java.lang.Runnable 클래스의 활동을 지원하는 클래스들이 위치한다. |
access (접근, 진입로, 증가…) |
DB 뿐만이 아니라 다른 리소스의 자원을 불러들이고 이를 자바에서 사용가능한 상태로 가공해주는 클래스들이 위치한다. |
support (지지, 지원…) |
가장 잘 이해하고 사용해야 할 패키지명이며 어느 어플리케이션이든 기본적으로 하나씩은 포함되곤 한다. 스프링 프레임워크에서는 대개 구현체를 지원하는 팩토리빈 클래스라던가 객체를 다른 클래스에서 요구하는 형태로 가공해주는 역할의 클래스들이나 부모 패키지의 인터페이스들이 구현된 클래스들이 위치해 있었다. |
config (구성, 설정) |
다른 언어 또는 외부 자원을 자바의 형태로 파싱해주고 그 설정을 Builder와 같은 설정 구현체에 저장해주는 역할을 담당한다. |
validation (확인) |
부모 패키지의 객체들을 검증하는 검사자 클래스들이 위치한다. |
util (유용한, 쓸모 있는...) |
부모 패키지의 객채들에 대해 기본적인 CRUD(Create · Remove · Update · Delete)작업을 해주거나 컬렉션 프레임워크과 비슷한, 혹은 좀 더 복잡한 작업을 도와주는 도구 클래스들이 위치한다. |
메소드명(Method Name)
1. 접두어로의 사용
get… |
어떠한 리소스를 리턴하는 메서드 |
set… |
프로퍼티에 해당 리소스를 내장시키는 역할의 메서드 |
init… |
초기값이 필요하다면 초기값을 설정하고 내부에서 관련 validate를 실행하는 역할의 메서드 |
load… |
전달인자를 기준으로 어떠한 값을 불러와 내장시켜주거나 카운팅하는 역할의 메서드 |
is… |
불리언 메서드에서 사용되는 접두어이다. 용도는 get…과 같다. |
has… |
contains 메서드처럼 어떠한 값을 가지고 있는지 확인해준다. 다른 점이 있다면 contains는 좀 더 범위가 넓지만 has는 특정 값으로 범위가 한정되있다. |
register… |
기본적으로 set과 동작하는 방식이 같지만 set은 자바빈 규약에 얽혀있기 때문에 복잡한 연산을 포함할 수 없다. 보다 지능적인 set이 요구될 때 register과 같은 접두어를 사용한다. |
create… |
register…는 보통 void 형태이지만 create는 전달인자를 통해 새로운 객체를 만든 뒤에 이 객체를 리턴해준다. 등록과 생성은 엄밀히 다르므로 create를 register처럼 써서는 안될 것이다. |
to… |
많이 만들어두면 참 좋은 접두어 메서드이다. 해당 객체를 다른 형태의 객체로 변환해준다. |
2. 전치사로의 사용
A-By-B |
B를 기준으로 A를 하겠다는 뜻 ex) getUserByName(String name) : 이름값을 통해 유저를 불러옴 |
A-With-B |
B와 함께 A를 하겠다는 뜻 ex) registerWithGeneratedName(BeanDefinition beanDefinition) : beanDefinition으로 다른 메서드를 통해 GeneratedName 값을 불러와 함께 저장. |
3. 접미사로의 사용
…With |
무엇과 함께 있는지, indexOf와 비슷한 성격의 접미사이다. |
…s |
해당 객체가 복수의 객체를 반환하는지 단일 객체를 반환하는지 구분하는 것은 매우 중요하다. 복수형으로 표현해야 하는 메서드는 반드시 복수형으로 표현하여야 한다. |
자바 명명규칙(Java Naming Rule)
http://www.oracle.com/technetwork/java/codeconventions-135099.html
'Development Note' 카테고리의 다른 글
[Development Note] - Tomcat JSP JDBC MySQL CommunicationsException (0) | 2015.05.20 |
---|---|
[Development Note] - Tomcat JDBC MySQL ClassNotFoundException (0) | 2015.02.09 |