전체 글 400

캐나다에서의 11월 11일.. 빼빼로 데이가 아닌 Remembrance day

한국의 11월 11일은.. 빼빼로 데이와 G20으로 떠들썩 한것 같다. 캐나다의 11월 11일.. Remembrance day 지금쯤이면, 한국시간은 12일이겠지만.. 캐나다에서는 11일이 시작되는 아침이다. 떠들썩했던 할로윈이 끝나고 난 다음날 11월이 시작되자마자 많은 사람들이 가슴에, 모자에 빨간꽃을 달고 다니더라.. 그 빨간꽃은 바로 이것! 빨간 양귀비꽃 왠만한 커피샵 많은 상점들에서 donation(기부)를 하고 이 꽃을 쉽게 가질 수 있다. 11월에 휴일이 평일에 있다는 사실도 모르고 있었는데, 흔히 캐나다의 휴일은 어떤달의 몇번째 요일, 이렇게 쉬는데 이 날만큼은 날짜로 정해져있다! 당연! 기념해야하는 날이니깐!! Remembrance day는.. 1914-1918년까지 이어진 세계대전1차의..

하루하루 2010.11.12 (7)

CouchDB 관련 링크

공식 Apache CouchDB homepage http://couchdb.apache.org/ CouchDB: The Definitive Guide http://books.couchdb.org/relax/ Damien Katz Relaxing on CouchDB CouchDB에 대해 Damien Katz(CouchDB를 만든)와 인터뷰한 내용. http://www.infoq.com/interviews/CouchDB-Damien-Katz 웹 문서들 얼랭으로 구현된 문서 기반 분산 데이터베이스, CouchDB http://www.dbguide.net/know/know102001.jsp?mode=view&pg=1&idx=3468 문서기반 분산 데이터베이스 CouchDB http://xeraph.egloos...

backend/DataBase 2010.02.09

테스트 코드 작성 관련 링크

JUnit Test Case JUnit 을 이용하여 Unit Test Case 를 작성하고 실행하는 방법을 안내한다. http://www.egovframe.go.kr/wiki/doku.php?id=egovframework:dev:tst:test_case DB support 데이터베이스 관련 단위 테스트를 수행하기 위한 Test Case 를 작성하고 실행하는 방법을 안내한다. http://www.egovframe.go.kr/wiki/doku.php?id=egovframework:dev:tst:db_support How to test spring session or request scope beans http://thomaswabner.wordpress.com/2009/04/27/how-to-test-spr..

backend 2010.02.08

아침을 조금 더 일찍 시작하는 한걸음..살짝!

2010년이 되니 목표로 꼭! 시작하자! 이런건 아니었고, 항상 그렇듯 해볼까? 그날 생각하고 그날 영어회화학원을 대뜸 끊었다. 그것도... 완전 저녁형인간인 내가 아침시간으로.. 저녁 12시쯤 다른 사람들은 잠자리에 들무렵에, 난 그제서야 집에 도착해 그 후로 한참을 나의 시간을 보내는데.. 그런 내가.. 아침 6시에 일어난다는건 나의 신체에 역행하는 것 같아 효율이 나지 않는다고 생각했는데.. 고향에 내려가니 매일 5시에 일어나시는 어머니를 생각하니 뭉클했다. 매번 고향에 내려갈때마다 열심히 살아야지~ 다짐하고는 하는데 돌아오는 버스에서 또 다 까먹어 버렸었는데.. 우리 어머니는 나를 낳으신 후 힘든일은 다 참고 하시는데 나는 뭐하고 있나~ 아침에 제대로 일어나지 못하면 다른것도 못한다는 생각으로 도..

하루하루 2010.01.05 (2)

한국 구글 검색 결과 페이지의 'HOT 토픽'

최근에 추가된 한국 구글 검색 결과 페이지에 나타나는 오른쪽 관련검색 밑의 HOT토픽! 스폰서 링크는 눈에 거의 들어오지 않아서 별 문제 없는데 가십거리 위주로 올라오는 HOT 토픽이 정말 맘에 안든다. 난 누가 성형했는지 관심없고, 품절녀의 블로그도 관심없고, 천정명이 전역해서 뭐라고 했는지도 관심없다. 매번 낚을려고 하는 기사들과 광고들을 극도로 싫어해서 그러는지 모르겠지만, 검색 결과를 보다보면 짧게 함축된 단어에 궁금하기도 하여 누르고 싶지만 누르고 나면 낚시성에 별일 아닌일을 크게 와전하는 일도 많아서 괜히 시간만 정말 아깝다. 거기에 집중력을 흐트린다. 안보이면 정말 궁금하지 않을것을, 이 서비스 자체가 나쁘다고는 생각하지 않는다. 나와 반대로 현재 이슈가 되는 일에 관심이 많은 사람들에겐 참..

