😀 Jerry/면접 질문

[1분 면접] 시스템 간 비동기 연동 방식에는 무엇이 있나요 ?

Jerry_K 2025. 4. 7. 12:08

📌 면접 답변

분리된 시스템 간의 비동기 연동은 시스템의 결합도를 낮출 수 있다.

호출된 시스템의 응답을 기다리지 않으므로 더욱 빨리 사용자의 요청에 응답할 수 있다.

비동기 연동 방식으로 메시징 시스템 활용, 데이베이스 활용, CDC, Webhook 방식 등이 있다.

 

 

메시징 시스템(메세지 큐) 활용

  • 두 시스템 사이에 메시징 시스템을 두어 비동기로 연동
  • 한 시스템에서 메시지를 생성해서 메시징 시스템에 송신
  • 다른 시스템에서 메시징 시스템으로부터 메시지를 읽어와 메시지 처리
  • 주로 Kafka, RabbitMQ가 주로 메시징 시스템으로 활용
  • 처리량이 높은 것이 장점이지만, 메시지 유실, 메시지 소비 순서, 트랙잭션에 대한 고민이 필요

 

 

데이터베이스 활용

  • 데이터베이스를 메시징 시스템처럼 사용하는 방법
  • 시스템 A가 DB에 메시지를 저장하고, 시스템 B가 주기적으로 해당 테이블을 Polling
  • 이 방식은 트랜잭션, 순서 보장 등의 장점을 가짐
  • 하지만 메시지 포맷 변경 시 스키마도 함꼐 수정해야하므로 유연성이 떨어질 수 있음
  • 또한 Polling 방식에 대해 고민 필요

 

 

CDC (Change Date Caprue)

  • DB의 변경 로그를 읽어 다른 시스템에 반영하는 방식
  • 트랜잭션 단위로 정확한 변경 사항을 전달할 수 있음
  • 따라서 정확도가 높고 별도의 메시지를 생성하지 않아도 됨
  • 하지만 로그 기반으로 "왜 바뀌었는지" 같은 추가 정보 부족

 

 

Webhook

 

  • 이벤트 기반 비동기 통신 방법
  • 어떤 시스템에서 특정 이벤트가 발생했을 때, 다른 시스템의 URL로 HTTP 요청을 보내는 방식
  • 발신자는 수신자의 Webhook URL을 미리 등록 
  • 실시간성이 뛰어나고 구현이 간단하다.
  • 하지만 네트워크 오류 시 재전송, 보안 처리 등 추가적인 고려 사항 존재

📌 내 답변

비동기...? JS의 비동기같은건가 ...

 

 

Self Feedback

  • 몇 개는 들어보았지만 ... 뭐 제대로 모르니 답 할 수 없었다. 

[출처 및 참고 자료]

https://www.maeil-mail.kr/question/137

 

매일메일 - 기술 면접 질문 구독 서비스

기술 면접 질문을 매일매일 메일로 보내드릴게요!

www.maeil-mail.kr