전체 글
-
[Spring Boot3 + Jaeger] 스프링부트3에 예거 설정 추가 하는 방법Programming Language/Java 2024. 7. 31. 10:47
Jaeger 는 Uber Technologies 에서 개발한오픈소스 분산 트레이싱 시스템으로,마이크로서비스 아키텍처에서 서비스 간의 트랜잭션을추적하고 분석 할 수 있도록 해준다. 최근 회사에서 프로젝트를 진행하면서여러 서비스 간의 API 흐름을 추적하고 모니터링하기 위해Jaeger 를 사용하기로 했다. 내가 적용한 서비스는 Spring Boot 3.x 로 개발하고 있는데,Jaeger 를 적용하는 과정에서 Spring Boot 2.x 버전에서적용하는 방법과 차이가 있어서 정리를 하려고 한다. 사용한 도구Gradle 8.5Java 21Spring Boot 3.xJaeger (all-in-one) 1.59 io.opentracing.contrib:opentracing-spring-jaeger-web-start..
-
[ConfigMap] edit 시 파일 내용이 문자열로 변환되는 표현 버그 수정 방법Open Source/Kubernetes 2024. 4. 3. 11:37
업무를 하면서 쿠버네티스 ConfigMap 을 많이 사용하게 되는데 사내 솔루션을 여기저기 배포하면서, 항상 드는 의문점이 있었다. 분명히 예쁘게(pretty) 구성해서 configmap 을 적용했는데, kubectl describe 하면 예쁘게(pretty) 보이던 콘텐츠 내용들이 이상하게 kubectl edit 을 하면 하나의 문자열로 합쳐지는 것이다. 업무에 바쁘다보니 해결책이 쉽게 나오지 않아서 그냥 사용했었다. 이번에 새로 입사한 동료가 이 부분에 대해서 질문을 하면서, 이 문제를 해결하기 위해 찾아보았다. 다행히도, 아주 간단한 원인과 해결책을 알게 되었다. 같은 문제를 겪고 잇는 다른 분들에게 도움이 되길 바란다. 문제의 표현 버그 아래 내용처럼 configmap 을 구성해서 적용했다. ap..
-
[Java] CSV 를 Excel 로 변환하는 Java 코드 예제Programming Language/Java 2023. 2. 8. 16:52
최근 java 를 이용해서 .csv 파일을 Excel 로 변환 해야하는 일이 있었다. 그런데 단순히 csv 파일을 excel 의 하나의 sheet 로 변환하는 예제나 라이브러리는 몇 개 있었는데, 하나의 엑셀에 특정 컬럼들을 특정 시트에 작성하는 형태의 라이브러리 는 잘 나오지 않아서 개발 한 것을 적어둔다. 1. 라이브러리 사용법 - 라이브러리 사용법에 대한 README.md 1.1. settings.xml 설정 github ${github 유저명} ${github 토큰} 1.1. 디펜던시 설정 pe.fwani.convert csv-to-excel 0.0.1-java11-SNAPSHOT github-fwani-releases https://github.com/fwani/fwani-maven-repo/r..
-
[Kubernetes] kubectl 기본 사용 예제Open Source/Kubernetes 2023. 1. 13. 14:34
kubectl 명령어 중 현업에서 자주 사용하고 있는 명령어 정리 등록된 것 확인 kubectl get ... -n namespace 를 지정하지 않으면 default 가 기본 네임스페이스가 된다. # deploy 확인 kubectl get deploy -n dev # service 확인 kubectl get service -n dev kubectl get svc -n dev # 축약어 사용 # config-map 확인 kubectl get configmap -n dev kubectl get cm -n dev # 축약어 사용 # 한번에 여러개 확인 (pod, svc, cm) kubectl get pod,svc,cm -n dev yaml 등 파일을 이용해 k8s 에 적용 하기 먼저 deploy...
-
[CI/CD] CI/CD 적용 예제CICD 2023. 1. 12. 18:33
CI/CD 정리 CI/CD 는 어플리케이션 개발단계(빌드, 테스트, 배포) 를 자동화 하는 것을 말한다. CI (Continuous Integration) 지속적인 통합 새로운 커밋이 푸시되면 빌드 및 테스트가 동작하고, 문제가 발생하지 않았는지 자동으로 알려주는 과정 CD (Continuous Deployment) 지속적인 배포 코드 변경 사항이 CI 를 거쳐 main 에 머지가 되면, 자동으로 배포해주는 과정 CI/CD 에 사용한 툴 git: 코드 히스토리 기록 github: 커밋 푸시 / PR 관리 jenkins: 이미지 빌드 / 테스트 / 배포 스크립트 푸시 docker: 이미지 관리 sonarqube: 코드 정적 분석 / 코드 커버리지 기록 gitlab: 배포 스크립트 히스토리 관리 github..
-
[Ventura] 백그라운드 허용된 아이템 강제 삭제MacOS 2023. 1. 9. 10:05
MacOS 를 Ventura 13.1 로 업데이트를 하고나서 정부사이트를 이용하려고 "nProtect" 프로그램을 설치하였고, 전부 이용한 뒤 nosuninst.app 을 통해 삭제를 했다. 그런데 자꾸 알림창에 "Background item added nProtect" 라는 알림이 뜨고 알림을 지워도 시간이 지나면 계속 알림이 생겼다. 이유는 System Settings > General > Login Items 에서 확인 할 수 있었는데, "Allow in the Background" 항목에 nProtect 가 생겨있었다. 하지만, 이 항목을 지우는 UI 가 없어서 난감했다. 파일을 강제로 삭제하는 방법이 있어 기록해둔다. 해당 유저와 모든 유저에 대한 백그라운드 아이템 파일을 확인해서 지우는 방법이..
-
[Sentry] Docker 를 이용하여 local 에 Sentry 설치하기Open Source 2022. 1. 13. 19:11
sentry 를 이용해서 프로그램을 모니터링 하고 있는데, sentry 에서 기본 제공하는 플랜 은 매달 금액도 나가고 transaction limit 을 넘어 버리면 아예 모니터링이 불가능한 경우가 발생했다. Application Monitoring and Error Tracking Software Self-hosted and cloud-based application monitoring that helps software teams see clearer, solve quicker, & learn continuously. sentry.io 위의 단점을 보완하기 위해 local 에 sentry 를 직접 설치 하였다. self-hosted sentry 문서 를 읽으며 설치를 진행 하였다. 1. 설치하기 및..