기술적 이슈 정리(8)
-
이벤트는 무엇이고 언제 사용해야할까
MSA, 혹은 멀티 모듈 같이, 하나의 애플리케이션 서버를 도메인 혹은 사내 규정에 따른 기능을 기준으로 분류하는 서비스들은 거의 예외 없이 ‘이벤트’ 프로그래밍을 선호합니다. 그러다 보니, 요즘에는 거의 rabbitMQ 혹은 kafka를 사용할 줄 알아야 하는 경우가 많습니다. 그러나, 이 두 기술 중 하나 혹은 혼용해야 한다는 것은 결국 별도의 ‘브로커 서버’가 추가되는 것이고 서버가 추가된다는 것은 네트워크 통신 횟수가 늘어난다는 뜻입니다. 따라서, 만약에 ‘이벤트’ 프로그래밍을 왜 해야 하고, 선택에 따른 트레이드오프를 계산할 줄 모른다면, 오히려 서비스의 응답시간을 늘리는 요소가 될 수 있습니다. 이벤트? 이벤트의 사전적 의미는 ‘사건’입니다. 그런데, 프로그래밍 용어는 정말 평범한 용어를 참 ..
2023.08.22 -
DB와 애플리케이션간의 동시성 이슈 발생 및 해결과정
예전에 취업 준비를 하던 시절, 개발 선배 혹은 면접에서 자꾸 CS의 중요성을 강조하다보니, 그냥 하라니까 하는.. 다소 막연한 이유로, CS 공부를 병행했었다. 그런데, 이번에 실무를 진행하면서, 원인을 알 수 없는 버그를 고치기 위해, 여러 가지 시나리오를 가정하고 해결해 가는 경험을 갖게 되었다. 이 과정에서 CS에 대한 이해도의 중요성을 새삼 깨닫게 되어, 이렇게 글로 정리해보기로 한다. 1. 상황 사내 프로젝트로 제2 금융권 커머스 앱에 적용할 NFT 마켓 api 개발중, 이더리움 노드 모니터링 에이전트가 제대로 동작하지 않는 이슈가 발생했다. 개발 환경에서 돌아가는 노드는 총 4개로 각 노드별로 서버의 리소스 점유율 및 블록체인 정보를 모니터링하는 에이전트가 설치되어 있다. 정상적이라면 총 4..
2023.04.05