(Java) RSS 파싱 라이브러리 ROME

(adsbygoogle = window.adsbygoogle || []).push({}); RSS 파싱 작업을 물론 하위단계 부터 다 구현을 할려고 하면 할수 있겠지만, 바야흐로 오픈소스의 시대. 그리고 자바라는 언어에서 기능을 구현하는데, 찾아보지 않는다는것은 죄악이라는 생각에 찾아보니 ROME 이라는 것이 있다. 사실은 Jakarta FeedParser 라는 것이 있는데 dormant(휴식기) 상태인것 같다. 다운로드나 maven 주소가 없는 상태이다. 자바캔 : http://javacan.tistory.com/entry/ReadRSSAtomFeedUsingROME… Read More

[후기] 제 13회 JCO를 다녀와서

자바 개발자는 JCO를 다녀와야 하는가? 하는 물음을 가지고 있었다. 작년에 나는 전업 자바 개발자가 아니였기 때문에 JCO 를 가는 동료들을 바라보면서 굳이 갈 필요가 있을까 하는 생각을 가지고 있었다. Deview 와는 다르고 개인적으로 자바라는 언어는 어느정도 완성된 언어라는 느낌이 들었다. 더 새로울게 있을까 하는 느낌? 그렇지만 올해 내가 처음 참가한 JCO의 느낌과 내용을 쓰려고 한다.… Read More

(Java) Effective Java 정리 파편.

별거는 아니고 Effective 자바 읽으면서 몇가지 메모한 사항들 정리한다.   [항목45. 지역변수의 유효범위를 최소화하자.] 지역변수의 유효범위를 최소화 하는 가장 강력한 방법은 그 변수가 최초 사용되는 곳에 선언하는 것이다.  C언어 스타일의 함수 제일 앞에 변수를 선언하는 방식은 버리자. (사견: 각자의 언어에 맞는 스타일을 쓰자.) 지역변수의 선언과 초기화에 주의하자. 올바른 초기화가 될때 선언을 하지. While 보다는 for문을 사용하자.… Read More

(maven) maven phase

maven에서 빌드를 하다보면 goal 을 입력해야하는 경우가 있는데 그냥 package 를 입력하면 jar를 생성해 주는것으로 생각해서 작업을 하곤 했는데, maven 홈페이지 가서 각 phase에 대한 내용을 발췌해왔다. 몇가지 살펴보면 package 는 당연히 compiled code 를 가지고 jar와 같은 배포형식으로 만든다고 되어 있다. install은 말 그대로 설치인데, package 된 것을 다른 프로젝트에서 사용할 수 있도록 (maven)… Read More

(Java) 싱글톤 + Map을 이용한 객체관리.

(adsbygoogle = window.adsbygoogle || []).push({}); 객체를 생성하는 일은 여간 번거로운 일이 아니다. 그냥 new 만 하면 되지 않냐고 애기하는 사람도 많겠지만, 자바에서의 new는 결국 메모리를 잡는 일이고, 명시적으로 해제를 할수 없기 때문에 객체를 계속 생성해 내는 것은 여간 꺼림직한일이 아닐수 없다. 이전에 Map을 이용해서 한번 생성된 객체를 넣어두고 가져와서 사용하는 방식에 대해서 정선생님께 들은적이 있는데, 최근에… Read More

[Java] SortedSet에 대해서.

(adsbygoogle = window.adsbygoogle || []).push({}); Set 인터페이스를 상속받는 인터페이스인 SortedSet 에 대해서 알아보자. Set은 부가적으로(중복제거외에) element 에 대한 전체 ordering을 제공하고 있다. element 들은 natural ordering에 의해서 순서가 매겨지거나 또는 SortedSet의 생성시 제공된 Comparator 에 의해서 순서가 매겨진다.  SortedSet은 comparator 를 내부적으로 가지고 있다. 이 SortedSet의 Iterator 는 ascending element order로 보여준다. 몇몇 추가적인 함수들은… Read More

[Java] StringAppender, StringBuilder 짭.

(adsbygoogle = window.adsbygoogle || []).push({}); 별건 아닌데, StringBuilder를 자주 사용하는데 단점이라면 너무 자주 사용해서 new 로 매번 생성한다는 점이고 또 다른 단점은 append() 함수가 하나의 인자만을 받는 다는 점이다. 그래서 StringBuilder를 가지는 클래스를 만들고 자주 사용하면 생성하지 않고 쓰게 하기 위해서 static으로 모든 함수를 만들어봤다. 그리고 매번 append() 하고 마지막에 toString()  하는 것이 번거로워서 mergeToStrt() 함수를… Read More

[Java] LinkedList, ArrayList와 뭐가 다른가.

클린코드등의 책을 보면서, 인터페이스에 맞춰서 프로그래밍 하라는 이야기를 많이 들었고, C#의 ArrayList가 익숙해서 그런지 주로 자바에서 사용하는 Collection중 하나가 아래와 같은 List 이다.  List strList = new ArrayList();  List는 다양한 상세구현 클래스를 가지고 있는데 그 중에서 가장 보편적인 것이 ArrayList 이고, 이번엔 LinkedList에 대해서 알아보도록 하자. 주로 LinkedList 만이 가지고 있는 함수들을 중점적으로 보도록 하겠다.… Read More

Nexus를 이용한 사내 Maven Repository 만들기 1.

앞서 이클립스에 maven을 설치하는 과정에 대해서 설명했는데, 이번 장에는 사내 maven Repository를 구성하는 방법에 대해서 알아보자. 일단 사내 Repository를 구성해야 하는 가장 큰 이유는 매번 참조하고 있는 라이브러리를 가져와야 하는 불편함도 있겠지만, 솔직히 필자에게 더 필요한건 사내에서 만들어진 라이브러리를 Repository에 올려놓고 다른 동료개발자분들이 쉽게 찾아서 쓸수 있게 하는것이 더 중요했다.  자, 이제 Nexus의 세계로 떠나보자.… Read More

[Java] StringBuilder delete() 시, 현재 길이 체크할것.

너무 간단한것이긴 한데, 최근에 만든 소스에서 실수를 한적이 있어서 체벌(?)차 이렇게 적는다. 무엇인가 가변 문자열 조합을 위해서는 String 이 단연 후달리는 것은 보편적 자바 개발자라면 다 아는 사실일텐데, 그래서 StringBuilder를 사용하는데 실수 할수 있는 부분이다.   아래의 코드는 쉼표(,) 기반의 문자열을 만들어 나가는 과정이다. 그리고 마지막 쉼표를 제거하는 코드가 있다. 사실 for문안에서 쉼표를 넣을지 말지를… Read More