정확한 메시지는 아래와 같음 Description Resource Path Location Type The project was not built due to "A resource exists with a different case: '/****'.". Fix the problem, then try refreshing this project and building it since it may be inconsistent **** Unknown Java Problem Ant로는 컴파일이 되는데,이클립스에서 계속 Problems에 Error라고 표시한다. 찾아보니, 이클립스에서는 패키지 네임을 소문자로 작성해야 한다고 한다. 그리고 Java Spec에서도 찾아보니 아래와 같이 package name은 소문자..
요즘 업무 때문에 hadoop을 많이 사용하고 있다. 오늘의 삽질 항목은 hadoop에서 iterator를 재사용할 수 없을까? 하는 것이다. hadoop의 reducer는 동일한 key로 묶인 value들을 가져올 수 있도록, Iterable type을 반환해 준다. 그런데 쓰다 보면, 이 reducer의 값들을 두 번 이상 읽고 싶을 때가 있다. 예를 들면, 전체 value들의 개수를 세어서 값들을 출력할 때 함께 찍어주고 싶다거나.. 기타 max, min 값을 구해서 같이 출력 하고 싶다거나 등 은근 필요한 경우가 많다. 처음에는 단순하게 Iterable values 변수를 복사해 뒀다가, 다시 iterator를 호출해서 쓰는 것을 시도했다. 대충 돌려보니 컴파일 오류 안 나고 실행도 잘 되는 듯 ..
사실 사용법이라기 보다는, TreeSet을 사용할 때 유의할 점 정도가 맞겠다. HashSet을 사용하기 위해서는 HashSet에 들어가는 원소의 equals() 함수와 hashCode() 함수를 각각 override해줘야 한다. 그럼 TreeSet을 사용하기 위해서는? Oracle이 제공하는 Java Doc 문서를 살펴보면, 다음과 같이 나와있다. This is so because the Set interface is defined in terms of the equals operation, but a TreeSet instance performs all element comparisons using its compareTo (or compare) method, so two elements that ..
팀에서 요즘 이펙티브 자바 스터디를 진행하고 있다. 한 주에 두 번 스터디를 하고, 한 번 할 때 세 item씩 진행한다. 뭐 그정도야.. 라고 생각할 수도 있겠지만, Java의 기초가 얕은 나로써는 꽤나 하드 트레이닝이다. C++를 기준으로 대충 찍어 맞추는 것도 슬슬 한계가 보이고, 기본적으로 Java 문법을 알고 있다는 가정 하에, 효율적인 Java 프로그래밍을 하기 위해서는 이렇게 해야 한다.. 라고 소개 하는 책인데, C++에 없는 Java 문법이 나오면 헷갈리기 시작하여 그 item은 통으로 딴나라 이야기가 되어 버리곤 한다. 이럴 땐 다시 기본 Java 책(난 Thinking In Java를 보고 있는데, 이 책은 진짜 완전 교과서T.T )으로 돌아가 해당 문법을 대강 파악한 다음, 다시 E..
많은 사람들이 Java와 JavaScript가 비슷한 언어 아니냐.. 혹은 JavaScript가 Java에서 파생된 언어가 아니냐 라고 오해를 하셔서 정리를 좀 해 보았습니다. JavaScript의 기원은 넷스케이프사가 개발한 서버측 컴포넌트와 연동할 수 있는 클라이언트측의 스크립트 언어입니다. 당시의 이름은 ‘라이브 스크립트’였고, 이후 넷스케이프사는 Java 프로그래밍 언어의 소유권을 가진 썬사와 제휴를 맺었으며, 그 후 넷스케이프사의 엔지니어가 라이브스크립트를 ‘자바스크립트’라는 이름으로 변경을 하였다고 합니다. 어디까지나 마케팅 측면을 고려하여 이미 유명세가 있던 Java의 이름을 본따 ‘자바스크립트’라는 이름을 지었을 뿐이지, 사실 두 언어 사이에는 아무런 관련성이 없습니다. 발췌 및 정리 fr..