
Spring Boot 환경에서 상태를 공유해야 하는 기능이 필요할 때면 늘 고민이 생깁니다.
"데이터베이스를 사용할까?", "레디스를 붙여볼까?"
이미 인프라가 잘 구축되어 있거나 프로젝트 규모가 크다면, 이런 미들웨어를 사용하는 게 크게 부담은 되지 않습니다. 하지만 이제 막 시작한 프로젝트이거나 예산이 빠듯한 경우라면 얘기가 좀 달라집니다. 클라우드에 Redis 클러스터를 올리는 비용도 무시할 수 없고, 단순히 DB를 상태 저장용으로 사용했을 때는 성능 저하나 부하 분산 같은 문제도 신경 써야 하거든요. 고민이 꼬리에 꼬리를 물기 시작합니다.
“그럼 미들웨어 없이 상태를 공유할 수는 없을까?”
이런 생각 끝에 Actor Model이 이 문제를 꽤 효과적으로 풀 수 있지 않을까 싶어졌고, Java 진영의 대표적인 Actor 라이브러리인 Akka와 Pekko를 알아보기 시작했습니다. 공부를 하다 보니 자연스럽게 이런 생각이 들더라고요. "왜 Java, 특히 Spring 진영에서는 Actor Model이 잘 안 쓰일까?" 직접 써보면 이유를 알 수 있을 것 같아서, 작은 프로젝트에 하나씩 적용해보며 경험을 쌓아봤습니다. ㅋㅋㅋㅋ… 그리고 곧 Spring 환경에 Actor를 녹여내려면 꽤나 많은 노력이 필요하단걸 알게되었습니다 💩
예를 들어…
- Actor의 생성/제거/관리
- Actor library의 Configuration 관리
- Rolling Update 방법
- Metrics 수집 및 노출 등등…
"없으면 만들어보자!"는 생각으로 spring-boot-starter-actor 프로젝트를 시작하게 되었습니다. 처음엔 가장 기본적인 기능부터 차근차근 구현하고 있고, 앞으로는 운영 환경에 필요한 기능들(예: rolling update 대응, metrics 연동, Kubernetes 환경 설정 등)도 하나씩 추가할 예정입니다.
혹시 관심 있으시다면 자유롭게 써보시고, 피드백도 언제든지 환영입니다! 🙌
'Open Source' 카테고리의 다른 글
자고 일어나니 기여하던 오픈소스가 대박나있음 (3) | 2024.12.18 |
---|---|
[Pingora] Cloudflare 네트워크 프레임워크 (0) | 2024.03.02 |
[Open Source] 돈내기 싫어 만든 크롬 익스텐션 (0) | 2023.11.05 |
[Rancher] Docker Desktop을 대체해보자 (2) | 2022.12.03 |