본문 바로가기

Homo Faber/Idioms8

enum 의 내용을 공통으로 사용하는 방법 enum 객체는 상속이 되지 않기 때문에 공통된 부분을 상속을 사용해서 사용하지 못한다. 대신에 인터페이스와 static 오퍼레이션을 사용한다면 이와 유사하게 재사용할 수 있다. 예를 들어, 특정 코드값을 갖는 enum을 선언시 다음과 같이 사용할 수 있다. public class CodeTest { private interface Codable { String getCode(); } private static E from( E[] values, String code) { for (E e : values) if (e.getCode().equals(code)) return e; throw new IllegalArgumentException("Boring: " + code); } enum Gender imp.. 2008. 11. 25.
소프트웨어 공학의 진실과 허위 1. 관리 진실 1. 소프트웨어 작업에서 가장 중요한 요소는 프로그래머들이 사용하는 도구나 기술이 아닌 프로그래머들 자신들의 자질(quality)이다. 진실 2. "개인차" 조사에 따르면, 최고의 프로그래머는 최악의 프로그래머보다 28배나 생산성이 높다. 이들의 연봉이 결코 그만큼 받지 못한다는 사실로 미루어봐서 소프트웨어 분야에서 이들은 大 바겐세일용이다. 진실 3. 지연된 프로젝트에 사람을 투입하는 것은 프로젝트를 더 지연되게 만든다. 진실 4. 작업 환경은 생산성과 제품 품질에 깊은 영향을 준다. 진실 5. 과대 선전은 소프트웨어 업계에서 전염병이다. 대부분의 소프트웨어 도구와 기법들은 생산성과 품질에 있어서 약 5내지 35 퍼센트 가량 향상시켜준다. 하지만, 어느 시점이건 대부분의 그러한 향상성은.. 2008. 3. 5.
가벼운 클래스 다음의 패턴은 Hibernate에서 예전이나 지금이나 여전히 보편적이지만, Hibernate3 에서 이 문제를 해결하는 다른 방법이 있다. 다음과 같은 저장 클래스를 가지고 있다고 가정하자. public class Document implements Node { private Long _key; private String _name; private Calendar _created; private Calendar _updated; private Folder _folder; private Clob _text; public String getKey() { return _key; } public void setKey(Long key) { _key = key; } public String getName() { r.. 2008. 2. 27.
Spring에서 annotation 태그 사용하기 (3) CustomerAutowireConfigurer CustomerAutowireConfigurer는 자동엮음(autowiring) 프로세스를 수정하여 만들 수 있게 하는 BeanFactoryPostProcessor이다. 특히, 만들어진 qualifier annotation 유형이 Spring의 @Qualifier annotation을 사용하지 않는다고 하더라도 등록이 가능하다. example.CustomQualifier 어플리케이션 컨텍스트에 대해 활성화되는 AutowireCadidateResolver의 특별한 구현체는 자바 버전에 달려있음을 유의하라. 만일 자바 5 이전에서 실행한다면 qualifier annotation은 지원이 안되며, 자동엮음 대상 후보들은 각각의 빈 정의의 'autowire-can.. 2008. 2. 21.
반응형