Java & Kotlin23 Java SE 코드 성능 비교 Java SE 성능 비교 Spring환경에서 개발을 하고 있지만, Java 공부를 안할수는 없다. 여러 선택의 순간에 어떤 코드가 더 좋은지 안좋은지는 개인의 취향 혹은 팀의 코딩 컨벤션이 가장 중요하겠지만, 그럼에도 불구하고 동일한 조건이라면 더 좋은 코드는 분명히 존재한다고 생각한다. 그래서 큰 이슈는 아니지만 성능상 더 좋은 코드가 어떤 것인지 직접 테스트해보고 기록하기로 하였다. (뭐든 기본이 중요하다!!!) 아래 테스트들은 모두 성능만 고려하였다. 사내 규약 혹은 사수의 조언이 있다면 그걸 우선시 하는게 맞다. 그런게 없다면 아래 기준에 따라 코드 선택을 하는것도 나쁘지 않을것 같다. 모든 테스트는 Java 8을 기준으로 진행하였다. 사내 신규 프로젝트가 전부 8로 진행되기도 하였고, 조금 있으.. 2016. 11. 3. Map으로 Iterator (반복문) 를 진행할 경우 주의 사항 FindBugs를 사용하기 시작했다.포프님의 유닛테스트 vs 정적테스트 라는 주제의 영상을 보면서 으잉? 정적분석기가 그렇게 좋은거였어? 라는 생각에 부랴부랴 오늘부터 시작하게 되었다.FindBugs에 대해선 다음에 한번 정리를 해보겠다. 어찌됐든 오늘 진행한 상황은 아래와 같다. 배포 예정 중인 프로젝트에 대해 FindBugs를 돌려보았다. 아래와 같은 경고가 등장하였는데 어떤 문제인지 한번 생각해보자. (문제가 있던 코드) 코드 자체는 크게 어려운게 없다.Map으로 들어온 인자값을 keySet()으로 set으로 변환후 for를 돌며 key값으로 Map의 value를 template() 에 넘겨주는 일이다. FindBugs에서는 아래와 같은 경고가 나왔다.(findbugs에서 경고) 경고 메세지를 보면.. 2016. 9. 26. [Joda-time] 월, 일, 요일, 오전/오후 표현하기 Java는 1.7까지 Date가 구리기로 소문났다. (참고)1.8부터는 많이 개선되었지만.... 회사에서 개발을 하다보면 1.8에서 개발할수있는 경우가 별로없다.대부분 1.6 ~ 1.7 일경우가 많은데 (리팩토링은 먹는건가요? ㅠㅠ)그렇다보니 1.8의 개선된 Date나 람다, 스트림은 회사에선 꿈도 못꾸고 최대한 그에 준하는 서드파티 라이브러리들을 사용하면서 만족해야한다. 이번에 소개할 내용은 Java의 구리고도 구린 Date를 해결하기 위해 나온 Joda Time이다.Joda Time의 상세한 설명은 위 네이버 블로그를 통해 보면 될것 같고, 여기선 생각보다 많이 쓰이는 특정일자의 월,일,요일,오전/오후를 Joda time으로 출력하는 코드를 작성하겠다.(작성하고보니 짧.......다 ㅠ) Joda t.. 2016. 7. 26. Generic 타입 추론시 주의할 점! (super type token 문제) 요즘 박재성(a.k.a자바지기)님의 강의를 들으며 부쩍 TDD를 사용하려고 노력중이다.그래서 회사일을 하면서도 최대한 테스트 코드를 적용중이다.진행 도중 기존 코드에서 인자값으로 받는 API 주소와 리턴타입만 다른 여러 메소드들이 있어 이를 리팩토링 하는 과정에서 테스트 코드를 작성하다가 이상함을 발견하였다. 의도한 바와 다르게 데이터 형변환이 되는 것이다. 회사 코드를 직접 올린순 없어서 대충 비슷하게 코드를 작성해 보았다. 블로그에는 사진으로 코드를 설명하겠다.(자세한 코드는 Github에 올려놓았다.) 아래와 같은 json 데이터가 있다고 가정하자. 위 데이터를 받아서 처리 하기 위해 2개의 POJO를 만들었다. 그리고 이를 시험할 테스트 코드는 아래와 같다. 보다시피 DataResponse이냐 D.. 2016. 7. 20. [Exception] java.lang.SecurityException: Invalid signature file digest for Manifest main attributes 아주 오래된? 3년전 프로젝트를 git에서 받아 실행하는데 콘솔에 아래와 같은 에러가 나왔다. java.lang.SecurityException: Invalid signature file digest for Manifest main attributes 일반적인 원인은 maven-shade-plugin 으로 over-jar를 생성하는 과정에서 .RSA, .SF, .DSA 이 3가지 확장자 파일들이 병합이 안되는데 있었다. 아마 메이븐 버전이 업데이트 되면서 관련 업데이트가 있었던 것 같다. (3년전에는 이 설정으로 개발, 배포 다 했었으니깐? ) 어찌됐든 해결책은 pom.xml 을 열어 maven-shade-plugin 에 아래와 같은 설정 코드를 추가하면 된다. *:* META-INF/*.SF META-.. 2016. 1. 8. 이전 1 2 3 4 다음