[스타크래프트] 홍진호 눈물의 대박경기~

홍진호 - 임요환의 임진록 경기 오늘 6:30분부터 진행되었는데 두근두근. 대~~~~~~~~~박 정말 오랫만의 승리라 정말 눈물겹다 +_+ 기념으로 검색어 1위에 오르고, 고인규-민찬기 경기에도 해설자들이 홍진호 검색어 2위됐다고 얘기하다가 '홍진호 1위 만들어줘야죠~' 얘기하자마자 1위된.. 홍진호 역시 멋있당!! +_+ 승리하여 검색어1위한 기념 스샷~

잡동재미꺼리 2009.11.24 (6)

[책/여행] 책에서 찾는 여행의 묘미

한창 사진찍기 좋아하고, 여행을 좋아하다보니 여행을 거의 매주마다 다닌지 일년정도가 흐르니 나답지 않게(?) 주말에 커피가게에 앉아 커피를 마시며 책을 원없이 읽는 다거나, 집에서 하루종일 침대를 구르며 책 읽고 싶은 마음이 가득했다. 많은 여행으로 여행휴유증없이 일상으로 되돌아오는건 아무렇지 않게 금방 되돌아올 수 있는 능력은 생겼으나, 몸은 조금 지친것 같았다. 몇달동안 단 한번도 집에서 쉬지 못했단 사실을 나중에 깨달으니 더 몸이 피곤하게 느껴졌던 것 같기도 하다. 주말엔 책을 아예 못읽고, 평일엔 하루일과를 마치고 책을 꺼내드는 순간 몇페이지 읽지못하고 잠들어 버리는게 너무 안타까웠는데 최근에 잠깐 여행을 쉬니, 주말이 여유로워져서 책을 많이 읽는 시간이 늘어났다. 최근의 아주 소박한 꿈이었던 늘..

[리뷰] 지면뉴스의 즐거움을 인터넷 뉴스에서도.. - 파오인

저번에 블로깅한 서비스에 대해 조금 더 리뷰해보고자 정리해 본다. 메인파헤치기 1. 1년 전 오늘은? 마이뉴스 설정하기 요즘엔 이런 기능이 특별하게 여겨지지 않지만 필수적은 기능으로 포함된 보고싶은 뉴스 보기도 할 수 있다. 내가 선호하는 뉴스들만 볼 수 있다는~ 뉴스 순위가 어떤 다른 사람의 편집의 영향이 없이 이용자의 Hit율에 노출되는 기사들과 파오인 지수로 많이 본 기사를 볼 수도 있고, 파오니티에서 한참 이슈가 되고 있는 글도 노출된다. 신문보기 지면신문을 인터넷으로 볼 수도 있다. 하지만, 이건 무료는 아니고, 파오인에서 거래되는 파오라는 단위로 충전해서 사용해야 한다. 지면신문의 가격과 거의 동일하다. 원하는 보고싶은 신문을 정하고 선택하면 된다. 신문보기 자세히를 하면 결제한 신문의 제목 ..

잡동재미꺼리 2009.11.15 (2)

[리뷰] 낚시성 기사에 분노하고 지쳤다면.. - 파오인

예전에 한번, 신문 기사를 읽고 있는건지, 광고만 쭉 보고 있는건지 한탄하는 블로깅을 한 적이 있는데, 이번에 알게된 서비스는 참 맘에 든다. 포털 사이트의 뉴스들의 일치하지 않는 본문과 제목, 가십거리 기사들에 더이상 헤매이지 않고, 원하는 정보를 골라 볼 수 있는 서비스를 발견했기 때문~ 오픈한지 3달정도 된 베타 서비스 '파오인' 파오인의 첫 느낌 깔끔하고, 정돈된 모습이다. 첫화면에 광고도 없는.. 바람직한(?) 화면이다. 파오인은? 파오인은 종이신문을 기사 단위로 컷팅한 후 이를 이미지 형태로 제공되는 뉴스 컨텐츠이며, 웹 브라우저를 통해 기사와 신문 속의 다양한 컨텐츠를 빠르고 편하게 볼 수 있게 웹으로 구현한 뉴스 서비스이다. 요즘은 많은 인터넷 기사들이 신속성을 다투며 그 어느때보다 발빠른..

