본문 바로가기

분류 전체보기

(179)
모니터링(Monitoring) 개요예전에 모니터링을 적용하기 위해 기술 블로그를 통해 정리한 적이 있지만, 이번에 강의를 통해 다시 배운 내용을 정리해 볼 것이다. Spring boot 모니터링 with Prometheus, Grafana애플리케이션 모니터링 애플리케이션에서 발생하는 동작들에 대한 메트릭을 수집하여 애플리케이션 성능을 분석하는 분야로 모니터링을 통해 서비스 개발 과정에서는 동작을 확인할 수 있고,eleunadeu.tistory.com 모니터링(Monitoring)시스템, 애플리케이션, 인프라의 성능과 상태를 지속적으로 관찰하고 데이터를 수집하여 이상 징후나 오류를 감지하는 프로세스.문제를 신속하게 해결하고 시스템 가용성을 유지할 수 있다.주요 목적가용성 확보: 서비스 중단을 방지하고 안정적인 운영 보장성능 최적화: 성..
프로젝트 회고 개요약 2주간의 짧았던 MSA 프로젝트를 진행하면서 팀원들의 겪었던 어려웠던 점과 배운 것에 대해 정리한다. 프로젝트 Repository GitHub - Na-vi-9/msaContribute to Na-vi-9/msa development by creating an account on GitHub.github.com 트러블 슈팅Gemini Ai - 학습 데이터 관련원인: AI에게 요청을 보내는 과정에서 모델의 학습 데이터를 제대로 파악하지 못해서 원하는 수준의 답변을 얻지 못했다.팀원이 겪었던 사항으로 프로젝트 마감 기간에 쫓겨 제대로 AI를 활용하지 못했기 때문에 발생한 문제라고 생각 된다.추후 AI를 사용하게 될 일이 있다면 사용방법이나 요청에 필요한 데이터 등에 알아보거나 다른 사람들이 사용한 코..
Open Route Service API 사용 개요프로젝트에서 배송 거리 및 소요시간을 계산하기 위해서 Open Route Service API를 활용하기로 했다. Open Route Service(ORS)위치 기반 서비스를 제공하는 오픈 소스 경로 계획 API 플랫폼 주요 기능: 경로 계획 (Routing): 자동차, 자전거, 도보 등 다양한 이동 수단에 대한 경로 계산.거리 매트릭스 (Distance Matrix): 여러 지점 간의 거리 및 이동 시간 계산.지오코딩 (Geocoding): 주소를 좌표로 변환하거나 좌표를 주소로 변환.POI 검색 (Places): 특정 범위 내 관심 지점(Point of Interest) 검색.지형 분석 (Isochrones): 특정 위치로부터 주어진 시간이나 거리에 도달할 수 있는 영역 계산.장점: 무료 및 오픈..
프로젝트 문제 해결(역직렬화, git 에러) 개요프로젝트를 진행하며 발생했던 문제 중 해결하는 데 어려움을 겪었던 사항들에 대해 기록하고 추후 같은 문제가 발생했을 경우 정리한 글을 바탕으로 좀 더 빠르게 해결할 수 있도록 할 것이다. Json 직렬화, 역직렬화 문제1. Cache 설정2024-12-11T14:07:10.569+09:00 ERROR 25596 --- [hub] [io-19094-exec-2] [67591dfe8cd348ded9a885facc780af9-d9a885facc780af9] c.s.m.h.p.e.GlobalExceptionHandler : Cannot serialize2024-12-11T14:07:10.606+09:00 ERROR 25596 --- [hub] [io-19094-exec-2] [ ..
QueryDSL - 2 QueryDSLQueryDSL - 래퍼런스 문서 QueryDSL 정적 타입을 이용해서 SQL과 같은 쿼리를 생성할 수 있도록 해주는 오픈소스 프레임워크. QueryDSL이 제공하는 Fluent API를 이용해 코드 작성의 형식으로 쿼리를 생성할eleunadeu.tistory.com  페이지네이션 Offset vs Cursor개요팀 프로젝트에서 주문관리 시스템을 개발했는데 각종 정보에 대한 조회 기능이 필요했고, 프로젝트 요구사항에 QueryDSL 등을 활용한 pagination이 필요했다. Pagination(페이지네이션)?대량의 데eleunadeu.tistory.com 개요프로젝트에서 조회 시 성능 향상을 위해 QueryDSL을 사용해 pagenation 구현했다.심화 과정의 특강을 통해 QueryDS..
DDD(Domain-Driven Design) 개요Java 심화과정의 특강 주제였던 DDD에 대해 간단하게 정리하고 프로젝트에 적용시킬 수 있도록 구현 방법을 배워볼 것이다. DDD(Domain-Driven Design)?복잡한 소프트웨어 개발에서 도메인 중심으로 설계를 진행하는 접근 방식.특징도메인 중심 설계: 비즈니스 로직이 중심이 되며, 기술적 구현보다 도메인 모델을 우선한다.유비쿼터스 언어 사용: 개발자와 비즈니스 전문가가 동일한 언어로 소통하여 오해를 줄인다.계층화된 아키텍처: 애플리케이션 계층(프레젠테이션, 응용, 도메인, 인프라)으로 나눠 역할을 눈리한다.도메인 모델의 명확한 경계: 바운디드 컨텍스트로 경계를 정의하고 모델 간 상호 작용을 관리한다.장단점장점비즈니스 로직 명확화: 복잡한 비즈니스 로직이 코드로 명확하게 표현된다.유지보수성..
SAGA 패턴 개요MSA 프로젝트에서 데이터의 일관성을 유지하기 위한 방법 중 하나인 SAGA 패턴에 대해 배우고 간단하게 적용해 볼 것이다. SAGA Pattern?분산 시스템에서 데이터의 일관성을 유지하기 위해 사용되는 설계 패턴으로, 하나의 분산 트랜잭션을 여러 개의 작은 로컬 트랜잭션으로 나누어 처리한다.이 패턴은 각 서비스가 독립적으로 동작할 수 있도록 설계되었으며, 분산 트랜잭션의 어려움을 해결하기 위한 방법 중 하나. SAGA 패턴 작동 방식Choreography 방식각 서비스가 자신의 작업을 완료한 후 다음 작업을 수행할 서비스를 호출하거나 이벤트를 발행한다.이벤트 기반으로 동작하며, 중앙 집중식 관리가 없다.서비스들이 서로 느슨하게 결합되어 있어 확장이 쉽다.단점: 서비스 간의 의존성이 높아질 수 있으..
Kafka - 기초 개요MSA 통신을 위해 사용되는 메시지 브로커인 Kafka, RabbitMQ 중 Kafka에 대해 배워볼 것이다. Kafka(Apache Kafka)분산 스트리밍 플랫폼, 주로 실시간 데이터 스트리밍 처리 및 메시지 브로커 역할.대규모의 데이터 스트림을 처리하고 저장하며, 다양한 소비자가 데이터를 실시간으로 구독할 수 있도록 설계. 주요 특징 및 기능 분산 시스템Kafka는 여러 노드에 걸쳐 데이터와 작업을 분산하여 높은 처리량과 내구성을 제공한다.내구성 및 확장성데이터는 디스크에 저장되며, 복제를 통해 장애가 발생해도 데이터 유실을 방지한다.수평 확장이 가능하여 데이터와 트래픽 증가에 대응할 수 있다.실시간 처리데이터를 실시간으로 생산(Producer)하고 소비(Consumer)할 수 있어 빠른 응답이..