Java/Basic
-
Logback 시간과 system 시간이 다를때...Java/Basic 2019. 6. 25. 15:13
당황 스럽다. os 시간을 확인했을땐 kst 기준으로 잘 나오지만 java 기반의 서비스를 돌리면 약 3시간의 시간 차이가 났다 . 그래서 3가지 방식으로 java에서 시간정보를 가져와 보았다. /** * 현재 시간 가져오기 * @return */ public String getNow(String format){ LocalDateTime curDate = LocalDateTime.now(); DateTimeFormatter df = DateTimeFormatter.ofPattern(format); return curDate.format(df).toString(); } /** * 현재 시간 가져오기 * @return */ public String getSystemNow(String format){ long..
-
JVM( GC) 이해하기Java/Basic 2019. 4. 26. 17:00
GC 자바에서 가비지 콜렉터는 가장 중요한 기능중 하나다 자바 GC 만큼 역사와전통(?) 을 자랑하는 것도 없을거 같다. 기본적으로 C 언어계열들과 차이를 들때(예전... 2000년대 초반.. ) 메모리를 C 계열은 직접 프로그래머가 해줘야 하지만 자바는 JVM 이 알아서 해준다 였다. GC가 그 메모리를 알아서 관리 해주는 녀석이다. GC 란? 자바는 앞서 말했듯이 GC 라는 알고리즘을 통하여 자동 관리 하기 때문에 개발자 메모리를 처리하기 위한 로직이 없고 만들어서도 안된다. 가비지 컬렉터는 자바에서 버리는 객체들을 관리 한다. 하나의 객체를 생성할경우 그에 맞게 메모리가 할당되어 메모리를 점유하게 되고 필요하지 않는경우 메모리를 해제 해야만 메모리누수가 없게 된다. 그렇기 때문에 가비지 컬렉터는 객..
-
BigDecimal (feat. 소수점 계산)Java/Basic 2019. 3. 26. 11:45
자바에서 float,double 로 계산을 해본사람들이 있다면 종종 경험하는 것들이 있다. 두가지 타입이 가진 정밀도 문제로 인하여 내가 원하는 값이 아니라 근사치가 나오는경우를 볼수 있다. 소수점 두자리 끼리 더했는데 갑자기 0.4699999999999 이런식으로 뒤에 99999 가 붙는 경우가 생긴다. 소수점 정밀도에 한계가 있어서 값이 유실 되는경우 발생한다. 보통 integer 형태를 많이 사용하기 때문에 잘 느끼지 못하지만 소수점을 복잡하게 계산하다보면 값은 점점 산으로 간다. 그래서 자바에서 제공하는 변수타입(?) 중 정밀하게 표현할수 있는 유일한 방법인 BigDecimal 을 사용해야 한다. BigDecimal 의 단점은 딱 두가지다 . 느리다 , 사용법이 기본 변수타입보단 좀 불편하다. 일..
-
[java] Http get,post 통신Java/Basic 2019. 1. 28. 18:28
너무 만들기 쉽기에 맨날 안만들어놔서 허구언날 프로젝트할때마다 만드던게 get/post 통신 같다. 하지만 만들때 마다 생각이 든것이 Apache 에서 제공하는 라이브러리를 쓰는게 아니라 순수 jdk 에서 지원되느걸 쓸수 없을까였다. java 라면 왠지 있을거 같은데 하고 찾아보니... httpclient 라는 익숙한녀석이 있었다. 순간 Apache 꺼 아닌가.. 라는 생각을 했는데 ... 충격적인건 jdk 1.1 부터 이기능이 제공 됬다고 한다. 무진장 오래됬다..... jdk 1.8 이 나오면서 HttpClient 가 비동기 통신을 지원하게 되었고 굉장히 매력적인 녀식이 된거 같다. ( 음... Netty 같은걸로 비동기통신을 구현하는게 나을 거 같기도하다. ) 기본적으로 동기화/비동기화가 사용 가능..
-
[java]날짜 더하기, 빼기 , 구하기Java/Basic 2019. 1. 28. 17:03
2012년 개발을 시작하고 맨날 동일하게 사용하는것들이 있다 ! 날짜 더하고 빼고 계산하고 ... Date... calendar... java에서 제공하는 극악무도함(?) 에 치를 떨며 유틸화 시켜서 사용했던거 같다.. java 1.6 버전 에서 말이다 ... 2019년 문득 내가 몇년동안 사용하고있는 이런 모듈들이 지금 제대로 되있는건가 ? 내가 생각하는것보다 더 좋은 방법들이 있지 않을까 ? 라는 생각과 함께 ... 찬찬히 보다보니 java 1.8 에서 ZoneDateTime, LocalDateTime 등... Joda-time 과 비슷한... 녀석이 생긴걸 확인했다... 와... 지금 java 11 이 나온마당에 난 그동안 고전 유물을 사용중이였던것...!! 변화가 시른 꼰대가 되긴 싫다 ! Zon..