본문 바로가기

개발 언어13

[Java] String, JsonNode 상호 변환하기 [Java] String JsonNode 변환 하기 ObjectMapper 클래스의 readTree, readValue 메서드를 사용하여 String 을 JsonNode 혹은 클래스타입으로 변경 하고 JsonNode, 클래스를 String으로 변환하는 방법에 대해 설명해보겠습니다. 1. String => JsonNode 1.1 String => Json (readTree) ObjectMapper 클래스의 readTree 메서드는 문자열을 JsonNode 타입으로 반환합니다. @Test void jsonTest() { String jsonStr = "{\"name\":\"ksr930\",\"age\":29,\"address\":\"seoul\"}"; try { JsonNode jsonNode = new O.. 2022. 4. 26.
[Java] 스트림 컬렉션 차이점 filter sort map collect [Java8] 스트림 (Stream) 기존의 Java에서 컬렉션 데이터를 처리할때 특정 조건에 따라 필터링을 하려면 복잡한 과정을 거쳐야 했습니다. 반면에 SQL 문법의 경우 사용자가 원하는 조건의 데이터 목록을 검색할때 명시적이고 간단한 방법을 이용했는데 Java8 에서 새로 추가된 기능인 스트림은 Java의 컬렉션 데이터에 대해 SQL 질의문 처럼 데이터를 처리할수 있는 기능을 가지고 있습니다. 스트림(Stream)이란?? 기존 루프문 처리의 문제점 기존 Java에서 컬렉션 데이터를 처리할때는 for, foreach 루프문을 사용하면서 컬렉션 내의 요소들을 하나씩 다루었습니다. 간단한 처리나 컬렉션의 크기가 작으면 큰 문제가 아니지만 복잡한 처리가 필요하거나 컬렉션의 크기가 커지면 루프문의 사용은 성.. 2021. 12. 28.
[Java] 시간 측정하기 System currentTimeMillis [Java] 코드 실행시간 측정하기 개발을 하다보면 내가 작성한 코드의 효율성을 알아보기 위해 주로 시간을 측정합니다. 또한 어느 부분에서 딜레이가 걸리는지 확인하기 위해 사용할수도 있습니다. 디버깅 중단점을 걸어서 확인할수도 있지만 매번 중단점을 넘겨줘야 해서 코드로 시간을 측정 하는 방법이 편리합니다. Java 현재시간 측정 함수 Java 에서 기본적으로 제공하는 함수중 System.currentTimeMillis 함수를 이용하면 현재 시간을 밀리세컨드 단위로 출력할수 있습니다. [System.currentTimeMillis] System.java 클래스에 있는 함수 설명을 보면 1970년 1월1일 UTC 시간 기준으로 현재까지의 시간 차이를 밀리 세컨드 단위로 출력한 값입니다. Returns the.. 2021. 12. 24.
[Java] 람다표현식의 조합과 Comparator, Predicate, Function 디폴트 메서드(Default method) [Java8] 람다 표현식 조합, 디폴트 메서드 Java8 의 함수형 인터페이스들중 몇몇은 람다표현식을 조합한 유틸리티 메서드를 제공합니다. 람다 표현식의 조합이란 간단한 여러개의 람다 표현식을 조합하여 복잡한 람다표현식을 만드는 것입니다. 하지만 우리는 함수형 인터페이스는 단일 추상메서드(Single Abstract Method) 만을 가지는 인터페이스라고 배웠는데 별도의 유틸리티 메서드를 가진다고 하니 이해가 되지 않을수 있습니다. 여기서 말하는 유틸리티 메서드는 디폴트 메서드(Default Method) 입니다. 디폴트 메서드(Default Method) Java8 에서 새로 추가된 기능중 하나인 디폴트 메서드는 default 키워드를 이용하여 생성합니다. 클래스의 인스턴스로 접근할수 있으며 인터페.. 2021. 12. 16.
[Java] 메서드 참조(Method reference) - 정적 메서드, 생성자 참조와 람다표현식 활용 [Java8] 메서드 참조(Method reference) 메서드 참조란 람다 표현식(Lambda expression) 의 축약형으로 볼수 있습니다. 이전 포스팅에서 작성했던 사과 필터링 예제코드에서 사과를 무게별로 정렬할때 사용했던 compareTo 메서드를 예시로 들어보겠습니다. [람다 표현식] inventory.sort((Apple a1, Apple a2) -> a1.getWeight().compareTo(a2.getWeight())); [메서드 참조] Comparator 클래스의 comparing 메서드를 사용한 방법입니다. inventory.sort(Comparator.comparing((Apple::getWeight))); 메서드 참조를 이용하는 이유 람다 표현식은 메서드를 사용하라고 가르키는.. 2021. 12. 15.