분류 전체보기
-
[Docker + Spring Boot] Spring boot jar 배포 시 도커 컨테이너 내 파일 위치 확인(app.jar)스터디 노트 2025. 3. 25. 22:00
Docker에서 Spring Boot로 만들어진 jar 이미지를 배포하게 되면 jar 내부 내장 톰캣을 통하여 컨테이너가 구동되게 됩니다.이럴 경우 컨테이너 내부에서 파일의 위치를 따로 폴더 형식으로 찾을 수가 없습니다.이럴 경우 root의 app.jar 파일을 확인해볼 수 있습니다. JAR 명령어로 확인Spring Boot JAR 파일은 Java 실행 환경에서 jar 명령어를 사용할 수 있습니다.docker exec -it /bin/sh컨테이너 내에서 아래 명령어 실행:jar tf /app/app.jar | grep application.yml jar tf : JAR 내부의 파일 목록을 확인하는 명령어grep application.yml : 설정 파일이 있는지 찾기📌 출력 예시BOOT-INF/cl..
-
[Spring Cloud + JWT + Redis] Spring Cloud Gradle 멀티모듈 환경에서 Redis 연결 오류오답 노트 2025. 3. 10. 23:11
JWT 중복 로그인 방지 기능 개발을 하다가 다음과 같은 오류를 만났습니다.org.springframework.data.redis.RedisConnectionFailureException: Unable to connect to Redis at org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory$ExceptionTranslatingConnectionProvider.translateException(LettuceConnectionFactory.java:1858) ~[spring-data-redis-3.4.3.jar:3.4.3] at org.springframework.data.redis.connection.lettuce.Let..
-
QueryDSL + Lombok 프로젝트 구성 시 'cannot find symbol'이 뜬다면?오답 노트 2024. 12. 26. 09:42
신규 작업 프로젝트에서 갑자기 QueryDSL이 필요해졌습니다.종속성을 추가하고 QClass들을 만들어낸 뒤에 프로젝트 빌드를 하니 갑자기 'cannot find symbol' 문구가 뜨면서 entity와 slf4j를 찾을 수 없다는 빌드 오류가 발생했습니다.이상하다 싶어서 좀 자세히 찾아보니 설정값을 제대로 안해놨더라구요.. 기존에 오류발생시에는 Processor Path를 직접 지정해준 jar파일로 사용했었는데, 이게 다른 서브 모듈들과의 차이로 인하여 서로간의 종속성이 제대로 로드되지 않았고, 그로 인하여 프로젝트 내에서 당연히 가져와야 했던 클래스들을 찾지 못한다는 황당한 문구가 놔왔었습니다.위와 같이 설정을 바꿔주고 아래 pom.xml에서 plugin 내부 configuration의 outpu..
-
[Nginx] 파일 송신 시 413 Request Entity Too Large Axios 에러오답 노트 2024. 10. 15. 09:18
멀티파트 파일로 정상적으로 API를 만들고 테스트까지 모두 끝난 백엔드 애플리케이션을 Call 하던 Front..모든것이 순조롭게 잘 진행되고 있었는데, 갑자기 뭔가 하나 길을 막아섰습니다. '413 Request Entity Too Large'난감..황당..너 잘 됐잖아? 갑자기 왜그래? 알아보니 Nginx는 기본적으로 파일 송수신 사이즈를 1M로 설정해놓고 있습니다.(1M..?누구 코에 붙이라고..) 해결 방법을 찾아보니 아주아주 심플했습니다. nginx의 /etc/nginx 폴더 내 nginx.conf 또는 /etc/nginx/conf.d/*.conf 파일 내에 http 블록에 client_max_body_size 를 설정해주면 됩니다.http { ...(생략)... client_max_..
-
[Spring Security 3.x + JWT] PermitAll() 이 정상적으로 인식이 되지 않을 경우스터디 노트 2024. 9. 22. 12:36
JWT Filter를 활용한 로그인 기능을 구현하던 중, 회원가입 API를 호출하니 권한이 없다는 황당한 오류를 맞이하게 되었습니다.분명히 httpSecurity에 authorizeHttpRequests부분에 PermitAll로 회원가입과 로그인을 처리하는 auth 하위 URI는 모두 허용하도록 처리를 하였음에도 불구하고 JWT Filter를 타면서 token검증을 하더군요.. 실제로 인증을 하지 않으며 무조건 허용하도록 설정을 했음에도 정상 동작하지 않아 파악을 해보니, permitAll()을 설정해도 무조건 Spring Security의 필터 체인을 거친다는 것을 알게 되었습니다. 이유는 알았고 이제 해결 방법을 찾아야지요.해결 방법은 매우 간단했습니다.기본적인 Security Config를 사용한다..
-
[SpringBoot + Docker + Jenkins + GitLab Webhook] Docker 환경에서 Jenkins 설치 GitLab Webhook 연동, Jenkins 내부에 Docker 설치하여 이미지 빌드하기프로젝트 노트 2024. 8. 19. 10:50
이번에 기존에 운용중에 있었던 Jenkins 컨테이너 서버에 추가로 배포 파이프라인을 만들면서 Docker Image Build를 하려고 했습니다.근데 Jenkins가 깔려있는 컨테이너에서 Docker 설치를 거부하더군요..'docker open /certs/client/ca.pem: no such file or directory' 와 같이 pem키 이슈도 발생하고..Docker를 실행하기 위해 systemctl 명령어로 Docker를 실행시켜봐도 감감무소식..재설치를 해봐도 Docker가 설치되어있다고는 하는데 그 어디에도 Docker는 실행되고 있지 않는 참으로 환장할 이슈가 발생했습니다.기존 Jenkins 컨테이너는 Docker Image 빌드 없이 War를 만들어 ssh로 전달해주는 방식을 적용하..
-
[Mac] 실행중인 포트 확인 및 종료 방법스터디 노트 2024. 8. 19. 09:34
가끔 개발을 하다 보면 의도치 않게 Local Tomcat을 실행한 후 종료시켜버리는 경우들이 더러 있습니다.그 후 다시 로컬 톰캣을 실행하면 항상 해당 포트가 사용중이라는 문구가 뜨곤 하죠.. 가볍게 맥에서 사용중인 포트를 스캐닝하고 원하는 포트를 종료시키는 명령어를 공유해볼까 합니다.Operating System/Mac OS1. 현재 열린 포트 목록 확인 sudo lsof -PiTCP -sTCP:LISTEN2. 특정 포트를 찾아 종료하고 싶을 때 특정 포트의 PID 찾기 sudo lsof -i :8080 위에서 구한 PID로 종료: sudo kill -9 {PID} 전체 사용중인 포트를 리스트업해보면 아래와 같이 나옵니다. 아래의 리스트에서 원하는 포트를 체크하시면 됩니다. 둘째론 원하는 포트를..
-
[IntelliJ] Java Class 파일 주석 템플릿 설정하기프로젝트 노트 2024. 8. 18. 19:28
공통적으로 클래스를 생성할 때 적용되는 클래스 파일 주석 템플릿을 설정하는 방법입니다. 간단히 먼저 설명을 하고 넘어가자면 저희가 작성하는 파일 주석 템플릿은 아래의#parse("File Header.java") 부분에 대체되어 들어가게 됩니다. 설정을 해보겠습니다. File > Settings > Editor > File and Code Templates 메뉴에서 Includes를 선택합니다.여기엔 기본적으로 File Header가 적용되어 있습니다. 여기에 우리가 공통적으로 사용할 클래스 파일 주석 템플릿을 작성해줍니다./** * packageName : ${PACKAGE_NAME} * fileName : ${NAME} * author : ${USER} * date ..