Java partitioningBy 예제 코드: 데이터 분할 작업을 간편하게 해보자
자바(Java) 프로그래밍에서 데이터를 효율적으로 분할하고 관리하는 것은 중요한 작업 중 하나입니다. 이를 위해 많은 방법이 있지만, 'partitioningBy' 메서드를 활용하는 방법은 데이터를 조건에 따라 분할하고 처리하는 데 매우 유용합니다.
Spring, JPA, Java로 서버를 만들며 마주친 문제와 해결 과정을 정리합니다.
Spring 핵심 개념부터 실무 설정까지.
연관관계 매핑, 영속성 컨텍스트, 성능 최적화.
언어 기능, 동시성, GC.
JUnit, AssertJ, 테스트 전략.
난이도 순으로 읽으면 흐름이 이어집니다.
자바(Java) 프로그래밍에서 데이터를 효율적으로 분할하고 관리하는 것은 중요한 작업 중 하나입니다. 이를 위해 많은 방법이 있지만, 'partitioningBy' 메서드를 활용하는 방법은 데이터를 조건에 따라 분할하고 처리하는 데 매우 유용합니다.
이 블로그에서는 Spring WebFlux의 테스트 방법에 대해 자세히 알아보겠습니다. Spring WebFlux는 Spring Framework 5에서 도입된 리액티브 프로그래밍 모델로서, 비동기적인 웹 애플리케이션을 개발할 수 있게 해줍니다.
이 블로그에서는 Spring 프레임워크와 MongoDB를 연동하는 방법에 대해 자세히 알아보겠습니다.
해시함수, 해시 충돌과 해시 충돌을 해결하는 방법인 open addresssing과 chaining에 대해서 알아보도록 하겠습니다.
SpringBoot, Mongodb, docker로 간단한 샘플 프로젝트를 만들어 보고, 주로 어디에 사용하는지에 대해서 알아보자.
Spring Boot 프로젝트내 서버 타임존 설정하는 방법
ApplicationRunner,CommandLineRunner를 애플리케이션 구동시 사용하는 방법에 대해서 알아보자
Java Stream의 groupingBy의 메서드를 살펴보고, 간단한 예제를 통해서 어떻게 사용하는지 살펴보자.
API관련 작업을 하다가, @RequestBody로 매핑된 객체의 필드값을 validaiton하기 위해서 @Valid 어노테이션(JSR-303) 을 적용했지만, 제대로 적용이 되지 않았다. 이에 대한 해결책을 알아보자.
스프링에서 자바 객체를 직렬화/역직렬화를 할때, 내부적으로 Jackson을 사용하는데, 자바8에 도입된 LocalDateTime 타입으로 직렬화, 역직렬화할때 이슈를 정리해보았다.
Java의 기본 정렬과 Stream의 Sort레 Comparator를 람다식을 넘겨서 간편하게 사용하는 방법을 알아본다.
SpringBoot프로젝트, Dockerfile을 만들어서 이미지를 생성하고 배포해보자!
Spring Batch 프로젝트의 구성요소와 간단한 샘플 프로젝트를 통해서 알아보자
AssertJ에서 자주 사용하는 기본 문법들에 대해서 알아보자.
Java의 파일 입출력 BuffedWriter, BufferedReader, Files 에 대해서 알아보자.
본 글은, 자바 ORM 표준 JPA 프로그래밍(김영한님) 책을 요약 정리한 포스팅입니다.
본 글은, 자바 ORM 표준 JPA 프로그래밍(김영한님) 책을 요약 정리한 포스팅입니다.
자주 사용하는 Junit5 사용 예제
본 글은, 자바 ORM 표준 JPA 프로그래밍(김영한님) 책을 요약 정리한 포스팅입니다.
본 글은, 자바 ORM 표준 JPA 프로그래밍(김영한님) 책을 요약 정리한 포스팅입니다.
본 글은, 자바 ORM 표준 JPA 프로그래밍(김영한님) 책을 요약 정리한 포스팅입니다.
본 글은, 자바 ORM 표준 JPA 프로그래밍(김영한님) 책을 요약 정리한 포스팅입니다.
AssertJ의 필드값을 재귀적으로 비교해서 테스트 하는 방법에 대해서 알아보자
테스트 위생이란? 테스트 대상 코드 베이스뿐 아니라 <u 테스트 코드도 깔끔하게 유지하며</u 유지보수 하고 개선해야 함을 의미한다. 테스트를 만들려면 먼저 이름을 정해야한다.
이번시간에는 오픈소스 메세지 브로커인 RabbitMQ를 로컬에 설치하고, Spring Boot 프로젝트를 이용해서 간단하게 메세지를 전송하고, Listening 하는 샘플 프로젝트를 만들어보도록 하겠습니다.
spring cloud config 의 간단한 예제를 살펴보자.
JPA에서 양방향 연관관계를 매핑할때, 객체관점에서 편의 메서드 를 작성하는 방법에 대해서 알아보자. 이번에는 양방향 매핑을 할때, 객체 관점에서 어떻게 처리할지?를 고민해보자.
Java 에서 CompletableFuture가 어떻게 사용할 수 있고, 어떤식으로 발전해 왔는지 알아보자.
Junit5에 특징과 기본적인 사용법, 문법에 대해서 알아보자.
스프링 프로젝트에서 Sentry (에러 트래킹 서비스)를 연동하는 방법에 대해서 알아보자
Java의 날짜,시간관련된 역사를 알아보고, Java8버전에 추가된LocalDateTime, ZonedDateTime에 대해서 전방위적으로 살펴보자.
스프링에서 빈을 주입하는 3가지 방법에 대해서 알아보자
JPA에서 엔티티 설계시 주의사항들에 대한 요약본입니다.
Modern Java in action의 동작파라미터화 코드를 전달하는 방법에 대한 요약입니다.
Java의 Comparabl과 Compartor에 대해서 알아보고, Lambda식으로 어떻게 간편하게 구현할 수 있는지 살펴보자.
spring thymeleaf에서 기본적인 사용법, 문법에 대해서 알아보자.
Spring thymeleaf에서 Collection을 렌더링하는 방법에 대해서 알아보자
SpringBoot, JPA, H2를 이용한 간단한 RestAPI를 만들어보자.
이전 시간에 Garbage Collection #1부 JVM HotSpot에 대해서 알아보았습니다. 오늘은 Garbage Collection이 heap 영역에서 어떻게 이루어 지는 지 알아 보도록 하겠습니다.
Spring MultiPartFile 인터페이스를 이용한 파일 업로드 하는 방법을 알아보자.
스프링 컨트롤러에서 받는 객체에대한 validation 하는 방법에 대해서 알아보자
jackson에서 null값인 필드를 보여주지 않도록 지역적, 전역적으로 설정하는 방법에 대해서 알아보자
Java에서 Reflection 사용하는 방법과 간단한 DI framework 만들기
자바(Java)의 역순 정렬을 다양한 예제를 통해 살펴보겠습니다. 각 예제를 통해 역순 정렬의 활용 방법을 자세히 알아보고 실제 코드로 확인해보세요. 1. 숫자 배열 역순 정렬 2. 문자열 리스트 역순 정렬 3. 사용자 정의 객체 역순 정렬 4.
HandlerMethodArgumentResolver 인터페이스는 컨트롤러에서 파라미터 바인딩 해주는 역할을 합니다.
오늘은 Jackson 어노테이션에 대해서 알아보도록 하겠습니다. 다음과 같이 스프링 부트를 사용하면 spring boot starter web 의존성에 jackson databind 라이브러리가 추가 되어 있다.
DispatcherSevlet의 기본전략과 여러가지 유형에 대해서 알아보자. DispatcherServlet 의 초기화 전략은 다음과 같다. 초기화 구조는 거의다 비슷하기 때문에 여기에서는 initViewResolvers(context) 를 살펴보자.
Spring MVC 에 대해서 알아보자 MVC는 Model, View, Controller로 구성되어 있다.
application.properties에 존재하는 값들을 클래스(@ConfigurationProperties를 이용해서)로 빼는 방법에 대해서 알아보자.
spring web모듈을 추가하고, Spring MVC에 대해서 알아보자.
스프링의 메세지 컨버터에 대해서 알아보자.
실제 프로젝트에서 dev, stage, production과 같은 개발하는 환경이 다르다. @Profile 어노테이션을 이용해서 다른 profile을 설정하는 방법에 대해서 알아보자.
JPA 연관관계 매핑중, 실무에서 가장 많이 쓰이는 1:N (일대다) 매핑에 대해서 알아보자. 일대다 매핑을 하기 위해서 하나의 팀에 여러명의 멤버가 속해있는, 1:N 관계를 생각해보자.
Spring Data JPA의 Audit 기능에 대해서 알아보자.
멤버(Member)와 사물함(Locker) 1:1 매핑 상황을 살펴보고, cascade 옵션이 어떤 상황에서 쓰이는지 알아보자. Member Locker 단방향 1:1 매핑에 대해서 살펴보자.
기존의 JpaRepository를 상속받아서 기본적인 CRUD 기능을 사용할 수 있지만, 내가 1)커스텀하게 만들어서 사용하고 싶은 경우와 이미 JpaReposptry에서 제공하는 메서드를 새롭게 2)오버라이딩해서 사용할 수 있는 경우에 대해서 알아보
도메인 클래스 컨버터에 대해서 알아보자. 도메인 클래스 컨버터는 Spring Data Jpa를 사용하게 되면 Common 프로젝트에 있는 클래스 인데, 간단하게, id 엔티티 타입으로 변환 해주거나, 엔티티 id 로 변환해 주는 컨버터를 제공해준다.
SpringBoot와 JPA, H2를 이용한 간단한 API를 만들어보고, Junit 테스트 검증하는 것을 알아본다.
JPA에서 null처리 하는 방법에 대해서 알아 보자. JPA에서 단일 엔티티를 조회할 때, Optional객체를 리턴 받도록 설정되어 있다.
JpaRepository의 구현체 SimpleJpaRepository에서 save()메서드가 내부적으로 어떻게 동작하는지 알아보자.
JPA를 사용해서 엔티티의 일부 데이터만 가져오는 Projection에 대해서 알아보자. 다음과 같은 Comment 엔티티가 존재한다. 필요한 일부 데이터만을 담은 CommentSummary 인터페이스를 만든다.
프록시의 기본과, JPA에서 fetch 전략이 어떤 것들이 있는 지 알아보자. PA에서 식별자로 엔티티 하나를 조회할 때 EntityManager.find() 를 사용한다. 이 메서드는 영속성 컨텍스트에 엔티티가 없으면 데이터 베이스를 조회한다.
JPA에서 쿼리 메서드를 정의하는 방법에 대해서 알아보자. CREATE 메서드 이름을 분석해서 만듬 USE DECLARED QUERY 미리 정의해둔 쿼리를 찾아서 사용 CREATE IF NOT FOUND 기본 전략 미리 정의해둔 쿼리 찾아서 없으면 메
JPA에서 QueryDsl를 사용하는 방법에 대해서 알아보자. QueryDSL은 쿼리 domain specific language로 도메인에 맞게 쿼리를 프로그링 할 수 있다는 것이다.
Spring Data Jpa에서 제공하는 JpaRepository 의 구현체인 SimpleJpaReposity 의 @Transactional 을 어떻게 사용하는지 살펴보고, 실제 우리 서비스에서 어떻게 적용하면 좋을지에 대해서 생각해보자.
@SpringBootApplication 어노테이션에 대해서 알아보자.
Bean(빈)이란 무엇인가, Bean의 라이프사이클, Bean을 등록하는 방법에 대해서 알아보자
빈 순환 참조가 왜 발생하는지, 해결 방식은 무엇인지에 대해서 알아보자
스프링 부트가 가지고 있는 3가지 특징에 대해서 알아보자
Spring Data Common 프로젝트가 무엇이고, 여러가지 다양한 구현체들에 대해서 알아보자
applicationContext가 등록되기 전에 발생한 이벤트를 Listen하는 리스너를 등록하려면 어떻게 해야할까? SampleListner를 만들고, ApplicationListenr 를 구현한다. Generic으로 발생할 이벤트를 명시해 준다.