개발 등 214

윤년의 개념

우리가 일반적으로 사용하는 1년은 태양년 또는 회귀년(tropical year)입니다. 이것은 태양이 춘분점에서 출발하여 다시금 춘분점에 도달할 때까지 걸리는 시간입니다. 1 태양년의 길이는 365일 5시간 48분 46초 또는 365.2422일입니다. 여기서 일은 평균 태양일입니다. 기 원전 46년경에 Julius Caesar는 당시의 혼란스러운 역법을 정리하면서 1년을 365일로 두었습니다. 그런데, 1 태양년은 365.2422일이므로 해마다 0.2422일이 남았고, 4년이 지나면, 0.2422 x 4 = 0.9688일로서 거의 하루가 남게 되었습니다. 이 때문에 시저는 4년마다 한번씩 윤년을 두어 그 해의 1년은 366일이 되도록 하였습니다. 이것을 율리우스력(Julian Calendar)이라고 합니..

개발 등/중급 2008.08.04

Collection 정리 2

자바 프로그램이 실행되는 동안 프로그램에서는 많은 객체들이 살고 있는 셈입니다. 일반적인 객체의 생명은 new + 생성자를 통해서 만들어진후에, 레러펀스와 결합되어 사용되다가, 가비지 컬렉터에 의해서 정리됩니다. 필요한 객체의 수가 얼마되지 않은 간단한 프로그램에는 객체가 필요할 때마다 하나씩 만들어 사용하면 그만이지만, 실제로는 객체를 모아서 관리해야 하는 경우가 생기기도 하고또는 여러 개의 객체를 하나의 유닛 단위로 연산해야하는 경우도 생깁니다.또 어떤 경우는 만들어진 객체를 사용하다가 잠시 저장하고, 또 다시 꺼내 쓰다가 다시 저장 하기도 합니다.  저장된 객체를 뭉치로 다른 객체의 메소드의 인자로 넘겨준다던가하는 행동들을 해야 하는 경우가 생깁니다.이러한 경우 객체를 저장하는 도구, 저장했다가 다..

개발 등/중급 2008.08.03

Collection 정리

여태 개발하면서 무지 많이 써오던 컬랙션들. 성능이나 별다른 고민없이 걍 대충 써왔던 것 같다. "켄트 벡의 구현 패턴"이란 책을 보다 보니 자세한 설명이 있어서 그 동안 알고 있던것과 더불어 정리해 두는 게 좋을 것 같다.1. 인터페이스The core collection interfaces. Queue는 거의 사용하지 않고 책에 없으니까 생략 ^^ - 배열가장 단순하지만 가장 유연하지 못한 컬렉션.크기가 고정되어 있고 원소 접근 방법이 용이하면 빠르다.단순한 연산의 경우 배열은 다른 컬렉션에 비해 시간, 공간 모든 면에서 효율적이다.일반적으로 배열 접근(element[i])은 ArrayList를 사용했을 때(elements.get(i))에 비해 10배 이상 빠르다고 한다.대부분의 경우 유연성 문제 때문..

개발 등/중급 2008.08.03