잡동재미꺼리 2009.11.15

[영화] 낡은 다락방속의 오래된 다이어리같은 영화

아무런 정보없이 그냥 단지.. '피아노'가 관련된 영화를 우연히 발견해서 보게된... 제목은 피아니스트의 전설 (The Legend Of 1900, 1998) 제목을 본 순간 느낀건, 1900의 전설 ? 근데 번역은 1900이 피아니스트로 바뀐걸까? 번역이 참..... 하지만 영화를 보고 나면 곧~ 이해된다는... 98년에 개봉하여 올해 11년이 된 영화. 우리나라에는 4년 후인 2002년에 개봉되었다고 한다. 물론 실화는 아니라는~ 영화는 현재와 한 남자의 회상으로 과거를 왔다갔다하며 스토리가 이어진다. 한 남자는 슬픈 표정으로 트럼펫을 팔러 와서 시작되는 이야기. 그곳에서 악기를 팔기전, 마지막 한번만 트럼펫을 불러보고 싶다며...연주를 한다. .... 어느 큰~ 배 안에 1900년 초 배안의 승객들..

throw new UnsupportedOperationException()

자동생성되는 메소드에 throw new UnsupportedOperationException()넣기 이클립스에서 제공해주는 코드 템플릿을 이용하여, 인터페이스를 만들고 그 구현체를 퀵픽스를 통해 메소드를 자동생성했을 때 리턴값이 있을 경우 컴파일에러가 일시적으로 나지 않게 해주기 위해서 return null; 이나 return 0; 이나 임시땜빵으로 이런작업을 해주는데 이게 귀찮을 때 throw new UnsupportedOperationException()을 코드 템플릿을 이용하여 넣어주는 방법 이클립스라면 Preference – Java – Code Style – Code Templates 안에 Code/Method Body에 이를 추가해주면 된다. 자꾸 까먹어서, 링크 해 둡니다.

backend/Java 2009.10.30 (4)

[Effective Java] 23. 새로 작성하는 코드에서는 원천(raw) 타입을 사용하지 말자.

[Effective Java] 23. 새로 작성하는 코드에서는 원천(raw) 타입을 사용하지 말자. 제네릭을 사용하면 각 컬렉션에 어떤 타입의 객체를 허용할 것인지 컴파일러에게 알려주게 되며, 캐스트 코드를 컴파일러가 자동으로 만들어준다. 또한 잘못된 타입의 객체를 추가하려고 하면 컴파일 시에 알려준다. 하나 이상의 타입 매개변수(type parameter)를 선언하고 있는 클래스나 인터페이스를 제네릭 클래스, 또는 제네릭 인터페이스라고 한다. 자바 1.5를 기준으로 List 인터페이스에는 하나의 타입 매개변수로 E가 있는데, 여기서 E는 List에 저장되는 요소의 타입을 나타낸다. 각 제네릭 타입에서는 원천(raw) 타입을 정의하는데 원천 타입이란 실 타입 매개변수가 없이 사용되는 제네릭 타입의 이름을..

backend/Java 2009.10.30

[Effective Java] 19. 타입을 정의할 때만 인터페이스를 사용하자.

[Effective Java] 19. 타입을 정의할 때만 인터페이스를 사용하자. // Constant interface antipattern - do not use! public interface PhysicalConstants { // Avogadro's number (1/mol) static final double AVOGADROS_NUMBER = 6.02214199e23; // Boltzmann constant (J/K) static final double BOLTZMANN_CONSTANT = 1.3806503e-23; // Mass of the electron (kg) static final double ELECTRON_MASS = 9.10938188e-31; } 상수 인터페이스 패턴은 인터페이스..

backend/Java 2009.10.27 (2)

'독도의 날'이 있었나?

