Back37 [SpringBoot] 외장 tomcat에 JNDI 설정 (+war) 상황 WAS에 데이터베이스 정보를 설정하고 연결하는 방식으로 개발해달라는 요청이 들어왔다. 이번 기회를 통해 tomcat에 JNDI 설정을 하는 방법을 정리해보았다. 실행환경 및 버전 OS : Ubuntu 20.04.3 LTS build tool : Gradle IDE : Intellij 유료버전 JDK : open JDK 11 Spring Boot : 2.7.9 Tomcat : 9.0.71 ✔️1. 먼저 external tomcat에서 war 로 빌드 가능한 환경 세팅하기 📌 이 게시글은 외장 톰캣에 war로 빌드하여 배포하는 환경이 갖추어져 있다는 전제하에 진행되므로, 아래 포스팅을 참고하여 미리 세팅이 갖추어져 있는지 확인 바란다. 2023.10.11 - [Back/Spring Boot] - [Sp.. 2023. 10. 23. [Linux, Tomcat] 환경별 properties 분리 tomcat에 설정하기 로컬, 개발, 운영에 대한 DB 정보가 다를 때, 매번 환경 별로 설정 정보를 변경하거나 주석 처리하는 것은 번거로운 일이다. 그 과정에서 의도치 않은 실수로 문제가 생길 수도... 그래서 환경 별로 properties 파일을 분리하여 개발하는 경우가 많다. ✏️jar는 톰캣 구동 시에 아래와 같은 cli 명령어로 어플리케이션을 구동할 수 있다. java -jar -Dserver.port=8090 -Dspring.profiles.active=dev project_name.jar ✏️ -Dspring.profiles.active=dev 이 부분이 properties 파일에서 아래와 같이 기입되어있는 파일로 어플리케이션을 구동할수 있도록 설정한 부분이다. spring: config: activate: on-.. 2023. 10. 11. [SpringBoot] war로 배포하기, 외장 톰캣 구동 (+Trouble Shooting) 상황 SpringBoot의 경우 기본적으로 내장 tomcat을 지원하고 이는 jar 형식으로 배포해서 사용한다. 하지만 좀 더 세부적인 톰캣 모듈 설정이 필요하거나 고객사의 요청에 의해 war로 패키징 해야하는 경우도 있다. 내 상황도 고객사의 요청에 의해 jar 방식을 war 로 바꾸어야 했다. 하나씩 차근차근 해보며, 트러블 슈팅하는 과정도 정리해보려고 한다. 실행환경 및 버전 OS : Ubuntu 20.04.3 LTS build tool : Gradle IDE : Intellij 유료버전 JDK : open JDK 11 Spring Boot : 2.7.9 Tomcat : 9.0.71 (SpringBoot에 내장되어있는 톰캣과 버전을 맞춤, 내장톰캣 버전 확인방법은 아래 사진 참고) 적용 ✔️1. b.. 2023. 10. 11. [Gradle] biuld.gradle 살펴보기 Gradle ??? 자바에서 외부 라이브러리를 가져다 쓴다는 의미는 결국 외부 라이브러리의 .jar를 가져와서 classpath에 추가하는 것이다. build.gradle이라는 파일에 가져다 쓸 라이브러리의 이름, 버전을 명시하면 gradle이 자동으로 jar파일을 다운 받고 추가해준다. 요약해서 말하면 gradle은 오픈소스 빌드 자동화 툴이다. 1. 구조 살펴보기 프로젝트 구조 사진 디렉토리 /파일 설명 /.gradle /gradle gradle 버전별 엔진 및 설정 파일 gradlew gradlew.bat gradle 명령 파일 setting.gradle 빌드할 프로젝트 정보 설정 builld.gradle 플젝트 빌드에 대한 모든 기능 정의 /src 자바 소스 파일 📌build.gradle이라는 파.. 2023. 9. 5. [JAVA] Stream Collectors.groupingBy 널(null) 사용하기 상황 데이터를 grouping 해서 Map으로 리턴해야 하는 상황이다. grouping할 key 값이 nullable한 상황인데, Map의 key값은 null이 될 수 없기때문에 문제가 발생했다. 아래와 같은 exception을 뱉었다. Caused by: java.lang.NullPointerException: element cannot be mapped to a null key 🫥참고로, 만약 그룹핑할 key가 절대로 null이 아니라면 아래와 같이 간단하게 처리할 수 있다. Map map = list.stream().map(li -> new ResponseDto(li) ).collect(Collectors.groupingBy(ResponseDto::getCode)); 해결 ✔️Null값이 있는 Gr.. 2023. 4. 7. [JPA, QueryDSL] intellij QClass import static 자동완성 단축키 상황 QueryDSL을 사용하는데, QClass를 import 할 때, 단축키를 이용한 자동완성이 안되고 import static~ 을 다 입력해야 해서 번거로웠다. 왜 단축키가 안먹지? 생각했는데, 역시나! 자동완성 방법이 있었다. (인텔리제이에서 가능!) 적용 ✔️1. QClass 명과 지정된 변수명을 입력한다. ✔️2. Alt + Enter (windows 기준) 후, 사진과 같이 Add static import~ 를 선택. 📌그럼 이렇게 자동으로 import static이 된다! 2023. 3. 15. 이전 1 2 3 4 5 6 7 다음