전체 글

나만의 기록... 까먹지말자...
· Java
⚡ 개요 내부에서 JPA를 사용하면서 entity에서 Cascade 옵션을 사용한 개발자분이 있었고, 이때 일부 데이터가 아무 값 없이 생성이 되거나 삭제되는 이슈가 발생을 했다. 다행히 문제점이 Cascade에 있다고 판단을 해서 수정을 했지만 실제 고객사에 반영이 되었다면 큰 문제가 발생했을것이다. 그래서 사용시 주의 사항 및 내용을 정리 하려고 한다. 📒 Cascade (영속성 전이) 특정 엔티티를 영속상태로 만들 때 연관관계에 있는 엔티티도 함께 영속상태로 만들기 위해서 사용한다. 부모 엔티티를 다룰때 연관 되어있는 자식 엔티티까지 다룰수 있게 해준다. JPA에서는 Cascade 을 통해서 영속성을 다룰수 있도록 도와준다. 이와 관련된 옵션들이 존재한다. CascadeType.ALL: 모든 Cas..
· DevOps
⚡ 개요 개발 중이던 신규 프로젝트가 어느덧 배포를 하는 단계까지 왔다. 👋👋👋 배포를 준비를 하면서 릴리즈 버전을 계시하고 특정 고객사에서 필요한 연동과 앞으로의 신규 개발들을 진행해야 해서 브랜치도 나누고 태그도 다는 과정에서 이 부분을 정리해 놓으면 좋을 거 같아서 작성하게 되었다. 태그와 릴리즈를 사용하는 가장 큰 이유는 당연히 버전을 쉽게 관리하고 배포하는데 중점이 있다고 생각한다.브랜치를 따거나 git 변경 사항에 특정 버전 및 내용에 대해서 규칙을 정하고 적는 것도 좋겠지만 좀 더 쉽게 버전을 체크하고 관리할 때 좋다고 생각을 한다. 내가 사용을 할때 가장 중점적으로 생각한 부분은 우리 개발팀에 새로 들어오더라도 우리와 같이 사용할 때 거부감이 없어야 된다고 생각했다. 분명 회사별로 관리하는..
· Java
⚡ 개요 java 에서 날짜를 특정 타입으로 변환을 할 때가 존재한다. 자주 사용을 하는 변환 함수에 대해서는 함수를 쓰면서 바로 사용을 하는 경우도 있지만 자주 사용하지 않는다면 내부 소스를 찾아보거나 검색을 하게 된다. (최근에 날짜 변환에 대해서 기억이 잘 나지 않아서 검색을 좀 자주 하게 되었는데 정리를 좀 해놔야겠다고 생각을 했다.) 자바에서 사용하는 함수에 대해서 정리를 하겠지만 함수를 까보면 어느 정도 다른 언어에서도 충분히 비슷한 함수가 존재하거나 없으면 만들어서 사용 가능할 거라고 생각을 한다. ⚡ 날짜 변환 사용 방법 간단하게 내가 사용하는 방법에 대해서만 정리를 하려고 한다. 참고로 LocalDateTime , LocalDate, LocalTime 은 내부적으로 변환에 대해서 지원하는..
· GraphQL
⚡ 개요 내부적으로 GraphQL을 사용해서 필요한 데이터를 호출해서 사용하고 있다. 그런데 데이터가 많아지면 많아질수록 rest API를 통해서 호출하는 방식보다 속도가 느려지는 경험을 하게 되었고 왜 이런 문제가 발생하는지 궁금해져서 찾아본 내용에 대해서 공유를 하려고 한다. 기본적으로 rest API VS GraphQL에 대해서 장단점이 명확하고 이에 대한 설명들을 많이 찾아볼 수 있으니 숙지하고 상황에 맞게 사용을 하는 게 좋을 거 같다. 혹시라도 버전이 업데이트 되면서 해당 이슈가 해결이 되었을 수도 있기 때문에 내가 테스트한 버전에 대해서 적어놓도록 하겠다. Spring boot 2.6.6 graphql-java 20.0 raphql-java-extended-scalars 19.1 graphq..
· Spring
⚡ 개요 Spring boot 2.6.x 버전이 2024년 2월달 부로 지원이 종료가 된다. :( 아직 까지는 크게 문제가 없지만 결국은 버전을 올려야 하며, 내부 버전을 마이그레이션을 하기로 생각했다. 아마 추가적으로 다른 내용들도 정리를 하고 있지만 가장 먼저 QueryDsl 의 Dialect의 사용 방식이 변경돼서 이 부분에 대해서 정리를 하려고 한다. 공식 문서 및 관련 자료를 찾아도 방법에 대해서 공유를 해놓은 사람이 없어서 내부 클래스를 분석해서 사용 방법을 재정의 했다. 이에 대한 내용을 정리해보려고 한다. 📚 버전 정보 현재 테스트를 할떄 필요한 버전 정보만 공유하도록 하겠다. Spring boot 2.6.x ==> Spring boot 2.7.18 ==> Spring boot 3.0.18..
· Spring
⚡ 개요 내부적으로 spring boot 2.6.6 버전을 사용 중이며, 이제 곧 2.6.x 버전의 지원이 종료가 된다. java 21 도 나왔고, 가상 스레드를 실무에서 사용해 보고 싶은 생각도 있다. 겸사겸사 spring boot에 대한 버전을 업데이트하면서 변경된 내용과 오류를 잡은 과정에 대해서 내용을 정리하려고 한다. 일단 먼저 내부적으로 사용중인 일부 라이브러리 버전에 대해서 공유하도록 하겠다. (이외 다른 라이브러리도 사용 하고 있지만 버전을 올리면서 문제가 발생하는 경우에만 따로 버전 및 이슈를 공유하도록 한다.) spring boot 2.6.6 java 17 queryDsl 5.0 spring boot 를 버전을 올리면서 이외 다른 라이브러리 버전도 올려야 하는 부분이 발생할 수도 있다...
· DB
⚡ 캐싱 초기화내가 캐싱을 초기화 하는 이유는 기존에 작업 했던 쿼리와 캐싱된 쿼리의 실행 계획이 계속 똑같아서 캐싱을 초기화 하게 되었다.캐싱 초기화에 대한 자세한 내용은 생략한다. (다른 블로그들이 너무 잘설명 해놔서 링크 가지고 있고 까먹으면 본다.) 📒 사용중인 캐시 추출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..
· Java
⚡ 내용 정리아래의 경고가 발생하는 원인은 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, ..
· Java
⚡ 진행 상황 개인 및 회사 일정이 많아서 개인적으로 블로그 및 파이썬에 대한 개발을 많이 진행하지는 못했다. :( 주말에라도 틈틈히 공부 하려고 했으나 따로 진행 하고 있는 프로젝트 및 추가 일정들로 인해서 놔버렸었다. 일단 그래도 진행 상황에 대해서 늦었지만 어느정도 정리를 하고 넘어 가려고 한다. 회사에서 개발을 진행 하면서 틈틈히 공통 함수 및 자주 사용하는 함수들에 대해서는 파이썬으로 만들면서 어느정도 기본적인 능력치를 차곡차곡 쌓아가고 있다. 파이썬하면 가장 많이 사용하고 있는 웹 프레임워크 Django(장고) 를 통해서 페이지 하나뿐인 게시판을 만들었다. 일단 어떤 느낌으로 동작하는지에 대해서는 개발을 하면서 동작 방식에 대해서 찾아보고 공부를 진행 하고 있다. 아직은 이해하지 못한 부분이 ..
HaeTae
soTech