본문 바로가기

Java

guava Lists.transform 요즘 많이 사용하는 라이브러리중 하나가 Guava인데요 Guava의 Lists.transform 사용시 주의(?)해야 하는 부분이 하나가 있습니다. 오늘 코드리뷰를 동료와 하다가 발견한 부분인데요... Lists.transform을 사용하는 경우 TransformingRandomAccessList 객체가 반환되는데요 이 List 구현체는 일반적으로 알고 있는 ArrayList와는 조금 다르게 동작합니다. 1번의 transform 메서드의 결과가 어떻게 나올까요? 우리가 알고있는 일반적인 ArrayList라면 기존에 가지고 있던 1,2,3 String에 "11"이 붙어서 결과가 나와야하지만 실제로 돌려보면 1,2,3이 나옵니다. 그럼 구현체를 볼까요? @Override public T get(int ind.. 더보기
[Java] Map의 값 비교 후 출력 sample 더보기
[펌] OOP Basic http://beginnersbook.com/ http://vandbt.tistory.com/39 http://vandbt.tistory.com/10 더보기
[Joda] DateTime Convert 더보기
[Java] Map.Entry for(ClassA key : myMap.keySet()) { System.out.println(key); System.out.println(myMap.get(key);} 보다는.. for(Map.Entry entrie : myMap.entrySet()) { System.out.println(entrie.getKey()); System.out.println(entrie.getValue()); } 더보기
[Java] Spring-Data-JPA 프로젝트 템플릿 몇개월전에 현기형님의 주도하게 팀 프로젝트를 간단하게 진행한적이 있습니다.그때 형님께서 Spring-data-Jpa + QueryDSL로 프로젝트 셋팅을 하셨고 그에 맞춰서 간단하게 진행을 했었습니다.그전까지 ORM을 책으로만 봐왔던 저에게는 처음 경험하는 ORM이 신기할뿐이었는데요... 그 아쉬움으로따로 JPA 설정을 하면서 포스팅을 하기도 했었습니다.(http://devyongsik.tistory.com/640) 그리고 한참 잊고 지내다가 이번에 CMD를 하면서 제가 다시 한번 프로젝트 셋팅을 할 기회가 생겼는데프로젝트 리딩하시는 빌리님과 협의하여 Spring-data-jpa로 한번 다시 해보기로 하였습니다. 많은 부분을 현기형님께서 만드셨던 build.gradle을 참조하여 작업을 하였고..실제 프.. 더보기
How Lombok works http://stackoverflow.com/questions/6107197/how-lombok-works 더보기
[Java] 테스트케이스 가독성 높이기 마찬가지로 "테스트 주도 개발로 배우는 객체 지향 설계와 실천"의 4부에 나오는 예제입니다.전체적인 책의 내용은 Swing 소스라서 눈에 잘 안들어와서 읽기가 힘들었는데.. 4부는 일반적인 상황에 대한 이야기라서 잘 읽히네요..;; 편식도 아니고..편독을... 아무튼.. 테스트 케이스 가독성 높이기에 대한 예제 코드 2개입니다. 1. 첫번째 코드는 테스트 케이스의 메서드명을 테스트 대상 객체의 메서드명을 그대로 쓰거나, 의미없는 메서드명을 사용하지 말고, 기능을 설명하는 형태로 메서드명을 작성하라는 것입니다. TO-BE 코드를 보시면 메서드명이 상당히 길게 작성이 되어있는데요, 이 책에서는 어차피 이 메서드를 누군가 직접 쳐서 사용할 일이 없으므로 아무리 길어도 상관없다라고 하고 있네요. 그리고 채수원님.. 더보기
[Java] TestCase 작성시 테스트 데이터 생성에 관한 Tip 먼저 "테스트 주도 개발로 배우는 객체 지향 설계와 실천" 책의 22장에 나오는 예제 코드임을 밝힙니다. 책을 읽던 중 평소에 테스트케이스를 작성하면서 가장 귀찮았고 보기 안 좋았던 부분에 대한 해결방법이 나와서gist에 정리 후 블로그를 이용하여 포스트해봅니다. 1. Sample1.java테스트를 위한 객체가 필요한데 이 객체를 생성하기위해 위와 같이 다수의 객체 혹은 String등을 입력해줘야 할때 사용 할 수 있는 방법입니다. Builder 클래스를 작성하는 것.. 2. Sample2.java비슷한 객체를 다수 생성해야 할때가 있습니다. 특정 필드의 값만 다른... 그럴때 사용하는 방법입니다. 3. Sample3.java2의 예를 사용해서 테스트 데이터를 생성하다보면, 비슷한 이름의 필드에 대해서 .. 더보기
signed jar를 같이 group으로 묶어 jar 파일 생성시.. http://stackoverflow.com/questions/999489/invalid-signature-file-when-attempting-to-run-a-jar 더보기