패키지명(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



블로그 이미지

행복그리고..

,

Tomcat에서 WebServer를 구동후 MySQL에 접속하는 jsp를 호출하였는데 아래와 같이 Exception이 발생하였다.


com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure The last packet sent successfully to the server was 0 milliseconds ago.


이와 같이 Exception이 발생한 경우에는 해당 catalina.policy 파일의 수정이 필요하다.

catalina.policy 파일 위치는 해당 Tomcat/conf/catalina.policy 되겠다.


catalina.policy

// ========== WEB APPLICATION PERMISSIONS =====================================



// These permissions are granted by default to all web applications

// In addition, a web application will be given a read FilePermission

// and JndiPermission for all files and directories in its document root.

grant { 

· 

·

·

    permission java.net.SocketPermission "해당아이피:포트", "connect";


    // Precompiled JSPs need access to these system properties.

    permission java.util.PropertyPermission

     "org.apache.jasper.runtime.BodyContentImpl.LIMIT_BUFFER", "read";

    permission java.util.PropertyPermission "org.apache.el.parser.COERCE_TO_ZERO", "read";

};



블로그 이미지

행복그리고..

,

Eclipse에서 개발하다가 MySQL 에서 데이타 값을 가져오는 경우가 생겼다. 


MySQL Class를 Load하는 프로젝트에서 ClassNotFoundException 발생하였다.


MySQL jar를 해당 프로젝트에 추가하였는데도 말이다.


해결방법은 해당 Workspace에서 사용되는 Tomcat/lib 폴더에 MySQL jar를 복사해야 한다.


해당 Workspace 에서 사용되는 Tomcat 위치를 알고싶을 경우에는


Window/Preferences/Server/Runtime Environments 로 가서 확인



블로그 이미지

행복그리고..

,