본문 바로가기
728x90

Spring23

[Spring] Firebase 프로젝트 생성 이번에 토이 프로젝트를 진행하기로 했고 토이 프로젝트의 데이터베이스는 사용해보지 않았던 Google Firebase에 대해 관심이 생기게 됐고 Firebase를 사용해보자고 결정을 하게 되었다. Firebase는 클라이언트부터 서버까지 SDK을 제공해줘서 손쉽게 API를 사용할 수 있는 것이 장점이다. 이번 토이 프로젝트를 진행하면서 Firebase에 대해 기록장에 정리해 보려고 한다. Firebase 초기 생성에 대해서 시작해보겠다. 1. 프로젝트 생성 Firebase 가입 후 프로젝트 추가로 프로젝트 이름을 입력하면 간단하게 Firebase 프로젝트가 생성된다. 나는 테스트를 위해 "guard-test"라 만들었다. 2. SDK 연동 설정 프로젝트 개요의 설정 아이콘을 눌러 [프로젝트 설정] -> [.. 2022. 12. 1.
[Spring] Bulk Insert 성능 개선 이전에 Querydsl Bulk Update 성능 개선 글을 포스팅했고 이번에는 Bulk Insert에 대한 내용을 다루려고 한다. 아마 Querydsl의 블로그 마지막 편이 아닐까 싶다. 좋은 공부 거리가 있으면 다시 포스팅할 수도... JDBC에는 rewirteBatchedStatements라고 해서 Insert 합치기 옵션이 있다. 이 옵션이 활성화되어 있어도 JPA에서는 auto_increment 일 때 Insert 합차기 기능이 적용되지 않는다. JPA를 이용한 Bulk Insert와 JDBC를 이용한 Bulk Insert를 비교해보자. 1. JPA Bulk Insert public void jpaBulkInsert() { List bulk = Lists.newArrayList(); for(in.. 2022. 11. 27.
[Spring] Querydsl Bulk Update 성능 개선 일괄 업데이트 최적화에 대해 방식에 대해서 글을 정리해보고자 한다. JPA 사용하다 보면 더티 체킹(Dirty Checking)을 많이 사용하게 된다. 더티 체킹에 대해서 궁금하면 이 전 포스팅 글을 한번 읽어보는 것을 추천한다. 간단하게 설명하자면 조회된 엔티티의 변경 사항을 자동으로 데이터베이스에 반영해주는 기능이다. 1000건 ~ 10000 건등의 대량의 엔티티의 변경을 해야 한다면 해당 엔티티들을 조회해서 엔티티의 값을 변경하는 방식으로 개발이 될 것이다. 이러한 방식은 성능을 저하시키는 악영향을 끼치게 된다. 테스트 코드와 성능을 비교해보자. license 1000건의 엔티티를 조회해서 name을 업데이트하는 방식으로 테스트 진행해보자. 1. Dirty Checking 방식 @Transactio.. 2022. 11. 26.
[Spring] JPA 더티 체킹 (Dirty Checking) Querydsl 벌크 업데이트 대해서 글을 정리하려고 했는데 더티 체킹에 대한 내용이 있어서 먼저 더티 체킹에 대해 글을 써보려 한다. JPA 더티 체킹(Dirty Checking) Transaction안에서 Entity의 변경 상태를 확인하는 과정을 말한다. 즉, Entity의 상태 변경 검사를 뜻한다. Transaction은 두 가지 방식을 사용한다. 1. Class 또는 Method에 @Transactional Annotation을 사용하는 방식 @Transactional public void updateUser(Long id, String name) { Player player = playerRepository.findById(id); player.setName(name); } 2. EntityT.. 2022. 11. 25.
300x250