1일 1CS(Computer Science)

시스템 간 비동기 연동 방식에는 무엇이 있나요?

표자 2025. 5. 28. 09:44

🔄 비동기 연동이란?  
서로 다른 시스템끼리 즉시 응답을 기다리지 않고 데이터를 주고받는 방식이에요.  
즉, 한 시스템이 데이터를 보내면, 다른 시스템은 시간이 지나서 받아서 처리할 수 있죠!  

🛠️ 대표적인 비동기 방식 3가지  
1️⃣ 메시징 시스템 활용 🚀  
   - 이메일을 보내고 답장을 기다리는 것과 비슷해요!  
   - A 시스템이 메시지 큐(Kafka, RabbitMQ 등)에 메시지를 저장하면, B 시스템이 나중에 읽어서 처리하는 방식이에요.  
   - 장점: 많은 데이터를 빠르게 처리 가능!  
   - 주의할 점: 메시지가 손실되지 않게 해야 하고, 데이터베이스 저장과 메시지 전송이 동시에 이뤄지도록 고민해야 해요.  

2️⃣ 데이터베이스 활용 🗄️  
   - 메모를 남겨놓고, 상대방이 나중에 읽는 방식이에요!
   - 한 시스템이 데이터베이스에 메시지를 저장하면, 다른 시스템이 주기적으로 읽어 처리해요.  
   - 장점: 메시지 순서와 데이터 안정성이 보장돼요!  
   - 주의할 점: 메시지 형식이 자주 바뀌면 데이터베이스 구조도 계속 바꿔야 해서 관리가 번거로울 수 있어요.  

3️⃣ CDC(Change Data Capture) 활용 🔎  
   - SNS 알림처럼! 데이터 변경이 생기면 자동으로 감지해서 전송해요.  
   - 한 시스템이 데이터베이스를 수정하면, 다른 시스템이 이를 감지해서 처리하는 방식이에요.  
   - 장점: 트랜잭션을 보장하고 복잡한 추가 로직이 필요 없어요!  
   - 주의할 점: 왜 바뀌었는지 알기 어려워서 상황에 따라 적절한 방법을 선택해야 해요.  

💡 한마디로!  
비동기 연동은 즉시 응답 없이도 시스템이 데이터를 주고받는 방식이에요.  
✔ 처리량이 많은 경우엔 메시지 큐!
✔ 데이터의 순서와 안정성이 중요하면 데이터베이스!
✔ 변경 사항을 자동으로 감지하려면 CDC!


시스템 간 비동기 연동 방식에는 무엇이 있나요?

백엔드와 관련된 질문이에요.

분리된 시스템 간의 비동기 연동은 시스템 간의 결합도를 낮출 수 있으며, 호출된 시스템의 응답을 기다리지 않으므로 더욱 빨리 사용자의 요청에 응답할 수 있다는 장점이 있습니다. 비동기 연동 방식으로 메시징 시스템 활용, 데이터베이스 활용, CDC 활용 방식을 알고 있습니다.

각 방식에 대한 설명과 고려 사항을 설명해 주세요. 😀

메시징 시스템 활용 방식은 두 시스템 사이에 메시징 시스템을 두어 비동기로 연동하는 방식입니다. 해당 방식은 한 시스템에서 메시지를 생성해서 메시징 시스템에 송신한 이후, 다른 시스템에서 메시징 시스템으로부터 메시지를 읽어와 메시지를 처리합니다. KafKa, RabbitMQ가 주로 메시징 시스템으로 활용됩니다. 해당 방식은 처리량이 높은 것이 장점입니다. 하지만, 메시지 유실, 메시지 소비 순서, 트랜잭션에 대한 고민이 추가적으로 필요합니다. 트랜잭션에 대한 고민을 더욱 말씀 드리자면, 1개의 트랜잭션 내에 메시지 전송과 데이터베이스 삽입이 존재한다고 했을 때, 데이터베이스 삽입이 실패했는 데 메시지는 전송되거나, 데이터베이스 삽입은 성공했는데, 메시지 전송이 실패한 경우를 떠올려 볼 수 있습니다. 만약 이러한 상황이 존재한다면, 2개의 작업을 어떻게 원자적으로 수행할 수 있을 지 추가적인 고민이 필요합니다.

데이터베이스 활용 방식은 데이터베이스를 메시징 시스템처럼 사용하는 방법입니다. 한 시스템에서 데이터베이스 테이블에 필요한 메시지 레코드를 추가하고 연동 시스템이 테이블을 주기적으로 읽습니다. 만약 새로운 메시지가 추가되면 연동 시스템은 다른 시스템으로 메시지를 전송합니다. 해당 방식은 트랜잭션과 메시지 순서가 보장되며, 메시지 유실에 대한 걱정이 없다는 것이 장점입니다. 하지만, 해당 방식은 범용성이 떨어질 수 있습니다. 메시지에 대한 형식이 빈번히 변경될때마다 메시지 레코드에 대한 스키마도 변경해주어야하기 때문입니다. 추가적으로 해당 방식은 삭제 정책과 읽기 빈도 등 추가적으로 고민해야할 부분들이 존재합니다.

CDC(Change Data Capture) 활용 방식은 데이터베이스의 변경 사항을 조회하여, 이를 다른 시스템에 전파하는 방식입니다. 가령 별도의 시스템이 변경 감지 대상 데이터베이스의 바이너리 로그를 조회하여 변경을 전파하도록 구현할 수 있습니다. 해당 방식은 트랜잭션이 보장되며, 메시지를 생성하거나 별도로 저장할 필요가 없으니 상대적으로 애플리케이션 로직이 단순하다는 장점이 있습니다. 하지만, 변경 로그만 존재할뿐 왜 바뀌었는지에 대한 추가적인 정보가 없기 때문에 사용하는데 제약이 존재할 수 있습니다.

728x90