개념 스트림의 요소를 선택하거나 스킵하는 다양한 방법에 대해 살펴보자. Predicate를 이용하는 방법, 스트림의 처음 몇 개의 요소를 무시하는 방법, 특정 크기로 스트림을 줄이는 방법 등 다양한 방법을 이용해 효율적으로 이런 작업을 수행할 수 있다. 이러한 작업을 슬라이싱이라고 한다. takeWhile 메서드 Java 9에 추가된 메서드 Predicate를 파라미터로 받아서 해당 Predicate가 false를 반환할 때까지의 요소를 취하는 메서드다. 얼핏보면 filter 메서드와 유사해보이지만, filter 메서드가 전체 스트림에 대한 Predicate를 판단하는 반면 takeWhile은 Predicate가 false를 반환하는 순간 나머지 요소를 전부 버린다. 아주 많은 요소를 가진 스트림에서는 ..
처음으로 써보는 회고! 사실 예전부터 개발자 커뮤니티에 다른 사람들의 회고가 올라올 때마다 나도 나중에 써봐야지 하고는 쓰지 않았던 회고를 2020년을 시작으로 해보려 한다. 글 쓰는 시점은 2021년이지만 여기서 말하는 '올해'는 2020년을 의미한다. # 코로나 2020년의 가장 핵심 키워드는 역시 '코로나' 바이러스가 아닐까 싶다. 2019년에 중국의 우한 지역을 시작으로 전세계로 퍼지고 2020년 2월부터 국내에서는 본격적으로 퍼진 바이러스로 그간 겪었던 바이러스들처럼 몇 달 정도면 해결되겠구나 라고 생각했다가 아직까지도 그리고 앞으로도 언제 끝날지 알 수 없는 바이러스다. 사실 앞서 퍼졌던 사스나 메르스같은 강력한 바이러스도 코로나만큼 체감되지는 않았던 것 같다. 이제는 국민 모두가 마스크를 쓰..
개념 스트림은 고유 요소로 이루어진 스트림을 반환하는 중간 연산인 distinct 메서드를 지원한다. 고유 여부는 객체의 equals와 hashCode 메서드를 통해 판단한다. 예제 아래 예제에서 사용되는 내용들은 다양한 상황을 연출하기 위해서 임의로 만들어진 내용이므로 특정 속성에 대해서 왜 저 타입이 사용되었는지 의문을 가지지 말자! 예제 코드에서 사용되고 있는 스펙 Java 15 preview (record라는 새로운 클래스 개념을 사용하기 위해서 해당 프리뷰 버전을 사용. 하위 버전의 경우는 일반 클래스를 생성한 후 getter를 만들고 사용하면 됨) - 참고 JUnit 5 Gradle 6.7 소스 코드 기본 데이터 생성 public record Song(int no, String title, S..
개념 Predicate를 파라미터로 받아서 Predicate가 true인 모든 요소를 포함하는 스트림을 반환하는 메서드 예제 아래 예제에서 사용되는 내용들은 다양한 상황을 연출하기 위해서 임의로 만들어진 내용이므로 특정 속성에 대해서 왜 저 타입이 사용되었는지 의문을 가지지 말자! 예제 코드에서 사용되고 있는 스펙 Java 15 preview (record라는 새로운 클래스 개념을 사용하기 위해서 해당 프리뷰 버전을 사용. 하위 버전의 경우는 일반 클래스를 생성한 후 getter를 만들고 사용하면 됨) - 참고 JUnit 5 Gradle 6.7 소스 코드 기본 데이터 생성 public record Person(int no, String name, int age, Nation nation, int gend..
테스트 스팩 Windows 10 Intellij IDEA Ultimate Java 15 Gradle 6.7 JUnit 5 상황 Java 15에서 Preview로 사용중인 record 라는 키워드를 사용해서 데이터 클래스를 만들고 이 클래스를 테스트하려고 한다. 설정 File -> Project Structure -> Project Settings -> Project -> Project language level을 사용하려는 Java의 Preview 버전으로 설정한다. 이렇게 해야 코드 상에서 Preview 버전의 문법을 사용할 수 있다. build.gradle 파일에 아래의 설정을 추가한다. compileJava { options.compilerArgs += ['--enable-preview'] } co..
사건의 발단 예전에 사용하던 MySQL의 데이터를 구해서 새로 작업할 DB에 이식했다. 그 중에 지역 정보를 담고 있던 area라는 테이블의 Entity를 만들다고 JPA의 find관련 메서드로 데이터를 가져오는 부분에서 문제가 발생했다. area의 스키마 다른 건 필요 없고 문제가 생긴 칼럼만 확인해 보자. Entity 작성 @Entity @Table(name = "area") public class AreaEntity { ... @Enumerated(value = EnumType.String) @Column(name = "kind") private Kind kind; public enum Kind { TOURISM, LEISURE, CULTURE; } } 기존에 늘 작성하던대로 다음과 같은 형태로 작..
개발하면서 일어났던 일이나 게시글 단위로 작성하기는 민망한 내용에 대해서 기록하기 위해 개발기를 써보려고 한다. [2020.08.15] - kokkok-web Github 리퍼지터리 생성 (initial commit) - node-sass 의존 추가 (scss 사용 목적) [2020.08.16] - 메인 화면에 UI 작업 (이미지 메뉴, 지역 목록, 축제 배너 등) [2020.08.18] - jest에서 flat() 함수 등 es6 문법을 인식하지 못하는 문제 해결 (core-js를 import) - 메인 화면에 UI 작업 (BEST 명소 추가) - kokkok-api Github 리퍼지터리 생성 - kokkok-api에서 area 테이블의 kind 칼럼의 enum이 DB에는 소문자고 Entity에는 대..
기존 기술 스택 형태 : 웹 앱 스택 : HTML, CSS, Javascript(
Java의 모든 레퍼런스 타입은 null을 가질 수 있다. 그렇기 때문에 null인 객체를 참조하면 NullPointerException이 발생한다. 지금부터 Java 14에 추가된 유용한 NullPointerException에 대해 살펴보자. 기존 NullPointerException public class NullPointerExceptionsExample { public static void main(String[] args) { Song song = new Song(); song.genre = new Genre(); System.out.println(song.genre.name.toUpperCase()); } static class Song { Genre genre; } static class G..
- Total
- Today
- Yesterday
- 목표
- 익명 클래스
- 스트림
- modern java
- 개발자
- IntelliJ
- flatMapToDouble
- lambda
- 회고
- java
- import문
- 다짐
- 변경사항
- #예제 #example #가계부 #Account Book
- #배열 #array #map 함수
- java14
- 계획
- Stream API
- 토이 프로젝트
- Java8
- 람다
- mapToObj
- jdk14
- 중간 연산
- flaMap
- 자바
- flatMapToLong
- #React #ReactJS #리액트
- 충북 콕! 콕!
- flatMapToInt
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |