📌 면접 답변
분리된 시스템 간의 비동기 연동은 시스템의 결합도를 낮출 수 있다.
호출된 시스템의 응답을 기다리지 않으므로 더욱 빨리 사용자의 요청에 응답할 수 있다.
비동기 연동 방식으로 메시징 시스템 활용, 데이베이스 활용, 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
'😀 Jerry > 면접 질문' 카테고리의 다른 글
[1분 면접] 관계형 데이터베이스와 비 관계형 데이터베이스의 차이점은 무엇인가요? (0) | 2025.04.04 |
---|---|
[1분 면접] HTTP/1.1과 HTTP/2.0에 대해서 설명 (0) | 2025.04.03 |
[1분 면접] 프로세스보다 스레드의 컨텍스트 스위칭이 더 빠른 이유 (2) | 2025.04.02 |
[1분 면접] Redis가 싱글 스레드로 만들어진 이유 (0) | 2025.04.01 |
[1분 면접] 스케일 아웃과 스케일 업의 차이점 (0) | 2025.03.31 |