2018/05

· Java
ScheduledExecutorService는 concurrent 패키지에 포함되어 있으며, '일정 시간 후' 또는 '주기적'으로 command(작업)를 실행시켜 줄 수 있는 녀석이다. 스프링을 사용했다면 간편하게 @Scheduled를 사용했겠지만, 쌩 자바를 쓸 일이 있어서 ScheduledExecutorService를 사용해봤다. 코드 자체가 직관적이기 때문에 거두절미하고 코드를 보자. import java.time.Duration; import java.time.ZoneId; import java.time.ZonedDateTime; import java.util.concurrent.Executors; import java.util.concurrent.ScheduledExecutorService; i..
· Java
Json 형식으로 데이터를 주고받을 때 Jackson의 ObjectMapper를 자주 이용한다. 그런데 기본값으로 Serialize 하게 되면 null, "" 같은 (상황에 따라) 필요 없는 값 또한 모두 변환시켜준다. 이를 아래의 메소드를 통하여 Serialize할 때 원하는 값만을 포함시킬 수 있다. objectMapper.setSerializationInclusion(); 아래 주석처럼 어노테이션으로도 이용할 수 있다. 객체마다 Include 방식이 다르면 어노테이션을 활용하자. 그럼, 다양한 데이터를 가진 객체로 테스트를 해보자. jackson-databind 2.9.5를 기준으로 테스트가 진행되었다. @Getter //@JsonInclude(JsonInclude.Include.ALWAYS) pu..
· Java
개발동기비 오는 날만 알림을 받고 싶다. 세상에 좋은 날씨 애플리케이션은 많다. 그러나 매일 날씨 애플리케이션을 확인하는 것은 번거롭고, 내가 딱 필요한 정보만을 제공해주는 서비스도 (아마) 없다. 그래서 날 위한 서비스를 내가 만들기로 했다. 왜? 난 개발자니깐 작년에 개발실력을 향상하기 위해 온갖 서적과 영상 등을 봤다. 점차 이러한 학습량은 많아졌고, 아는 듯한 느낌은 많이 들었다. 그러나 막상 해보니 겉만 조금 알고 있었고 한계에 직면했다. 다르게 표현하자면 실질적으로 해보지 않고 한 행위들은 마치 연애를 책으로 배운듯한 느낌이 들었다. 그래서 올해부터는 실질적인 코딩에 좀 더 집중하기로 했다. 신경쓴 것OOPClean Code Test Code스케치 간단하다.스케줄러를 통해서 7시가 되면날씨 A..
· Java
우리는 평소에 개발을 하면서 자바의 List를 많이 쓴다. 이번 글에서는 List를 상황에 맞게, 좀 더 우아하게 사용하는 방법을 알아보도록 하겠다. 1. 기본적인 List 생성 List list = new ArrayList(); list.add("민수"); list.add("미선"); list.add("석훈"); ArrayList는 최초에 생성자를 통해 객체를 만들 때 스태틱에 있는 빈 Array를 할당하는 작업만 한다. private static final Object[] DEFAULTCAPACITY_EMPTY_ELEMENTDATA = {}; public ArrayList() { this.elementData = DEFAULTCAPACITY_EMPTY_ELEMENTDATA; } 이후 add() 메소드..
AlwaysPr
'2018/05 글 목록