오랫만에 휴일을 집에서 즐기며 이리저리 굴러다니다 12시에 티비를 돌리다가 우연히 멈춘 케이블 방송 처음엔 자주하는 여행을 주제로 한 방송인 줄 알았다. 그러나. 독.도 ? 출처 : http://blogfile.paran.com/BLOG_840833/200807/1216790911_독도6.jpg 방송이름은 독도가 달린다. 더구나 화면 위에 써져있는 '독도의 날' 특집! 오늘이 '독도의 날'인가? 그런데, 독도의 날이 있었나? 독도 레이서는 또 뭐지..? 갖가지 의문이 들지만, 방송을 계속 보고 있으니 꽤 재밌었다. 결국 끝까지 보면서 많은 것들이 뭉클하게 했다. 독도의 날은 1900년에 대한제국칙령 제 41호가 제정된 10월 25일을 기념하기 위해 2008년에 '독도의 날'로 정해져 올해로 2번째를 맞이..

하루하루 2009.10.25 (4)

이승환 - 20주년 기념 프로젝트 앨범 : 환타스틱 프렌즈

오는 10월 27일에 환님의 20주년 기념 프로젝트 앨범이 발매된다. 환님의 곡들을 여러 가수가 함께 부른 앨범이다. 예약판매를 하였는데 아직도 일주일이 남았다.ㅠㅠ 사진출처 : yes24 팬으로써 20주년의 기쁨은 이루 말할 수 없다. 내가 좋아하는 가수가 그의 꿈을 향하여 노력하고 땀흘린지 20년이라니.. 초등학교때 음악이란걸 알기도 전에 덩크슛을 따라 부르고 자라서 그런지 어느덧 한 가수가 아니라 나에겐 가족같다. 내가 정말 힘들었을때 길을 제시해준 음악이 그의 음악이었고 기쁘고 아름다울때도 그의 음악이 더 나를 기쁘게 해줬으니.. 환님으로 인한(?) 추억은 화려하지 않지만 누구보다 소중한 인연도 많이 있었고, 소중한 추억도 많다. 무엇보다도 한분야에 자신의 고집대로, 자신의 마음대로, 자신의 신념..

[Effective Java] 15. 가변성을 최소화하자.

[Effective Java] 15. 가변성을 최소화하자. 불변(immutable) 클래스는 자신의 인스턴스가 갖는 값을 변경할 수 없는 클래스이다. 각 인스턴스가 갖는 모든 정보는 그것이 생성될 때 제공되며 객체로 살아있는동안 변경되지 않는다. 자바의 불변 클래스는 String, 박스화 기본형(boxed primitive) 클래스, BigInteger, BigDecimal 등등이 있다. 불변 클래스는 가변 클래스에 비해 설계와 구현 및 사용이 더 쉽다. 또한 에러 발생이 적으며 보안이나 사용 측변에서 더 안전하다. 불변 클래스 만들때 다섯 가지 규칙 1) 객체의 상태를 변경하는 그 어떤 메소드(변경자라고 하는)도 제공하지 않는다. 2) 상속을 할 수 없도록 하자. 일반적으로는 클래스를 final로 지정..

backend/Java 2009.10.19 (2)

[Effective Java] 11. clone 메소드는 신중하게 오버라이드 하자.

