전체 글(614)
-
VisualVM Profiler 사용할 때 특정 Profile Class가 표시되지 않는 문제 해결
배경Troubleshooting Java 도서에서 서버의 특정 엔드포인트(/demo)에 대한 CPU 프로파일링을 실습하고 있었습니다. 해당 엔드포인트는 요청을 받으면 내부적으로 OpenFeign 라이브러리를 사용하여 "httpbin.org" 사이트에 요청을 보내고 일부러 5초 동안 응답 지연합니다. 프로파일링 결과는 다음과 같습니다. 위 결과를 보면 DemoController.demo() 메서드에 대한 정보만 나올 뿐이지 OpenFeign 호출에 대한 상세한 정보는 프로파일링 되지 않고 있습니다. 제가 원하는 것은 OpenFeign에 대한 프로파일링 정보까지도 표시되는 것이었습니다. 원인프로파일러의 CPU settings에서 Profile classes 입력창에 OpenFeign 라이브러리 경로를 설정하..
2025.12.15 -
Github Action, act 로컬 테스트 실행시 SSH Private Key 저장 문제 해결
개요이 글에서는 Github Action의 워크플로우 파일을 로컬 개발 환경에서 act라는 오픈소스 프로세스를 실행하여 테스트하다가 SSH 접속이 안되는 문제를 해결하는 것을 다루고 있습니다.https://github.com/nektos/act GitHub - nektos/act: Run your GitHub Actions locally 🚀Run your GitHub Actions locally 🚀. Contribute to nektos/act development by creating an account on GitHub.github.com 배경GCP 클라우드 기반의 배포를 위한 워크플로우 파일을 작성하는 과정에서 Github Action 워크플로우를 로컬 개발 환경에서 테스트를 하기 위해서 act..
2025.12.05 -
Gradle의 Java 플러그인, implementation과 api의 차이
1. Gradle Java 플러그인과 Java-Library 플러그인Java 플러그인은 무엇인가?Gradle 설정에서 Java 플러그인을 추가하면 해당 프로젝트를 자바 프로젝트로 만들고 자바 소스코드를 컴파일, 테스트, 빌드하는데 필용한 기능들을 Gradle에 부여해줍니다.plugins { id 'java'}Java 플러그인을 추가하면 다음 그림과 같은 테스크들을 사용할 수 있습니다. 각 테스크들간에 화살표 관계는 해당 테스크를 완료하기 위한 선행 조건 테스크들을 의미합니다. 예를 들어 build 테스크를 수행하기 위해서는 check, assemble 테스크가 먼저 수행 및 완료되어야 합니다. 자바 컴파일러가 자바 소스 코드(*.java)를 컴파일 하게 되면 바이트 코드(*.class)를 생..
2025.12.02 -
Gradle 기반 멀티 모듈 생성 및 의존성 추가 방법
개요Gradle 기반으로 멀티 모듈 Project를 생성하는 방법을 학습project, subprojects, allprojects을 통하여 특정 모듈들에 설정하는 방법을 학습모듈간에 다른 의존성을 공유하는 방법을 학습외부 파일을 기반으로 의존성 라이브러리를 관리하는 방법을 학습 멀티 모듈 프로젝트는 무엇인가멀티 모듈 프로젝트는 여러개의 작은 프로젝트들로 구성된 프로젝트입니다. 해당 프로젝트에는 루트 프로젝트가 존재하고 루트 프로젝트 아래에 여러개의 모듈이 존재할 수 있습니다.다음 프로젝트를 보면 프로젝트 이름은 "gradlebasics" 라는 이름이 프로젝트 이름이고 하나의 gradlebasics 라는 프로젝트 이름 아래에 sub-project-1, sub-project-2, common라는 모듈이 포..
2025.12.01 -
Gradle 빌드 수행시 JDK 버전과 Lombok 라이브러리 버전 충돌로 인한 빌드 실패 문제 해결
배경IntelliJ IDEA가 아닌 Gradle 기반으로 빌드 명령어를 수행 시 QueryDSL의 QClass를 찾을 수 없다고 에러를 출력하였습니다. 하지만 IntelliJ IDEA를 이용하여 빌드를 수행할 때는 정상적으로 QueryDSL의 QClass를 생성하고 빌드 완료된 것을 볼수 있습니다. Project Version 정보Spring Boot 3.1.1Java : temurin-17(open jdk 17)QueryDSL : 5.0.0Lombok : 1.18.22 Gradle QueryDSL Task 설정원인IntelliJ IDE를 이용하여 빌드를 수행할 때는 temurin-17(open jdk17) 버전으로 빌드를 수행했기 때문에 정상적으로 완료된 것입니다. 다음 화면을 보면 Project의 S..
2025.11.29 -
비동기 환경에서 Spring Security 인증 정보 유지하기
배경FineAnts 프로젝트의 서비스 중에서 사용자 계정의 알림 설정을 업데이트하는 서비스가 존재합니다. 알림 설정을 업데이트 한 후에 변경 이벤트를 발행시켜서 변경된 알림 설정이 전부 비활성화이고 FCM 토큰이 존재하는 경우에 해당 FCM 토큰을 제거합니다. 알림 설정을 변경하는 코드는 다음과 같습니다.@Slf4j@Service@RequiredArgsConstructorpublic class UpdateNotificationPreference { private final MemberRepository memberRepository; private final ApplicationEventPublisher eventPublisher; @Transactional @Authorized(s..
2025.10.20