Querydsl 일반적인 사용 정리
Spring boot 2022. 7. 4. 15:56

Querydsl로 프로젝트를 하면서 많은 쿼리문을 작성하는데 필요 시 계속 구글링하면서 하기도 귀잖고 해서 일반적인 사용 방법에 대해 정리하려고 한다. ◆기본적인 사용 //객체 조회 val foos = query.selectFrom(foo).fetch() //count 조회 val count = query.selectFrom(foo).fetchCount() //join val foos = query.selectFrom(foo) .leftJoin(food).on(foo.id.eq(food.foo.id) .fetch() //ordering val foos = query.selectFrom(foo) .orderBy(foo.name.asc(), foo.age.desc()).fetch() //update quer..

[kotlin] Serialization을 이용하여 JSON를 다루어 보자
Kotlin 2022. 1. 20. 22:03

Kolin에서 Json를 보통 Gson 라이브러리를 사용하여 다룬다. Gson를 사용해도 원만한 처리는 가능하다. Serialization은 Gson에서 지원이 미흡한 NEP문제에 대해 강력하게 제한함으로써 kotlin의 가치관를 그대로 반영한 라이브러리이다. 이글은 kotlin의 serialization에 대하여 설정부터 간단한 사용법을 정리할 예정이다. ◆ Maven 설정 1.6.10 1.3.2 버전 정보를 속성에 명시한다. org.jetbrains.kotlin kotlin-maven-plugin ${kotlin.version} compile compile compile kotlinx-serialization org.jetbrains.kotlin kotlin-maven-serialization ${k..

[Kotlin] foreach 와 map 알고 쓰자
Kotlin 2022. 1. 12. 22:48

Kotlin으로 구현하다보면 foreach와 map은 실제로 같은 기능을 하는 것 같지만 깊게 이해하고 사용하면 상황에 따라 유용하여 사용할 수 있다. 이글에서는 두 문법에 관하여 정리해 보려고 한다. ◆foreach 이 문법은 단순히 모든 Collection 원소에 대하여 한번 순회하면서 처리하는 문법이다. 중간에 중단도 가능하고 결과 값을 만들어 내기도 하고 아닐 수도 있다. 즉 모든 처리가 가능 하다. val list = listOf( Data("John", "Ali"), Data("Naidu", "Tan"), Data("Evgenii", "Dmitry")) list.foreach{ if(it.firstName=="Naidu"){ println("This is Naidu") break } } ◆ma..

[Spring] Cache
Spring boot 2022. 1. 3. 23:39

Spring framework에서는 기본적으로 Hash map 기반의 cache 기능을 지원한다. 이번 글에서는 Spring의 cache기능에 대하여 전반적으로 알아보고 간단하게 사용해 보려고 한다. JAVA에서의 Cache JAVA에서는 CachingProvider, CachManager, Cashe, Entry, Expity등 5개의 Interface을 제공한다. CachingProvider: CacheManager를 정의 및 구성, 관리를 해주는 interface 정의 CacheManager: 하나의 Cache에 대한 관리 interface 정의 , 하나의 CacheManager는 하나의 CachingProvider만 소유할 수 있다. Cache: Key-value Mapping 관계를 가진 자료구..

[Spring] Transaction 정리
Spring boot 2021. 11. 24. 20:36

Transaction은 DB와 연관된 개발을 함에 있어서 중요한 개념으로 자리 잡았다. 트래픽이 많은 요즘 제품 개발에 있어 더 중요해 진것 같다. Python에서는 라이브러리설정에서 몇가지 설정만 하면 transaction을 구현 가능 헸다. 이 글은 spring에서 transaction을 구현하는 방법을 알아보기 전에 JDBC을 이용하여 transaction을 어떻게 구성할 수 있을지에 대해 알아보고 Spring에서의 사용법에 대하여 간단히 알아볼 예정이다. JDBC를 이용한 Transaction 아래 코드는 JDBC 연결을 하고 AutoCommit를 false로 설정 한 후 코드 실행 도중 Exception이 발생하면 rollback를 수행하는 코드 이다. (roolback은 JDBC에서 savep..

[kotlin] Collection & Sequence
Kotlin 2021. 11. 23. 09:44

kotlin standard libary에는 Container type으로 Collection과 Sequence(Sequence) 두가지 타입을 가지고 있다. Collection Collection은 대부분 언어에서 라이브러리로 제공된다. C++에는 STL이 있고 python은 자체적으로 제공한다. 제공하는 방식이 다를뿐 사용법에 있어서는 비슷하다고 할 수 있다. 그럼 kotlin에서 제공되는 collection 함수 set, list, map을 세개를 제공한다.공식 문서 참조 특징을 간단히 정리하면 read only와 mutable 두가지 종류로 나뉜다. val numbers = mutableListOf("one", "two", "three", "four") // read only val wordRep..

[kotlin] 자주 사용하는 문법 정리
Kotlin 2021. 11. 23. 09:43

String 원하는 형식으로 String을 formatting하는 방법(추후 추가 예정) String.format("%.4f",0.998999) String.format("%d",30) Substring을 추출하는 방법 //07:05:45PM time_str = (s.substring(0,2).toInt()+12).toString() + s.substring(2,8) //19:05:45 sort 배열을 정열함 val new = arr.sorted() // var 변수는 sort 를 지원 않함. new.sort() //ok Array 초기값이 0인 N 개 배열 생성 var arr = Array(N) { i->0 } //0은 초기값 for 범위 순환 for(i in 0..10){ //TODO } for (i..

[Spring] Logging 구성 및 구현
Spring boot 2021. 11. 22. 22:46

앞 글을 통하여 Logging의 중요성과 어떤 Content들을 정리해야 하는지에 대하여 알아 보았다. 앞글의 내용을 바탕으로 Spring Application에 있어서 중요한 것들을 정리해 보았다. 사용자 인증인가 정보(로그인 및 resource에 대한 접근 정보도 포함) Exception 정보, 어떤 상황에 어떤 Exception이 발생하였는지를 추후 분석할 수 있을 정도면 충분할 것 같다. Transation에 관련된 log, 데이터와 관계되는 부분이니 데이터 베이스 장애처리하는데 도움을 줄 수 있다 이외에도 중요한 비즈니스 로직이나, 장애 발생 상황 등을 빠르게 판단할 수 있는 것들을 남겨야 한다. 위의것들을 잘 분류하여 주기적으로 삭제가능 혹은 영구 보존 등으로 등급을 나누어 관리 할 수 있다...