본문 바로가기

전체 글

(14)
[트러블 슈팅] 멀티모듈에서 JaCoCo와 SonarCloud를 적용하여 코드 품질 높이기 도입어느 날 팀원이 SonarCloud를 적용한 글을 공유했다. 글을 읽어보니, 빠르고 간단하게 코드 품질을 높일 수 있을 것 같아 원데이히어로 프로젝트에 도입하기로 했다. 원데이히어로 프로젝트는 멀티모듈이다. 이번 글에서는 멀티모듈에서 jacoco와 SonarCloud를 어떻게 적용했는지 왜 도입했는지 이야기 해보겠다. SonarCloud란? SonarCloud은 정적 코드 분석 도구 중 하나인 SonarQube의 SaaS 버전이다. 여기서 정적 코드 분석이란, 코드 레벨에서 발견할 수 있는 코드 스멜, 잠재적 결함, 컨벤션 체크, 보안 취약점 등을 분석해서 보고해준다. SonarCloud는 SonarQube와 달리 서버에 설치하지 않아도 되지만, SonarQube만큼 많은 기능을 제공하지 않는다. 하..
[트러블 슈팅] 이벤트로 알림 서비스와 느슨한 결합 만들기 원데이히어로 프로젝트에서 알림 기능을 구현했다. 프로젝트 요구사항에 따르면 미션 플로우가 진행될 때마다 실시간으로 알림을 보내줘야 했다. 여기서 미션은 프로젝트 내의 도메인 용어로 단기 알바, 심부름 요청을 뜻한다. 이번 글에서 실시간 알림을 구현하면서 겪었던 문제와 이러한 문제를 어떻게 해결했는지 그리고 남아있는 문제는 무엇인지 공유해보겠다. 먼저 미션 서비스 로직 수행부터 알림을 보내는 로직까지 코드는 다음과 같은 흐름으로 동작한다.미션 서비스 로직 수행RDB에서 알림을 위한 데이터를 조회NoSQL에 알림을 저장SSE(Server-Sent-Event)를 통해 알림을 전송여기서 왜 알림 서비스의 메인 데이터베이스를 NoSQL로 선택했는지, SSE로 실시간 알림을 구현했는지는 이 글의 주제와 동떨어진 이..