여러번 글로 썼지만, 나는 큰 서비스를 만들어 본적도 없고, 큰 회사에서 일해본적도 없다.
다행히 개발이 적성에 맞고, 관심도 많아, 그런 곳에서 내는 아티클은 많이 읽은 편이다.
MSA가 유행하고, 트랜잭션 관리가 핵심 이슈로 떠오르고, MSA에서 트랜잭션을 보장하려는 시도가 여러 컨퍼런스에서 사례 공유가 됐었다.
필요는 이미 많은 사람이 알고 있었고, 문제를 해결하고 있었다.
그게 벌써 3~4년 전 쯤이다.
그러니, 회사에서 시도를 하고 있던 것은 훨씬 전일 것이라고 생각한다.
최근 회사에서 만드는 서비스의 규모가 커지고, 운이 좋게 외주 서비스도 개인으로는 개발/운영해볼 수 없는 규모를 겪으니 “필요”를 느꼈다.
단순히 스케일 아웃으로 서버만 늘리는 것이 아니라, 메시지 큐와 캐싱만 잘 활용해도 훨씬 효율적으로 운영이 가능하다.
얼추 구조로는 알고 있었다고 생각했는데, 여지껏 활용해야 겠다는 생각을 못한 것을 보면 또 그렇지 않았던 것이다.
단순히 FE, BE로 분리하여 스케일 아웃 + 캐싱을 해서 처리할 것이 아니었다.
메시지 큐와 함께 워커풀(Consumers)을 운영해야 하는 순간이 온 것이다.
어쩌면 서비스의 규모보다 조금 이르게 고려하는 것일 수 있지만, 너무 많은 것들을 이렇게 쌓아왔으니, 기대가 될 뿐이다.
이미 써본 사람은 우려점이 여러개가 있어서, 이런 케이스가 있다면 왠만하면 쓰지 말라고 하는데, 더 쓰고 싶어진다.
아이러니 하게도 쓰지 말라고 드는 예시는 이해 되지만, 사실은 이해가 되지 않아서 일 것이다.
많은 곳이 쓰고 있으니, 내년엔 나도 판단할 수 있을 것이다.
아 그 때 말 듣고 쓰지 말걸.
아 그 때 쓰길 잘했다.
어떤 결론이 나도, 후회의 말이더라도, 사실은 후회가 아닌 진보일 것이다~