⚡ 캐싱 초기화내가 캐싱을 초기화 하는 이유는 기존에 작업 했던 쿼리와 캐싱된 쿼리의 실행 계획이 계속 똑같아서 캐싱을 초기화 하게 되었다.캐싱 초기화에 대한 자세한 내용은 생략한다. (다른 블로그들이 너무 잘설명 해놔서 링크 가지고 있고 까먹으면 본다.) 📒 사용중인 캐시 추출SELECT * FROM SYS.SYSCACHEOBJECTS WHERE [SQL] LIKE '%테이블이름%' SELECT plan_handle, st.text FROM sys.dm_exec_cached_plans CROSS APPLY sys.dm_exec_sql_text(plan_handle) AS st WHERE text LIKE N'%테이블이름%'; 📒 원하는 캐시 삭제 (위의 내용을 참조 한다)DBCC FREEPROCC..
분류 전체보기
⚡ 내용 정리아래의 경고가 발생하는 원인은 leakDetectionThreshold 옵션으로 인해서 아래의 메모리 이슈가 발생하는것으로 파악 되며 옵션을 끄면 나오지 않는다. default 시간이 2s 인데 2s 가 넘어가게 되면 로그가 찍히게 되며, application.yml 설정상으로 시간을 늘릴수도 있다.WARN (2023-12-29 17:26:17,223) : com.zaxxer.hikari.pool.ProxyLeakTask - Connection leak detection triggered for ConnectionID:10853 ClientConnectionId: 5cc00177-8fe4-4504-8b9e-4fbb024ef851 on thread http-nio-8080-exec-58, ..
⚡ 진행 상황 개인 및 회사 일정이 많아서 개인적으로 블로그 및 파이썬에 대한 개발을 많이 진행하지는 못했다. :( 주말에라도 틈틈히 공부 하려고 했으나 따로 진행 하고 있는 프로젝트 및 추가 일정들로 인해서 놔버렸었다. 일단 그래도 진행 상황에 대해서 늦었지만 어느정도 정리를 하고 넘어 가려고 한다. 회사에서 개발을 진행 하면서 틈틈히 공통 함수 및 자주 사용하는 함수들에 대해서는 파이썬으로 만들면서 어느정도 기본적인 능력치를 차곡차곡 쌓아가고 있다. 파이썬하면 가장 많이 사용하고 있는 웹 프레임워크 Django(장고) 를 통해서 페이지 하나뿐인 게시판을 만들었다. 일단 어떤 느낌으로 동작하는지에 대해서는 개발을 하면서 동작 방식에 대해서 찾아보고 공부를 진행 하고 있다. 아직은 이해하지 못한 부분이 ..

⚡ 개요 2023년도 끝나가는데 새로운 언어에 대해서 공부를 하고 도전해보려고 한다. 많은 언어들이 있지만 파이썬을 선택한 이유는 많은 정보를 찾아봤을때 웹을 가장 빨리 만들고 쉽게 만들 수 있다고 소개를 하고 있다. 회사에서 개발을 하다보면 중간에 계속해서 기획이 변경되는 과정들이 존재한다. 이 과정에서 내가 사용하고 있는 자바로 프로토 타입을 만든다고 했을 때, 기존 소스를 카피해서 만들어야 하고 지금의 경우는 프로젝트가 커짐에 따라서 이 또한 쉽지도 않다. 이런 저런 이유가 존재하지만 결국은 쉽게 만들 수 있고, 많은 개발자들이 사용하고 있는 파이썬을 서브 언어로써 사용해 볼 수 있도록 공부를 해보려고 한다. 물론 자바로 개발을 하고 있기 때문에 코틀린의 경우는 짬짬이 공부를 하고 있다. :) 예전..
⚡ 개요 save()와 saveAndFlush()의 차이점에 대해서 정리하기 전에 결론부터 얘기하면 두 개의 함수 모두 메서드가 끝나는 시점에 DB에 데이터가 저장이 된다. @Transactional 어노테이션에 따라서 동작하는 방식의 차이는 있을 수 있지만 결론은 동일하다. 아래의 사용 방법에 대해서 보기 전에 JPA 영속성에 대해서 잘 모른다면 한번 찾아보고 내용을 본다면 좀 더 도움이 된다. 추가적으로 JPA 영속화 과정에 대해서 정리를 하려고한다. ⚡ 사용 방법 📔 save() entity 데이터 한건을 저장하는 데 사용을 하는 함수이다. entity의 키의 존재 여부를 판단하고 신규 entity라고 판단을 하면 영속성 상태로 바꾸고 기존에 존재하는 entity이면 준영속 상태를 영속 상태로 바꿔..

⚡ 개요 비지니스 로직을 작업하면서 일부 컬럼만 조회해서 사용하는 경우가 존재한다. 이때 나는 보통 queryFactory를 통해서 일부 컬럼에 대한 조회를 하는것이 익숙해서 이렇게 조회를 했다. 그러다가 문득 JPA 의 repository를 통해서 단일 컬럼 또는 일부 컬럼을 조회를 하는 것이 가능할 텐데 어떻게 하는지 궁금해졌다. queryFactory를 사용하든 repository를 사용하든 대용량 데이터를 조회하는 게 아닌 이상 속도적인 측면은 잠시 미뤄놓고 어떤 게 더 편하게 개발을 할 수 있는지가 궁금했고 방법을 찾아보게 되었다. :) ⚡ 일부 컬럼만 조회하는 방법 결론부터 이야기 하자면 일부분 컬럼만 가져오고 싶다면 Mapping Interface를 별도로 만들고 리턴을 받을 때 Entity..
⚡ 개요 queryDsl을 사용하면서 데이터를 조회하거나, 조건을 추가할 때 case when 구문을 사용해야 하는 경우가 발생한다. 내부적으로는 이력을 조회하거나, 카운트를 조회 한다거나 조건을 추가하려고 stream의 중간 연산자를 쓰는 것보다 쿼리를 한 번에 날려서 조회하는 게 속도적으로 좀 더 좋다고 판단해서 사용하고 있다. 물론 일반적인 비지니스 로직에서 처리를 할 때는 최대한 사용하지 않는 게 좋다고 생각하기는 하지만 분명 어쩔 수 없는 경우도 있을 것이다. 좋지 않다고 해서 사용을 안 하는 것이 아니라 상황에 맞게 판단해서 사용하는 게 좋다고 생각을 한다. ⚡ case when 사용 방식 정리 일단 가장 기본적으로 queryDsl 에서 caseBuilder를 사용해서 case when 구문을..
보호되어 있는 글입니다.

⚡ 개요 spring boot 2.x 버전에 대한 지원이 이번년도를 기점으로 종료가 된다. 이에 따라 새로 나온 3.x 버전으로 내부 프로젝트를 변경을 진행을 해야될거 같아서 라이브러리의 충돌을 방지하기 위해서 신규 프로젝트로 종속성 및 설정등을 진행하고 기존 프로젝트에 적용을 하려고 했으나 시작 부터 에러가 발생한다... ⚡ 이슈 및 설정 관련 내용 정리 spring boot 3.x 버전에 대해서 공식 페이지에 나와있는 설명 및 추가적으로 바뀐 부분에 대해서 확인을 했었지만... 까먹고 설정을 하다가 이슈를 확인 하고 수정을 했다. 검색을 해보니 해당 문제를 접하는 개발자 분들이 많은거 같아서 정리를 해보려고 한다. 📚 개발 스텍 Kotlin JAVA 17 Spring boot 3.1.4 Gradle ..