January 27, 2024
기술 블로그 정리 # RabbitMQ란? # RabbitMQ란? # AMQP를 따르는 오픈소스 메시지 브로커 메시지를 많은 사용자에게 전달하거나, 요청에 대한 처리 시간이 길 때, 해당 요청을 다른 API에게 위임하고 빠른 응답을 할때 많이 사용한다. AMQP # Advanced Message Queueing Protocol MQ의 오픈소스에 기반한 표준 프로토콜을 의미한다.
RabbitMQ 개념 # 1. Producer # 메시지를 생성하고 발송하는 주체 이 메시지가 Queue에 저장된다. Producer는 Queue에 직접 접근하지 않고, 항상 Exchange를 통해 접근하게 된다. 2.
...
January 16, 2024
기술 블로그 정리 # 코드 분석 도구 적용기 - 3편, SonarQube 적용하기 # SonarQube란? # 정적 코드 분석 도구 # 정적 프로그램 분석(static program analysis) : 실제 실행 없이 컴퓨터 소프트웨어를 분석하는 것 정적 분석은 코드의 모든 부분을 확인할 수 있지만, 실행 환경에서의 상태를 정확히 알 수 없기 때문에 실행할 때에만 알 수 있는 데이터가 필요한 경우 정확히 분석하기 어렵다. SonarQube # 20개 이상의 프로그래밍 언어에서 버그, 코드 스멜, 보안 취약점을 발견할 목적으로 정적 코드 분석으로 자동 리뷰를 수행하기 위한 지속적인 코드 품질 검사용 오픈 소스 플랫폼 소나소스(SonarSource)가 개발 소나큐브는 중복 코드, 코딩 표준, 유닛 테스트, 코드 커버리지, 코드 복잡도, 주석, 버그 및 보안 취약점의 보고서를 제공 정적 코드 분석 도구 중 하나로, 레퍼런스가 많고, Github 또는 Jenkins와의 연동을 통해 자동 정적 코드 분석을 구성할 수 있다.
...
January 6, 2024
우아콘 2023, 우아한 형제들 세션 정리 # 대규모 트랜잭션을 처리하는 배민 주문시스템 규모에 따른 진화 # 성장통들 # 개선 대상 리스트 단일 장애 포인트 대용량 데이터 대규모 트랜잭션 복잡한 이벤트 아키텍처 단일 장애 포인트 # 루비라 불리는 중앙 집중 저장소에 모든 시스템이 의존 중앙 저장소의 부하 발생 해결 # 중앙 저장소 -> 각 시스템을 분리하는 프로젝트 진행 시스템 간 통신은 Message Queue 기반으로 통신 특정 시스템의 장애는 메시지 발행의 실패로 끝 정리 # 중앙 집중 DB의 장애, 전체 시스템의 전파 -> MQ를 이용한 이벤트 기반 통신으로 시스템간 영향도를 분리
...