Spring

· Spring
⚡ 개요 spring boot 2.x 버전에 대한 지원이 이번년도를 기점으로 종료가 된다. 이에 따라 새로 나온 3.x 버전으로 내부 프로젝트를 변경을 진행을 해야될거 같아서 라이브러리의 충돌을 방지하기 위해서 신규 프로젝트로 종속성 및 설정등을 진행하고 기존 프로젝트에 적용을 하려고 했으나 시작 부터 에러가 발생한다... ⚡ 이슈 및 설정 관련 내용 정리 spring boot 3.x 버전에 대해서 공식 페이지에 나와있는 설명 및 추가적으로 바뀐 부분에 대해서 확인을 했었지만... 까먹고 설정을 하다가 이슈를 확인 하고 수정을 했다. 검색을 해보니 해당 문제를 접하는 개발자 분들이 많은거 같아서 정리를 해보려고 한다. 📚 개발 스텍 Kotlin JAVA 17 Spring boot 3.1.4 Gradle ..
· Spring
🤔 사용 이유 우리 회사 프로그램 로직상 서비스가 동작을 하고 프로토콜을 보내는 작업을 하게 된다. 쉽게 프로세스의 흐름에 대해서 설명을 하자면, 사용자가 자산을 구매를 하고 등록을 한다. 이후에 해당 자산을 사용자에게 할당 해주고 회수를 하는 서비스가 존재한다. 이때 자산에 대해서 할당 및 회수를 하게 되는 경우 프로토콜을 서버쪽에 보낸다. 여기서 프로토콜을 서버에 보낼때 프로토콜의 내용이 변경이 되면서 Exception 이 발생하게 되었고, 할당 및 회수도 같이 롤백이 되버리는 이슈가 발생하게 된다. 같은 트랜젝션으로 물려있기 때문에 발생한 이슈로 해당 이슈를 수정하기 위해서 Spring Event 기능을 사용하게 되었다. 프로세스마다 다를수는 있지만 메인 기능의 성공과 서브 기능의 성공은 분리가 되..
· Spring
⚡ 개요 Spring Boot에서 QueryDsl을 사용하는 방법에는 여러 가지 방법이 존재한다. 내가 가장 많이 사용하는 방식은 queryFactory를 이용하는 방식을 사용한다. 회사에서 개발을 하면서 단일 테이블 기준으로 데이터를 뽑아낼 수 있는 부분이 적고 데이터량이 많다. 이외, 다른 방식들이 있는데 이부분에 대해서 정리를 하면서 잘못 쓰고 있는 부분이 있는지 체크를 해보려고 한다. ⚡ 사용 방법 querydsl을 사용하는 이유부터 생각을 해보자. 만약 spring boot JPA 및 JPQL을 사용해서 쿼리를 구현 한다고 생각해봤을때 단건 조회 또는 적당한 조건에 따른 조회는 크게 문제가 되지 않는다. 하지만 쿼리가 복잡해지고 조건이 많아지는 순간 실수가 발생할 가능성이 존재하고 유지보수에 어..
· Spring
⚡ 개요 리눅스 운영 서버에서 운영중인 웹 서비스에서 SFTP 접속 관련 이슈가 발생했고, 원인 분석 및 수정을 어떻게 했는지 내용을 정리 하려고 한다. ⚡이슈 및 수정 내용 정리 이슈가 발생 했고 운영 서버의 로그를 확인해본 결과, connection 관련 null 이라는 Exception만 찍히고 있었다. 😭 해당 부분의 로그 설정이 printStackTrace 로 되어 있었고, 이로 인해서 리눅스 환경에서 로그를 찍지 않고 리턴된 값에 대해서만 찍고 있었다. 물론 개발 서버에서 SFTP 관련 테스트 및 로그 보강등 추가적인 작업을 했지만 운영 서버에 반영을 할 수 없는 상황이라서 connection 관련해서 null이 반환 되는지 찾아보고 처리하는 방법 밖에 없었다. 내부에서는 JAVA에서 SFTP..
· Spring
⚡ 개요 기본적으로 QueryDsl을 사용할때 QClass가 생성이 된다. 초기에 QueryDSL을 사용하면서 궁금했던 내용은 그냥 Entity를 사용해도 될거같은데 굳이 QClass를 만들어서 사용을 할까? 어떻게 만드는거지? 라는 기본적인 궁금증에서 래퍼런스 문서 부터 많은 블로그의 내용을 찾아봤으며 해당 내용을 정리 해보려고 한다. JPA_APT(JPAAnnotationProcessorTool)가 @Enttiy 와 같은 특정 어노테이션을 찾고 해당 클래스를 분석해서 QClass를 만들어 준다. 빌드 도구를 통해서 만드는 방법은 다른곳을 찾아봐도 나오니 생략한다. (Gradle의 경우, 버전별로 설정을 하는 방식이 다르기 때문에 버전에 맞게 잘 찾아서 사용 해야 한다.) ✋ APT 란 ? Annota..
· Spring
⚡ 개요 래거시 APP 기준으로 신규 개발을 해야 되는 내용이 있어서 이미 쿼리가 다 짜져 있기 때문에 JPA가 아닌 mybatis를 사용해서 신규 개발을 했던 내용을 정리해놓으려고 한다. (신규로 구축하려니까 생각보다 헤맴..) 내용 중 기본적인 내용과 다른 부분이 있다면 DB를 두 개를 사용해서 연동이 들어갔다는 점이다. (mssql, oracle) ⚡ 기술 스택 Spring Boot 3.0.5 JAVA 17 MSSQL Oracle Mybatis ⚡ 사용 방법 정리 전반적인 사용 방법에 대해서 정리하기보다는 내가 좀 버벅거렸던 부분에 대해서 사용 방법을 정리하고 넘어가려고 한다. DatabaseConfig 설정 데이터 베이스를 관리할 때 Hikari Datasource (2.0부터는HikariCP가 ..
· Spring
⚡ 개요 spring boot를 사용하면서 기본적인 yml 설정 파일이 존재하고, 프로파일 설정을 하게 되면 프로파일 설정된 값이 우선으로 설정이 된다는것도 협업을 하면서 알고 있었다. 그렇다면 신규 구축 및 서로 다른 설정을 할때 우선순위가 어떻게 되는지 궁금해서 정리를 해보려고 한다. ⚡ 우선 순위 내용 정리 Spring Boot에서는 여러 개의 YAML 파일을 사용하여 애플리케이션 구성을 관리할 수 있다. 이러한 파일은 다음과 같은 우선순위를 가지고 있다. 기본 값 (default) Spring Boot에는 application.yml 또는 application.properties 파일이 기본값으로 제공된다. 이 파일은 다른 구성 파일에 정의되지 않은 모든 구성 속성을 가지고 있다. 프로파일별 값 ..
· Spring
이번에는 좀 가벼운 내용으로 쉬어가려고 한다...😅😅😅 개발을 진행 하다 보니 지루함도 느끼고 개발이 하기 싫을때가 있다. 그럴때마다 리프레쉬를 하기 위해서 여러 좋은 글들을 읽거나 재미있는것을 찾아 보곤 한다. 그러던 도중 매일 보는 콘솔에 찍히는 기본 배너는 어떻게 나오며 어떻게 변경하지??? 라는 생각을 하게 되었고 배너를 변경하는 법을 찾아보게 되었다. ⚡배너를 변경하는 방법 Spring Boot 에서 배너를 변경하고 싶다면 src/main/resources 폴더에 banner.txt 파일을 작성하게 되면 해당 텍스트를 배너로 표현을 해줍니다. (매우 간단😤) 테스트용으로 아래의 참조 사이트를 이용해서 만들어본 배너 이다. (😁😁) ⚡참조 사이트 배너 생성 사이트 Spring Boot banner..
· Spring
QueryDsl서브쿼리를 사용하는 방법에 대해서 내용을 한번 정리해보려고 한다. 회사 내부 신규 프로젝트의 경우 Spring Boot + JPA를 기반으로 프로젝트를 진행하고 있다. 내부적으로 쿼리 작업을 하면서 Spring Data JPA에서 기본적으로 제공해 주는 CRUD 메서드를 사용하더라도 데이터를 얻는 데에 많은 어려움이 존재했고, QueryDsl 라이브러리를 통해서 원하는 데이터를 얻어내고 있다. 그중 많이 사용하지만 매번 까먹는 내용인 서브 쿼리 사용 방법에 대해서 정리를 하려고 한다.😀 ⚡QClass 생성 가장 기본적으로 QueryDsl을 사용하려면 먼저 QClass를 생성해야 한다. QClass는 Querydsl에서 사용하는 엔티티의 필드와 연산자에 대한 메타 정보를 제공하는 클래스이다...
HaeTae
'Spring' 카테고리의 글 목록 (2 Page)