[Effective Java] 11. clone 메소드는 신중하게 오버라이드 하자. Cloneable 인터페이스는 복제를 허용하는 객체라는 것을 알리는 목적으로 사용하는 믹스인 인터페이스(mixin interface) 아무런 method도 없는 Cloneable 인터페이스는 어디에 쓰이는 것일까? 이 인터페이스는 Object 클래스의 protected 메소드인 clone의 행동 방식을 규정한다. 만약, clone 메소드가 호출된 객체가 Cloneable 타입이라면, Object.clone 메소드는 이 객체의 모든 필드를 그대로 복사한 복제본을 리턴한다. 하지만 Cloneable 타입이 아니라면 CloneNotSupportedException을 던진다. java.lang.Object.clone의 명세(Sp..

backend/Java 2009.10.15 (2)

[CouchDB] Apache CouchDB 0.10.0 이 나왔답니다.

Apache CouchDB가 0.9.1버젼에서 0.10.0 버젼으로 뛰었다. 11시간전에 DAMIEN KATZ 블로그에 올라왔다. 이번 버젼 개선사항은 Added modular configuration file directories. Miscellaneous improvements to build, system integration, and portability. 이렇다고 한다. 조금 더 편리하게 만들기 위해 노력한 것 같다. 그 외에도 Show와 List API에 변화가 생겼다. 자세한 건 좀 더 살펴봐야겠다.

backend/DataBase 2009.10.14 (2)

소니 알파 550 광고 속 '김영갑 갤러리'

개인적으로 소니 카메라를 써보지 않아서 잘 모르지만, 소니의 광고는 참 좋아한다. 카메라 자체를 좋아하게 만드는 광고와 배경음악 선곡도 참 좋고, 또! 소지섭이 나오니깐~ 이번에 새로 나온 준중형급 DSLR인 알파550 광고가 내가 제일 존경하는 사진작가 김영갑 작가님의 일생이 담긴 용눈이오름에서 촬영되었다. 역시 이번에도 실망시키지 않는다. 간접적으로나마 광고 속 김영갑 작가님의 사진을 볼 수 있어서 좋고, '내가 좋아하는 작가가 그 소니 광고에 나오는 그 작품을 찍는 작가분이셔~' 라고 주위사람들에게 말할 수도 있으니.. 광고를 한번 봐볼까? 출처 : http://alpha.sony.co.kr/event/a550/index.html 메이킹 필름 '소지섭, 김영갑을 말하다' 알파 550 관심을 갖고 구..

[CouchDB] HTTP view API

CouchDB wiki에 있는 내용을 보고 정리한 내용입니다. 제가 하고싶은걸 실습한 것이기 때문에 삭제된 내용도 있습니다. view(뷰)는 Couch document를 쿼리하거나 리포팅할때 사용되는 주요툴이다. 뷰는 자바스크립트 function으로 정의된다. function(doc) { emit(null, doc); } Creating Views permanent view를 만들기 위해 function은 특별한 design document에 먼저 저장되어 있어야 한다. design document의 id는 _design으로 시작하고 view attribute는 map과 optional하게 reduce를 갖는다. design document의 모든 view는 index되어 있다. design docume..

backend/DataBase 2009.09.29

[Effective Java] 9. equals 메소드를 오버라이드 할 땐 hashCode 메소드도 항상 오버라이드 하자.

9. equals 메소드를 오버라이드 할 땐 hashCode 메소드도 항상 오버라이드 하자. Java API Object.hashCode 메소드 spec에 명시 - 애플리케이션 실행 중에 같은 객체에 대해 한 번 이상 호출되더라도 hashCode 메소드는 같은 정수를 일관성있게 반환해야 한다. - equals(Object) 메소드 호출 결과 두 객체가 동일하다면, 두 객체 각각에 대해 hashCode 메소드를 호출했을 때 같은 정수 값이 나와야 한다. - equals(Object) 메소드 호출 결과 두 객체가 다르다고 해서 두 객체 각각에 대해 hashCode 메소드를 호출했을 때 반드시 다른 정수 값이 나올 필요는 없다. 그러나 같지 않은 객체들에 대해 hashCode 메소드에서 서로 다른 정수 값을 ..

backend/Java 2009.09.28

[Effective Java] 8. equals 메소드를 오버라이딩 할 때는 보편적 계약을 따르자.

8. equals 메소드를 오버라이딩 할 때는 보편적 계약을 따르자. equals메소드를 오버라이드 하지 않고 써야할때 - 클래스의 각 인스턴스가 본래부터 유일한 경우 - 두 인스턴스가 논리적으로 같은지 검사하지 않아도 되는 클래스의 경우 - 수퍼 클래스에서 equals를 이미 오버라이딩 했고, 그 메소드를 그대로 사용해도 좋은 경우 - private나 패키지 전용 클래스라서 이 클래스의 equals 메소드가 절대 호출되지 않아야 할 경우 그럼 언제 해야하나? 객체 참조만으로 인스턴스의 동일 여부를 판단하는 것이 아니라, 인스턴스가 갖는 값을 비교하여 논리적으로 같은지 판단할 필요가 있는 클래스로써, 자신의 수퍼클래스에서 equals 메소드를 오버라이드하지 않았을 때다. 일반적으로 값(value) 클래스..

backend/Java 2009.09.24 (4)

[Effective Java] 5. 불필요한 객체 생성을 피하자

5. 불필요한 객체 생성을 피하자 불변(immutable) 객체는 항상 재사용가능하다. String s = new String("buri"); 이렇게 쓰지 말고 String s = "buri"; 이렇게 쓰자는거 실행될 때마다 새로운 인스턴스를 생성하지 않고 하나의 String 인스턴스를 사용하며 같은 JVM에서 실행되는 어떤 코드에서도 동일한 문자열 리터럴(literal)을 갖도록 재사용될 것이다. 불변 클래스의 불필요한 객체 생성을 막으려면 생성자보다는 static 팩토리 메소드를 사용하는 것이 좋다. 생성자인 Boolean(String)보다는 static 팩토리 메소드인 Boolean.valueOf(String)을 사용하는 것이 더 좋다. 생성자는 호출될 때마다 새 객체를 만드는 반면, static ..

backend/Java 2009.09.23 (4)

[Windows] Vista에서 명령프롬프트창의 글꼴 바꾸기

Vista에서 기본으로 제공해주는 글꼴이 영~ 맘에 들지않아, 구글링을 해보니, 역시나 맘에 안드는 사람이 많나보군요. 간략하게 정리해보자면, 한글 Vista인 경우!!!를 전제로, 실행(Run) -> regedit 명령어를 치면 레지스트리 편집가능하게 되고 HKEY_LOCAL_MACHINE\Software\Microsoft\WindowsNT\CurrentVersion\Console\TrueTypeFont 경로로 가서 키가 949인 변수의 값을 바꿔준다. (원하는 글꼴로, 글꼴은 이미 설치되어있어야겠죠~) 그리고 재부팅하면 끝~ 저는 한글 Vista인데 영문 Vista인 경우의 글을 따라해서 자꾸 실패했는데, 그거에 따라 키가 다릅니다.(아마도~) 자세한 건 여기를 참고하세요. 정리가 잘 되어있는듯 해요~

[Effective Java] 4. private 생성자를 사용해서 인스턴스 생성을 못하게 하자

4. private 생성자를 사용해서 인스턴스 생성을 못하게 하자 static 메소드나 static 필드만을 모아 놓은 클래스를 만들필요가 있는 유틸리티성 클래스는 인스턴스 생성이 무의미하다. 그러나 그런 클래스라도 명시적으로 지정한 생성자가 없을때 컴파일러가 디폴트 생성자 (public 이며 매개변수가 없는)를 만들어주기 때문에 javadoc 프로그램으로 생성하는 API 문서에도 나타나기 때문에 인스턴스 생성이 가능한 클래스로 오인될 수 있다. 생성자 호출을 통한 인스턴스 생성을 방지하고 API 문서에도 나타나지 않도록 하려면? private 생성자를 정의하면 인스턴스 생성이 불가능한 클래스를 만들 수 있다. public class UtilityClass { //이 클래스는 인스턴스 생성이 불가능하다라..

backend/Java 2009.09.17

Eclipse Galileo에 어떤 프로젝트가 있을까?

Eclipse Galileo가 릴리즈 된지 좀 되었다. 릴리즈가 되어 업데이트 할 때마다 어떤 프로젝트가 들어있는지 관심있게 살펴보지 않았는데, 이렇게 다양한 프로젝트들이 있구나.. dW에 있는 아티클을 보고 한번 알고 가는게 좋을 듯 하다. Eclipse Galileo 살펴보기최신 버전의 오픈 소스 다목적 IDE 및 애플리케이션 플랫폼의 새로운 기능 표 1. Galileo 릴리스 트레인 프로젝트 프로젝트 개요 웹 사이트 ACTF(Accessibility Tools Framework) 장애가 있는 사용자를 위한 애플리케이션 및 컨텐츠 개발 http://www.eclipse.org/actf/ BIRT(Business Intelligence and Reporting Tools) 보고서 생성 http://ww..

backend/Java 2009.08.26 (2)

[Effective Java] 3. private 생성자나 enum 타입을 사용해서 싱글톤의 특성을 유지하자.

3. private 생성자나 enum 타입을 사용해서 싱글톤의 특성을 유지하자. 싱글톤(singleton)은 정확히 하나의 인스턴스만 생성되는 클래스. 싱글톤은 본질적으로 유일한 시스템 컴포넌트를 나타낸다. 예를 들면, 윈도우 매니저나 파일 시스템 등 자바 1.5 이후 싱글톤 구현하는 가장 좋은 방법 //열거형( Enum) 싱글톤 public enum Elvis { INSTANCE; public void leaveTheBuilding() { ... } } 복잡한 직렬화나 리플렉션 상황에서도 직렬화가 자동으로 지원되고, 인스턴스가 여러 개 생기지 않도록 확실하게 보장해준다.

backend/Java 2009.08.26 (3)