brunch

서버리스 AI 서비스 풀스택 강의 제작기

강의 제작은 개발 시간보다 10배 이상 시간이 많이 든다는 것을 몰랐다.

by 배울장

이전에 만들었던 AI 반려동물 그림 서비스 레이몽에 관해서 개발하고 작성한 글이 있다.

https://brunch.co.kr/@entaline/40

서버리스로 제작되어 아무도 사용하지 않으면 유지비용이 없고 수년째 적은 유지보수로 서비스하고 있다.

이 글은 위 레이몽 서비스를 어떻게 개발하는지 알려주는 강의를 만들게 된 제작기이다.


왜 서버리스인가?

나는 유지비용을 굉장히 두려워하기 때문에 항상 돌아가는 서버가 필요없는 서버리스를 주로 사용하는데, 레이몽 서비스가 그렇다. 아무도 사용하지 않으면 돈이 청구되지 않는다.

어떤 서비스를 개발할 때 서버비용도 못낼 것 같은 서비스를 왜 개발하고 출시하냐는 질문을 스스로 하곤 한다. 물론 맞는 말이다. 아무도 안쓸 것 같은 두려움에 대한 방어기제랄까.. 여튼 일단 서버리스같은 복잡한 것으로 하지 말고 일단 최소기능제품으로 출시해보고 시장에 먹힐 것 같으면 추가로 자원을 투입해서 개발하는 것이 맞긴하다. 그런데 이것 저것 많이 개발해보니 타이밍도 아주 중요하다는 것을 느꼈다. 서비스가 출시되고 할 수 있는 여러 마케팅을 해본 뒤 기미가 없다고 서비스를 접으면 나중에 관련 서비스들이 주목받기 시작할 때 클 수 있는 기회를 놓치게 된다. 그때 까지 버티기 위해 좀 번거롭고 어렵더라도 항상 서버리스를 기반으로 개발하는 습관을 갖게 되었다. 물론 이용자가 몰렸을 때 기존 서버는 증설을 해야하는 번거로움이 있지만 서버리스는 알아서 확장을 해주기 때문에 집중적인 트래픽에도 이점이 있어서 서버리스 기반으로 개발을 한다.

그렇게 서버리스를 기반으로 출시한 레이몽은 2년이 지나도록 안정적으로 서비스를 운영하고 있다. 중간에 모델이 바뀌는 업데이트가 있는 것을 제외하고는 딱히 유지보수에 시간도 들이지 않았다.

추가적으로 1번의 서비스를 제공하는데 정확한 단가를 계산할 수 있어서 가격 책정에도 아주 유리하다.


왜 강의를 만들게 되었는가?

레이몽을 출시하고 일반 소비자들에게 매출이 일어나고 이슈가 되기보다는 개발자 혹은 개발 공부를 하는 분들에게 더 많은 문의를 받았다. 생각보다 서버리스의 개념에 대해 많은 분들이 모르고 있었고 심지어 AI 서비스를 운영하고 있는 분에게 서버리스를 설명해드렸더니 그런게 있냐며 도입하고 싶다고 하셨다. AI가 등장하기 전 서버리스는 아주 마이너했고 이점이 크지 않았다. 일반적인 서비스는 한달에 3만원이면 작은 서버를 계속 유지할 수 있고 꽤나 많은 트래픽을 감당할 수 있다. 하지만 AI가 등장하고 그래픽카드에 많은 수요가 생기고 한달이 아닌 1시간에 몇만원에 달하는 서버비용을 내야할 수도 있다. 이는 부담이 크다. 계속 수요가 있다면 서버를 두는 것이 이득이겠지만 개인, 스타트업이 하는 소규모 서비스 중 24시간 내내 돌아가지 않아도 된다면 서버리스를 택하는 것이 금전적, 확장성면에서 이점이 있다. 이러한 배경으로 서버리스에 관한 수요가 점점 증가하고 있다. 하지만 서버리스를 활용하기 위해서 알아야 할 것이 매우 많고 한국어로 되어있는 자료는 더욱 찾기 힘들다. 더욱이 한번에 풀스택으로 알려주지 않다보니 여기저기 흩어져있는 지식을 합쳐야 하는데, 그러다보면 필연적으로 알 수 없는 에러에 봉착해 포기하기 일쑤다. 이에 한국어로 도커기반 AI 서버리스 구축부터 백엔드 서버리스 API, 프론트엔드를 모두 다루는 강의를 제작하게 되었다.


