안녕하세요, Openlist 팀의 백엔드 기술에 관심을 가져주셔서 감사합니다! 🚀

오늘은 복잡하지만 매력적인 **Pipe & Filter 아키텍처**와 이를 적용한 **서버 인스턴스 분리 방식**에 대해 이야기해볼까 합니다. 이 구조는 각각의 서비스가 독립적으로 작동하면서도 서로 연결되어 있는 형태를 취합니다.

먼저, 우리 팀이 가지고 있던 문제점에 대해서 먼저 알려드리겠습니다.

배경

Untitled

서버 측에서는 앱으로부터 지정된 엔드포인트로 요청이 오면, 요청에 포함된 데이터를 가지고 네이버의 생성형 인공지능인 CLOVA Studio api에게 데이터 생성을 요청하고 받은 데이터를 파싱해서 다시 앱쪽으로 응답을 쏘는 구조였습니다.

Openlist 팀의 서버에서 어떻게 CLOVA Studio API 키를 발급받아서 연동했는지는 아래 포스트를 참고해주세요!

👉🏻 NestJS 서비스에서 CLOVA Studio API 연동 👈🏻

고민

문제점은 바로 CLOVA Studio에서 데이터를 생성하는데 걸리는 시간이었습니다. 너무 오래걸린다는거죠.

요청 100번으로 테스트해보니 평균적으로 6.3초의 시간이 소요됨.

요청 100번으로 테스트해보니 평균적으로 6.3초의 시간이 소요됨.

저를 포함한 우리 팀 백엔드 개발자들이 6주라는 짧은 시간 안에 인공지능 모델을 최적화시켜 api의 응답시간을 줄이기엔 너무 촉박했습니다. 그래서 다른 방법을 모색했습니다.

해결

여기서, 지속적인 피드백 방식에 대해서 좀 더 고민했습니다.🤔