목록Project/PlusKM (8)
빙응의 공부 블로그

📝배경저번 포스팅에서 Prometheus와 Grafana를 이용해 시스템 모니터링 시각화를 진행했었죠. 이번 시간에는 여기서 한 발 더 나아가, Grafana에서 애플리케이션 로그 정보까지 효과적으로 시각화하는 방법을 알아보겠습니다. 이 포스팅은 아래 두 개의 선행 포스팅을 완료하신 분들을 대상으로 합니다. 만약 아직 진행하지 않으셨다면, 먼저 읽어보시기를 강력히 추천드립니다.[+/KM]Logback으로 EC2 환경 로그 관리하기 [+/KM]Logback으로 EC2 환경 로그 관리하기📝배경 이번 게시글에서는 Spring Boot에서 Logback을 활용해 EC2 서버에서 로그를 환경별로 효율적으로 관리하는 방법에 대해 설명합니다.특히, 운영 환경에서 로그 가독성 문제를 어떻게 해결했는quddnd.ti..

📝배경저번 포스팅에서는 Logback을 이용한 로그 저장을 다뤘습니다. 덕분에 애플리케이션 내부에서 발생하는 이벤트들을 효율적으로 기록할 수 있게 되었죠. 하지만 로그를 열심히 쌓는 와중에 한 가지 불편한 점이 생겼습니다. 바로 제가 서비스를 올린 EC2 인스턴스의 상태와 현재 사용률을 파악하기 힘들다는 점이었습니다.인스턴스의 CPU 사용량, 메모리 점유율, 디스크 I/O 같은 핵심 지표들을 실시간으로 파악하기 어려웠습니다. 결국 인스턴스에 문제가 생겨도 "왜 느려졌지?", "혹시 서버가 다운되지는 않을까?" 하는 불안감 속에서 CloudWatch 기본 지표만으로는 답답함을 느꼈습니다. 그렇기에 저는 이 불편함을 개선해야 한다는 필요성을 절감했고, 다양한 모니터링 툴들을 찾아 나서게 되었습니다. 📝..

📝배경 이번 게시글에서는 Spring Boot에서 Logback을 활용해 EC2 서버에서 로그를 환경별로 효율적으로 관리하는 방법에 대해 설명합니다.특히, 운영 환경에서 로그 가독성 문제를 어떻게 해결했는지 실제 프로젝트 기반 경험을 바탕으로 공유드리려 합니다. 로컬 환경에서는 테스트 진행 시에 로그를 바로바로 확인이 가능해서 문제점이 드러나지 않았지만,EC2에 서버를 배포하면서 로그를 직접 EC2 서버를 연결하여 확인해야했습니다. EC2 서버의 로그는 가독성이 떨어졌고, 이를 반드시 개선해야겠다고 생각했습니다. 로컬 환경에서는 콘솔만 쳐다보면 되지만, EC2 서버에 배포된 뒤에는 SSH로 직접 접속해 로그를 뒤져야 하는 불편함이 있었습니다. 특히 로그가 단일 파일에 뒤섞여 있어 필요한 정보를 찾는 데..

📝배경저번 포스팅 에서 JDBC Batch bulk Insert을 이용해서 공공데이터 갱신 작업 최적화를 진행하였습니다.갱신 작업 자체는 로컬 호스트에서 성공적으로 성능이 개선되었으나... AWS에서 배포 시에 문제가 발생했습니다. 해당 오류는 이 오류 메시지는 java.lang.OutOfMemoryError: Java heap space 즉, Java 힙 메모리가 부족해서 발생한 오류입니다. 자세히 살펴보면, Tomcat 서버의 NIO 커넥션 폴링 스레드에서 ConcurrentHashMap의 iterator를 돌리다가 메모리가 부족해진 상황입니다.더보기@Slf4j@RequiredArgsConstructor@Order(1)@DummyDataInitpublic class PlaceInitializer..
📝배경저번 포스팅 에서는 CSV 파일을 이용해 프로젝트 데이터를 불러오는 과정을 진행했습니다. 또한, MySQL 데이터를 CSV로 변환한 후 MongoDB로 복사하는 작업도 수행했습니다.이 프로젝트의 특성상 데이터는 약 10만 건으로 큰 변화가 없으며, 서버 실행 시 갱신됩니다. 원래는 한 달에 한 번 CSV 파일이 갱신되면, 서버를 재시작해 데이터를 반영하는 방식을 계획했습니다. [Place] 데이터 동기화 완료 - 추가/수정: 100676, 삭제: 0, 시간: 172223ms // 172초 거의 3분📝MySQL 데이터 추가 최적화하기 우선 MySQL 데이터 추가 및 갱신 로직을 최적화하겠습니다.데이터를 추가할 때는 기존 DB와 비교하여 중복 여부를 확인하고, 중복 데이터는 삭제, 갱신된 데이터는..
📝배경 [개인프로젝트]공간 데이터 최적화하기 [개인프로젝트]공간 데이터 최적화하기📝배경 이번에 개인 프로젝트를 진행하면서 공공데이터 포탈의 의료 데이터를 사용하게 되었습니다.그래서 의료 데이터 중 병원, 약국의 정보를 저장하여 그 데이터 중에서 좌표를 활용해서quddnd.tistory.com해당 포스팅에서 저는 공간 데이터를 이용한 병원, 약국 정보 조회에 대해 최적화를 진행했습니다. 이번에는 공간 데이터, 함수, 관계 함수를 제외한 나머지 요소들로 최적화를 진행하기로 했습니다. 해당 사항에 대한 리팩토링 과정을 정리하겠습니다. 📝MySQL 공간 인덱스 MySQL의 공간 인덱스는 R-Tree 인덱스라고 부릅니다. 그 이유 Rectangle의 R과 B-Tree 인덱스를 합쳤기 때문입니다.R-Tree..