강의의 특징

많은 내용을 다루다보니 하나하나 깊게 들어가기보다는 "이것은 이러한 역할을 하는 것이고 이렇게 사용한다. 여기서 만약 이렇게 바꾸고 싶다면 여기를 수정하면 된다." 이 정도로 언급을 하고 넘어간다. 만약 각 항목을 깊게 배우고 싶으시다면 본 강의를 들을 때는 전체적인 구조를 파악하는데 집중하며 수강하고 난 뒤 하나하나 깊게 설명해주는 강의를 따로 추가로 들으시는 것을 권해드린다.

프로젝트 생성부터 같이 진행하지만 코드를 따로 작성하기 보다 현재 필요한 코드를 복사-붙여넣기 한 뒤 코드를 설명해드린다. 많은 강의들이 같이 코드를 작성하면서 진행하는데, 시간이 너무 소요된다고 느꼈기에 본 강의는 같이 한글자 한글자 작성하지 않는다. 우선 지금 구현할 것을 말씀드리고 그 기능과 관련된 코드를 노트에서 복사한 뒤 필요한 곳에 붙여넣기 한 후 코드에 관해 설명을 드린다. 그리고 어떤 부분을 바꾸면 어떻게 바뀌는지 간략한 예시를 드리면서 전체적으로 어떤 기능에 영향을 미치는지 파악하실 수 있게 구성하였다.

이미 알고 있는 부분은 빠르게 넘어가실 수 있도록 속도감 있게 구성하였다. 이해를 못하셨거나 놓쳤다면 뒤로가서 다시 들으시고 이해하신 뒤 넘어가시는 것을 추천드린다. 그래서 평균적으로 수강하는데 강의 시간에 나와있는 시간보다 더 오래걸린다.


강의를 듣게되면 얻는 것

AI로 반려동물 그림을 그려주는 서비스를 개발하게 된다. 풀스택이기 때문에 구성하고 싶은 서비스에 따라 코드를 수정하거나 추가하여 개발할 수 있다. 예를들면 반려동물 기반이지만 사람과 관련된 것으로 변경하여 서비스를 출시할 수 있고 개발한 AI 서버리스 파이프라인을 기반으로 커스텀 모델을 활용해 이미지가 아닌 완전 다른 서비스도 개발할 수 있게 된다. 자바스크립트를 주로 사용하며 도커, SST, AWS 등 다양한 플랫폼을 활용해 보는 경험을 하실 수 있다. 추가적으로 기존에 있는 API를 활용해서 개발하는 것이 아니라 API 자체를 개발하는 강의이기 때문에 서버리스 백엔드 개발 경험도 할 수 있다.


강의를 제작하면서 느낀점

내가 알고있는 것과 누군가에게 알려주는 것은 큰 차이가 있다는 것을 알았다. 난 이미 잘 알고있다고 생각했던 부분도 남에게 설명하려니 계속 팩트체크를 하게되었다. 잘못알고 있던 부분도 있고 내가 짠 코드지만 왜 이렇게 짰는지 이해가 안가는 부분도 있었다. 그래서 강의를 다 찍고 난 뒤에 이렇게 강의를 구성하면 안되겠다고 판단하여 다 지우고 처음부터 다시 짜임새있게 강의를 새로 구성하고 다시 찍었다. 그리고 강의를 제작하면서 나의 지식이 더 단단해진 느낌이 들었다. 결국 누군가에게 설명을 해줄 수 있어야 제대로 이해한 것이 맞았다. 남에게 알려주기 위해 강의를 찍었지만 내 공부를 하게된 느낌이다.


혹시 부족한 강의이지만 들어보고 싶으시다면 이 링크를 클릭하고 살펴봐주시면 감사하겠다.

keyword
작가의 이전글로봇 시뮬레이션 강화학습 Isaac Gym 짧은 사용기