개발자

프론트 next와 rust 사이에서의 kafka 통신

2024년 09월 26일조회 143

회사에서 프론트로 nextjs 쓰고있고 백으로 rust 사용하고 있습니다.(백 서버1, 프론트 1) 들어온지 얼마 안되었고 카프카가 좋다고 카프카 쓴다고 해서 그냥 그런게 있구나하고 UI나 기초적인거 짜고 이제 next에서 카프카 작업 하고있는데요 막상 시작하려니 nextjs에서 모든 데이터(유저 정보와 같은 정적인 데이터 포함)를 next 서버로부터 카프카 통신을 통해 들어오는 데이터들을 클라이언트에서 감지하려면 모든 페이지에서 웹소켓을 도입해야하는 상황입니다.. 제가 알고있는 게 맞나요? 백 서버 한개있는 프로젝트에서 카프카를 도입하는게 일반적인 일인가요..? 제가 해왔던 백-프론트 통신과 너무 달라서요 채팅같은 실시간 데이터가 필요하지 않은 곳에 웹소켓을 연결해야 하는 뿐더러 next app router에서 웹소켓을 연결하려면 별도의 node 서버를 두어야 하는 것 같은데 맞을까요? 아니면 웹소켓 말고도 카프카로 날아오는 데이터를 next 프론트쪽에서 받아올 수 있는 방법이 있나요? 정적인 데이터들은 api fetch 날려서 받아오면 된다고 생각했는데 모든 데이터를 카프카로 받아오고 있고 이를 실시간으로 확인해야하는 번거로움이 따라오는 것 같습니다.. 단지 유저정보를 받아오는데 웹소켓을 연결하는게 도저히 아닌 것 같아서 글 올려봅니다. 마감기한이 얼마 남지 않았는데 어려운걸 되게 해야하는 것도 아니고 안되는걸 되게 하라고하니 이게 맞나 싶어서요 .. 이러한 경우들이 있는지 현업자분들 도움 부탁드립니다. 공부해보니 카프카라는 기술 자체가 DB를 가진 백 서버들간의 통신에서 빛을 보기 위해 도입한다고 하는데 애초에 지금 진행하고 있는 프로젝트는 백 쪽 DB 1개입니다. 현재 프로젝트에서 카프카를 도입하는 것은 오버엔지니어링 같음은 물론 비용적인 면에서도 절대 도입할 이유가 없다고 생각하는데, 의견 부탁드리겠습니다.

이 질문이 도움이 되었나요?
'추천해요' 버튼을 누르면 좋은 질문이 더 많은 사람에게 노출될 수 있어요. '보충이 필요해요' 버튼을 누르면 질문자에게 질문 내용 보충을 요청하는 알림이 가요.
profile picture
익명님의 질문

답변 0

답변이 없을 때 보이는 아이콘

첫 답변을 기다리고 있어요.

지금 가입하면 모든 질문의 답변을 볼 수 있어요!

현직자들의 명쾌한 답변을 얻을 수 있어요.

또는

이미 회원이신가요?

AI 답변
커리어리 AI 봇 프로필 이미지

커리어리 AI 봇

GPT가 달아주는 답변입니다.

2024년 09월 26일

카프카를 클라이언트 측에서 직접 사용하는 것은 일반적이지 않습니다. 카프카는 보통 백엔드에서 많은 양의 스트림 데이터를 처리하기 위해 사용되며, 확장성과 병렬처리 능력으로 인해 대용량 이벤트 스트리밍에 많이 활용됩니다. 일반적으로 클라이언트가 서버로부터 데이터를 받아오는 방식은 HTTP 요청 (예: REST API 호출)입니다. 웹소켓은 실시간 통신이 필요한 경우에 주로 사용됩니다. 예를 들어, 채팅 애플리케이션, 실시간 경매 사이트, 멀티플레이어 게임 등에서 자주 볼 수 있습니다. 하지만 이 경우 모든 페이지에서 실시간 업데이트가 필요하다면 가장 간단하고 일반적인 방법은 서버 센트 이벤트(Server-Sent Events, SSE), 롱 폴링(long polling), 등을 고려해보세요. 선택한 기술 또는 아키텍처가 반드시 최선의 선택인지 항상 점검하는 것도 중요합니다. Kafka를 도입한다면 추가 복잡성, 관리 비용과 배울 내용들을 고려해야합니다. Kafka는 프론트엔드와 백엔드 간의 통신 용도로 설계된 것이 아니므로, 이 경우에는 REST API나 GraphQL 등을 사용하는 것이 더 합리적일 수 있습니다. 정적 데이터들은 정말로 API fetch를 통해서 받아오는 것이 적절하며, 이런 방식은 웹 애플리케이션에서 매우 일반적입니다. 따라서, 전체 시스템 설계를 다시 한 번 점검해보면 좋겠습니다. 어떤 요구 사항 때문에 Kafka가 선택되었는지, 그리고 클라이언트가 실시간 업데이트를 필요로 하는지 등의 정보가 필요할 것 같습니다.

목록으로

지금 가입하면 모든 질문의 답변을 볼 수 있어요!