전체 글

나만의 기록... 까먹지말자...
· Front
⚡ 개요 2023년도 끝나가는데 새로운 언어에 대해서 공부를 하고 도전해보려고 한다. 많은 언어들이 있지만 파이썬을 선택한 이유는 많은 정보를 찾아봤을때 웹을 가장 빨리 만들고 쉽게 만들 수 있다고 소개를 하고 있다. 회사에서 개발을 하다보면 중간에 계속해서 기획이 변경되는 과정들이 존재한다. 이 과정에서 내가 사용하고 있는 자바로 프로토 타입을 만든다고 했을 때, 기존 소스를 카피해서 만들어야 하고 지금의 경우는 프로젝트가 커짐에 따라서 이 또한 쉽지도 않다. 이런 저런 이유가 존재하지만 결국은 쉽게 만들 수 있고, 많은 개발자들이 사용하고 있는 파이썬을 서브 언어로써 사용해 볼 수 있도록 공부를 해보려고 한다. 물론 자바로 개발을 하고 있기 때문에 코틀린의 경우는 짬짬이 공부를 하고 있다. :) 예전..
· Spring
⚡ 개요 save()와 saveAndFlush()의 차이점에 대해서 정리하기 전에 결론부터 얘기하면 두 개의 함수 모두 메서드가 끝나는 시점에 DB에 데이터가 저장이 된다. @Transactional 어노테이션에 따라서 동작하는 방식의 차이는 있을 수 있지만 결론은 동일하다. 아래의 사용 방법에 대해서 보기 전에 JPA 영속성에 대해서 잘 모른다면 한번 찾아보고 내용을 본다면 좀 더 도움이 된다. 추가적으로 JPA 영속화 과정에 대해서 정리를 하려고한다. ⚡ 사용 방법 📔 save() entity 데이터 한건을 저장하는 데 사용을 하는 함수이다. entity의 키의 존재 여부를 판단하고 신규 entity라고 판단을 하면 영속성 상태로 바꾸고 기존에 존재하는 entity이면 준영속 상태를 영속 상태로 바꿔..
· Spring
⚡ 개요 비지니스 로직을 작업하면서 일부 컬럼만 조회해서 사용하는 경우가 존재한다. 이때 나는 보통 queryFactory를 통해서 일부 컬럼에 대한 조회를 하는것이 익숙해서 이렇게 조회를 했다. 그러다가 문득 JPA 의 repository를 통해서 단일 컬럼 또는 일부 컬럼을 조회를 하는 것이 가능할 텐데 어떻게 하는지 궁금해졌다. queryFactory를 사용하든 repository를 사용하든 대용량 데이터를 조회하는 게 아닌 이상 속도적인 측면은 잠시 미뤄놓고 어떤 게 더 편하게 개발을 할 수 있는지가 궁금했고 방법을 찾아보게 되었다. :) ⚡ 일부 컬럼만 조회하는 방법 결론부터 이야기 하자면 일부분 컬럼만 가져오고 싶다면 Mapping Interface를 별도로 만들고 리턴을 받을 때 Entity..
· Spring
⚡ 개요 queryDsl을 사용하면서 데이터를 조회하거나, 조건을 추가할 때 case when 구문을 사용해야 하는 경우가 발생한다. 내부적으로는 이력을 조회하거나, 카운트를 조회 한다거나 조건을 추가하려고 stream의 중간 연산자를 쓰는 것보다 쿼리를 한 번에 날려서 조회하는 게 속도적으로 좀 더 좋다고 판단해서 사용하고 있다. 물론 일반적인 비지니스 로직에서 처리를 할 때는 최대한 사용하지 않는 게 좋다고 생각하기는 하지만 분명 어쩔 수 없는 경우도 있을 것이다. 좋지 않다고 해서 사용을 안 하는 것이 아니라 상황에 맞게 판단해서 사용하는 게 좋다고 생각을 한다. ⚡ case when 사용 방식 정리 일단 가장 기본적으로 queryDsl 에서 caseBuilder를 사용해서 case when 구문을..
보호되어 있는 글입니다.
· Spring
⚡ 개요 spring boot 2.x 버전에 대한 지원이 이번년도를 기점으로 종료가 된다. 이에 따라 새로 나온 3.x 버전으로 내부 프로젝트를 변경을 진행을 해야될거 같아서 라이브러리의 충돌을 방지하기 위해서 신규 프로젝트로 종속성 및 설정등을 진행하고 기존 프로젝트에 적용을 하려고 했으나 시작 부터 에러가 발생한다... ⚡ 이슈 및 설정 관련 내용 정리 spring boot 3.x 버전에 대해서 공식 페이지에 나와있는 설명 및 추가적으로 바뀐 부분에 대해서 확인을 했었지만... 까먹고 설정을 하다가 이슈를 확인 하고 수정을 했다. 검색을 해보니 해당 문제를 접하는 개발자 분들이 많은거 같아서 정리를 해보려고 한다. 📚 개발 스텍 Kotlin JAVA 17 Spring boot 3.1.4 Gradle ..
· Java
⚡ java 21 LTS 릴리즈 버전 java 21 릴리즈가 2023년 9월 19일 어제 날짜로 공개가 되었다. 😁 해당 버전이 나오기 전부터 java 21 버전은 java의 혁신이라고 많이 얘기를 했고, 많은 기대를 받고 있는 버전중에 하나이다. 추가된 주요 기능을 하나씩 파악을 하고 있으며 추가된 기능에 대해서 정리를 해보려고 한다. ⚡ 주요 기능 주요 기능에 대해서 자세하게 설명은 힘들거 같다(...) 주요 기능에 대해서 개인적으로 정리 하면서 읽어보고 있지만 중요한 내용이 너무 많이 있다. 추가적은 내용은 링크를 타고 들어가서 어떤 의도로 개발을 했으면 어떤 내용이 변경되 었는지 한번 더 확인 해보면 좋을거 같다. :) 👍 가상 스레드 ( JEP 444 ) 가상 스레드는 OS가 아닌 JDK에서 제..
· Java
⚡ 개요 Stream의 경우 자바8에서 추가된 이후 람다를 활용한 기술이다. 확실히 Stream을 사용해서 로직을 처리하다 보면 가독성도 올라가고 제공되는 함수가 다양하다 보니 계속해서 stream을 활용해서 처리하려고 하는 부분이 존재한다. Stream에서 froEach를 사용하면서 연산이 진행되는 동안에 로직에 대한 처리가 필요한 경우가 있다. 이때 과연 forEach를 사용하는것이 옮은 방향성인가에 대해서 한번 정리를 하려고 한다. ⚡ 내용 기본적으로 stream은 "데이터의 흐름" 이다. 그러다 보니 기존 for-loop와 다르게 강제로 종료를 시키는 방법이 존재하지 않는다. 결국 전체를 읽어서 처리하는 경우가 아닌 중간에 로직적으로 멈춰야 하는 경우가 생긴다면 비효율이 발생하게 된다. 실제 공식..
· 공유
⚡ 정규식 사이트 개발을 하면서 정규식을 사용할 일이 가끔 생기곤 한다. 다른 개발자들도 기본적인 패스워드, 이메일, 특정 문자열등 입력값을 체크하거나 할때 정규식을 많이 사용는걸로 알고 있다. 어떤 개발자분들은 자주 사용하는 정규식을 외워서 사용하시는 분들도 봤지만 나는 이분들과는 같은길은 걷지 못할거 같다..😤 개발을 진행 하면서 테스트를 통해서 값을 확인 하는 방법도 있지만 웹에서 정규식을 테스트 하고 쉽게 확인이 가능한 사이트가 있어서 공유를 하려고 한다. regexr 사이트는 정규 표현식 사이트로 가장 많이 사용하는걸로 알고 있고, 나도 정규식을 테스트 할때는 항상 해당 사이트를 이용 하곤 한다. 이번에도 정규식을 테스트 할때 해당 사이트를 이용하면서 공유를 해봐야겠다고 생각을 하고 글을 쓰게 ..
HaeTae
soTech