개발자
안녕하세요 대학교에서 졸프를 하고있는데 주제는 정했고, 이제 어떻게 구현해야할지 그때그때 학습하면서 부딪혀보자 라는 마인드로 하고 있습니다. 본론으로 들어가면 3개의 레이어(?)로 나눠서 하나는 음성을 녹음하는 역할만 수행 다른하나는 음성을 그때그때 텍스트로 변환(TTS) 나머지하나는 음성에 대한 질문 처리 및 대답 반환 이런식으로 역할을 나눠서 그 일만 하게 하고 싶은데 이런식으로 구현이 가능한가요? 어렴풋이 분산시스템, 람다아키텍처 등등을 알아보다가 좀 어려운 것 같아서 해당하는 부분이 구현이 가능한지, 가능하다면 어떤 무엇을 써야할지 (Ex. AWS lambda) 같은 조언 해주실 수 있다면 대단히 감사하겠습니다.
답변 1
1. 분산 시스템 사용 - 분산 시스템이라고 개념은 어렵지 않습니다. 그냥 컴퓨터 여러대 쓰는겁니다. 분산 시스템에서 레이어는 컴퓨터 한 대로 생각하셔도 됩니다. 각 기능을 처리하는 어플리케이션을 각 컴퓨터에 배포하고 실행하세요. 질문에 작성하신 요구사항은 각 컴퓨터간 동기화 및 스트리밍이 필요합니다. gRPC 등을 이용하세요. ## 졸작을 위해 추천하는 방식인가? - 굳이?... 2. 서버리스(람다 등) 또는 엣지 사용 - 람다 같은 서버리스 서비스는 상시 구동 되는 서버를 두는게 아니라 때에 따라 필요한 함수만 실행시키는 방식으로 사용합니다. 각 레이어는 실행시킬 '함수'에 대응된다고 생각하셔도 됩니다. 상태 저장이나 동기화 위해 upstash(https://upstash.com/) 같은 서비스 사용을 권장합니다. ## 졸작을 위해 추천하는 방식인가? - 람다를 쌩으로 쓰지 않아도 원하는 기능을 제공하는 AWS 서비스들이 있습니다. 람다는 다른 AWS 서비스들을 호출하는 용도로 사용한다면 생각보다 쉽게 만들 수도 있을거 같습니다. 3. 그냥 컴퓨터 하나에 개발하기 - 1,2번에서 설명된 방식말고 그냥 컴퓨터 하나에서 개발해도 됩니다. 꼭 다른 기능들이 필요하다고 컴퓨터가 여러개 필요한건 아니니까요. 멀티프로세싱, 멀티스레딩, 이벤트 드리븐 등 다수의 요청을 처리하는 방법론을 채택하여 개발하시면 됩니다. ## 졸작을 위해 추천하는 방식인가? - 컴퓨터에 대한 이해도를 높힐 수 있습니다. 또한 시스템 콜 사용에 대한 경험을 할 수 있는 방식입니다. 어떤 서비스를 만들겠다는 마음보다 배움의 목적이 크다면 추천합니다.
지금 가입하면 모든 질문의 답변을 볼 수 있어요!
현직자들의 명쾌한 답변을 얻을 수 있어요.
이미 회원이신가요?
지금 가입하면 모든 질문의 답변을 볼 수 있어요!