카테고리 없음

[TIL] MSA, API Gateway , JAVA, Nodejs 스텍 고민 꿩먹고알먹고

youngble 2025. 3. 6. 14:58

현재 프로젝트를 스프링부트, JPA, mysql 진행중인데
숙련도나 아직 이해못한것도 있으니 꾸준히 디벨롭할 생각인데 문득생각든게 java냐 node냐 각 차이, nosql 등 사용경험을 가져갈려면 또다른 프로젝트를 진행하고나 그래야되는데 그건 솔직히 시간적, 스케일적으로 불필요하게 소모하고 낭비해야될게 많기 때문에 적용하기 힘들다.

그러다 문득 든생각이 서버만 다르게하고 도메인이나 기능을 해당 언어나 프레임워크로하면 되지않나 생각하게되었고 결국 그렇게 사용할때 API Gateway를 쓰는거란걸 알았다.

지금당장에 구현되어있는 api 앤드포인트 도메인중 관심종목이나 검색 기능의 경우는 간단한 로직이기도 하고 get 호출인 경우기때문에 1차적으론 monolithic 하게 배포하고 운영하고 테스트해보면 되지만 이후에는 node 로 바꿔서 하면 될거같다.

요새 MSA라고 하는데 솔직히 MSA가 별거냐 결국 도메인이나 기능별 쪼개서 서비스하는 것이고 독립된 환경에서 좀더 자유롭지만 통합해서 사용할수있게하는것이니
오히려 내가 공부할때 이방법이 최적일거라 생각이 들었다

이미 프로젝트 설계는 끝났으니 쪼개기만하면 될거같다.

 


이렇게되면 이미 난 typescript를 써봤고 백엔드쪽 로직의 큰그림도 알기때문에 nodejs 를 도입하면서 typescript로 진행하면될거같고 앤드포인트나 각 oop형식도 잘 녹여낼수있을거같다. 보니깐 nestjs가 스프링기반과 같은 계층 도입할수있는 DI 가능하게하던데 잠깐 봤는데도 비슷한거보니 이걸로하면 도입이 더 쉬울듯, 함수형보단 OOP방식으로!

이제 API Gateway로 진행하면 될듯하다.
솔직히 각 특성이나 장단점을 알고 그거에 맞게 써야하지만 아직은 각 이점을 내가 써본적이없기 땨문에 오히려 기존에있는걸 적용해보면서 차이를 알면될거같고 추후 추가되는 기능이나 컨텐츠에 맞게 이제 골라서 spring쪽이나 node쪽 앤드포인트로 서비스를 추가하면 될거같다.
확장성도 좋고 독립적으로 개발할수있는 환경으로 분산고 되니 집중도나 다양한 스펙트럼을 얻을수있을거 같다
정말 꿩먹고 알먹고다
강제로라도 node를 쓰며 공부할수있으면서 각차이도 알고 경험도 쌓고 뭐가 맞는지도 고를수있고

그러다 보면 추후에는 하나의 db가 아닌 그 특성에 맞는 nosql 냐 rdbms냐 골라서 추가하면되니깐 좋을거같다


나이스!