목록전체 글 (93)
olrlobt
Prometheus란?Prometheus는 애플리케이션의 성능 모니터링과 경고 알림을 위해 널리 사용되는 오픈소스 시스템으로, 특히 시계열 데이터(Time Series Data) 수집과 분석에 특화된 툴이다. 시계열 데이터는 특정 시간에 기록된 메트릭 값을 기반으로 시간의 흐름에 따라 변화하는 데이터를 추적하고 저장하는 방식이다. 이러한 방식은 시스템 성능을 모니터링하고, 문제 발생 시 그 원인을 파악하는 데 유용하다. Prometheus는 특히 클라우드 네이티브 환경과 분산 시스템에서 널리 사용되며, 안정적이고 확장 가능한 모니터링 솔루션을 제공한다. 다양한 플랫폼에서 손쉽게 통합할 수 있으며, 애플리케이션의 리소스 사용률, 요청 처리 시간, 데이터베이스 성능 등 중요한 메트릭을 실시간으로 수집하고 분..
비동기 프로그래밍비동기 프로그래밍은 작업을 병렬로 실행하여 CPU의 효율을 극대화하고, 응답 시간을 줄이기 위해 중요한 기법이다. 특히 네트워크 요청, 파일 I/O, 데이터베이스 쿼리와 같이 시간이 오래 걸리는 작업을 처리할 때 유용하다. 비동기 프로그래밍을 사용하면 한 작업이 완료되기를 기다리지 않고 다른 작업을 병행해서 수행할 수 있어 애플리케이션 성능을 향상시킬 수 있다. 자바에서는 Thread, Runnable, Future 등을 사용해 비동기 작업을 처리할 수 있지만, 기존 방법들은 다소 복잡하거나 제한적일 수 있다. FutureFuture는 Java 5에서 처음 도입된 인터페이스로, 비동기 작업의 결과를 나타내는 객체이다. 현재 실행 중인 작업이 완료될 때까지 기다리지 않고, 미래의 어느 시..
Object pooling (오브젝트 풀링)Object pooling은 자주 사용되는 객체를 미리 생성하고 재사용하여 메모리 할당 및 해제의 오버헤드를 줄이는 기술이다. Java와 같은 언어에서는 객체를 빈번하게 생성하고 폐기하는 작업이 성능에 큰 영향을 미칠 수 있다. 특히 복잡한 객체나 자주 호출되는 객체가 있는 경우, 이러한 작업은 GC(Garbage Collection)에 많은 부하를 줄 수 있으며, 이는 전체 시스템 성능에 악영향을 미치게 된다. 이때 Object pooling을 사용하면 자주 사용하는 객체들을 미리 만들어 두고 필요할 때 재활용할 수 있다. 객체를 새로 생성하는 대신, 풀(pool)에서 기존 객체를 가져와 사용한 후 다시 반납하는 방식으로 동작한다. 이를 통해 메모리 할당 비용..
SSAFY를 진행하면서 개인 프로젝트로, Github README에 블로그 포스팅을 SVG 이미지 박스 형태로 띄워주는 위젯을 개발했었다. 적극적으로 홍보해서 사용자를 늘리고 싶은 마음은 있었지만, 아직 완성도가 낮다고 판단하여 그런 행동을 취하지는 않았었다. 그리고 SSAFY가 끝나고, 취업 준비를 하면서 바쁜 와중에 시간을 조금씩 투자하여 개선을 해보려고 한다. [토이 프로젝트] 블로그를 깃허브에 효과적으로 노출시키는 방법많은 개발자들의 고민 나는 깃허브 리드미에 내 블로그를 홍보하기 위해 링크를 해 놓곤 한다. 하지만, 이 전의 내 깃허브 리드미에는 아래와 같이 a 태그를 이용한 조촐한 이미지 링크만 띄워olrlobt.tistory.com GitHub - olrlobt/blog-widget: Gi..
전략 패턴(Strategy Pattern)과 팩토리 패턴(Factory Pattern), 레지스트리 패턴(Registry Pattern)은 객체지향 설계에서 자주 사용되는 디자인 패턴이다. 해당 패턴 모두 객체 생성 및 행위 관련 문제를 해결하는데 도움을 주는데, 전략 패턴과 팩토리 패턴, 레지스트리 패턴을 결합하여 사용하는 경우 장점을 극대화하고, 더 유연하고 확장 가능한 시스템을 만들 수 있다. 오늘이 이 패턴들을 정리하면서, 개인 프로젝트에 어떻게 적용하였는지 알아보자. 전략 패턴(Strategy Pattern)전략 패턴(Strategy Pattern)은 객체지향 디자인 패턴 중 하나로, 실행 중에 알고리즘을 선택할 수 있게 하는 행위 소프트웨어 디자인 패턴이다. 이 패턴은 동일한 문제를 해결하..
SSAFY 2학기 공통 프로젝트에서 INFRA를 맡았었다. 처음 해보는 인프라였기에 개발서버와 운영서버를 분리할 생각조차 하지 못했고, 프로젝트를 진행하면서 프론트 API 연결작업을 할 때는 운영서버의 API를 가져와 사용했다. 그러다 보니, 배포 과정에서 Downtime이 생기게 되어 서버가 재실행되는 동안 FE에서 API 연결 작업을 할 수 없는 불편함을 느꼈다. 이후, 개발서버 분리와 무중단 배포에 대해서 알게 되었고, 개인적으로 도전하고 싶어서 자율 프로젝트 때 팀원들에게 이 부분은 꼭 내가 하고 싶다고 말했었다. 이번 포스팅에서는 무중단 배포에 대해 알아보고, 자율 프로젝트에서 어떤 식으로 구현했는지 정리해 본다.다운타임 (Downtime)서버가 올라가는 동안 API 호출이 불가능한 상태를 일..
[회고록] 싸피9기 인터뷰 탈락 후기싸피 9기 합격자가 발표된 지 2주가 지났다. 추가합격이 될지 모른다는 희망에 탈락 후기를 미루었었는데, 이제는 그냥 마음을 접고 공부를 열심히 하기로 정해서, 탈락 후기를 쓰며 실수를 반복olrlobt.tistory.com [회고록] 싸피 10기 합격 후기[회고록] 싸피9기 인터뷰 탈락 후기 싸피 9기 합격자가 발표된 지 2주가 지났다. 추가합격이 될지 모른다는 희망에 탈락 후기를 미루었었는데, 이제는 그냥 마음을 접고 공부를 열심히 하기로 정olrlobt.tistory.com [SSAFY/회고록] 싸피 10기 1학기 수료와 스터디 경험 회고[회고록] 싸피9기 인터뷰 탈락 후기 싸피 9기 합격자가 발표된 지 2주가 지났다. 추가합격이 될지 모른다는 희망에 탈락 후기를..
Maven Central RepositoryMaven Central Repository는 Maven 프로젝트를 위한 공개 아티팩트(Artifact) 저장소이다. 전 세계 개발자들이 개발에 활용할 수 있도록 수많은 라이브러리와 프레임워크, 플러그인을 중앙에 모아두고 공유하는 공간이다. 우리 같은 개발자들은 흔히 mvnrepository를 통하여 쉽게 라이브러리들을 찾고는 하는데, 이 mvnrepository는 Maven Central Repository나 다른 저장소들의 아티팩트를 인덱싱하는 웹사이트이다. 쉽게 말해 mvnrepository은 검색 엔진이고, Maven Central Repository은 실제 파일이 올라가는 저장소로 생각하면 된다. Maven Central 공식 홈페이지 Maven..