
최근 면접에 가서 들은 질문이다. 정확히는 '장단점이 뭔가요' 였지만
그래서 잠깐 생각했는데, 단편적으로 일반적인 장단점을 말했다.
나의 경험으로써 장단점은 이렇다.
장점이 있으나, 단점도 명확하기에 한계가 있다. 실시간 서비스 등에는 적용하기 어렵다
공부하면서 만든 두번째 프로젝트를 서버리스로 굴리면서 들었던 생각이다.
돈 생각은 거의 없이 해도 되고,
리눅스/도커/https 등 지식이 없어도 되는 수준이고,
배포하며 부딛힐 많은 문제점이 해결되기에 매우 편하다.
하지만, 역시 완전한 서비스를 굴리기에는 부족하기에,
vercel + supabase + lambda 조합으로 간단한 서비스를 만들수도 있겠지만
여전히 제대로된 서비스를 서버리스로 굴리긴 어렵다.
효율적인 아키텍처, 안정적인 아키텍처, 빠른 속도가 중요한 아키텍처 등등등..
각 회사들이 목표로 하는 아키텍처가 있다.
"이 라이선스를 사서 쓰면 속도를 50ms 단축시킬수 있습니다"
"서버를 이만큼 늘리고, 저만큼 바꾸면 얼마나 빨라집니다"
"레디스로 캐싱하고, 카프카를 쓰면 최적화가 좋아지고.........."
하지만 이 모든 것들을 이기는건 바로 비용 이다.
라이선스, 서버, 레디스와 카프카를 잘 쓰는 개발자,
이 모두가 돈이다.
리소스는 제한돼있고, 결국 비용의 문제가 되기 마련이다.
나는 서버에 배포하여 서비스를 돌리는걸 마트 와 비슷하다고 생각한다.
마트는 물건을 먼저 사와서, 마진을 붙혀 우리에게 팔고
회사는 서버를 먼저 사와서, 서비스를 제공하여 돈을 받는다.
여기서 마트와 회사 둘 다 격는 문제가 있다.
도대체 몇명이 와서 얼마나 사갈것인가?
도대체 몇명이 접속해서 어느정도의 트래픽이 생길것인가?
답은? 모른다. 아무도 모른다.
갑자기 내일 내가 대통령이 돼서 내 포폴 페이지에 5만명이 올수도 있지 않은가?
수요가 적은 서비스라도, 코딩을 잘 몰라도, 돈이 없어도 괜찮다
CI/CD 지원, 공격은 업체가 막아주고, 호스팅/서버 필요 없음.
이는 시간, 경제적인 자원을 크게 아낄 수 있고, 이게 최대 강점이라고 생각한다.
(물론 서버리스라도 돈은 많이 나올수도 있지만)
경제적으로, 큰 강점을 갖고 있다고 생각한다.
끝!