백엔드만 하고 싶은데 노드를 사랑하는게 아니면 스프링 추천한다

풀스택을 하고 싶다면 노드를 추천한다(굳이 풀스택 하고 싶다면..)

프론트+BFF도 노드를 추천한다

어느걸 선택하든 좋지만, 취향이 아니라 효율을 따지려면 기술의 특성과 시장의 니즈를 파악하고 선택해라

니들이 일할 시장은 한국이다. 외국 사례는 참고만 해라
시간이 지나고 한국에서 spring이 저물고 node가 득세할수도 있다. 하지만 그건 미래다

미래의 일은 미래에 걱정해라

주니어가 아니고서야 기술은 필요에 따라 바꿔서 쓰는거다


이유는 아래 차이점 읽어보고

어떤 애들은 노드로 틈새시장 노리라고 하던데, 틈새시장에서 인생 끝낼거 아니면 굳이 왜 노리는지 잘 모르겠고

틈새시장이라고 해봐야 시리즈 낮은 스타트업에서 풀스택 아닌가 싶다

이건 내가 잘 모르는걸수도 있어서 댓글로 의견 주면 고맙겠다


spring을 spring mvc라고 한 이유는 spring webflux랑 구분하려고 그런것임


node


빠르고 쉽게 진입할 수 있음


프론트엔드와 언어가 같고 대부분의 라이브러리를 공유할 수 있음

- 이게 최대 장점임, 스프링 대비 넘사벽 수준


가벼워서 aws lambda 같은 서비스에 올리기 적합함


IO 바운드 서비스에서 성능 우위가 있음

- 일반적인 서비스에서는 별 차이 없어서 크게 신경 안써도 됨

- CPU 바운드 서비스에서는 사용 불가능한 수준으로 성능이 떨어짐

- 너희들이 하는 서비스는 대부분 IO 바운드 서비스이긴 함

- 그러나 선택지 자체가 없다는건 좀 위험하지


npm 생태계가 방대하긴 한데 충분히 성숙하지 못함

- java 진영에 비해 시간이 상대적으로 부족하기도 했고

- 어느 한 회사에서 메인 잡고 발전시키지 않아서 그런 것 같기도 하고

- nestjs라는게 나왔는데, 복잡도가 스프링과 큰 차이가 없어보임


수요가 적음, 공급도 적음


메이저 IT기업 수요는 더 적음


스타트업 수요가 많은 편


스타트업에서는 풀스택 시키려고 채택하는 경우가 있음(이건 잡부)


프론트 개발자에게 BFF 정도만 시키려고 채택하는 경우가 있음(이건 좋음)


이직할데가 상대적으로 한정적임


해외 빅테크들은 BFF용으로 node를 많이 씀

- 한국은 시장도 작고 서비스도 작아서 그런지 BFF 개념이 많이 활성화 돼있지 않음

- 니가 갈 조선 스타트업은 BFF 그딴거 없고 풀스택 시킬 확률이 높을듯


규모가 커지면 node에서 spring으로 전환을 많이들 함

- 생태계의 성숙도와 구인의 어려움 때문임

- BFF를 spring에서 node로 전환하는 케이스도 있긴 한데, 한국에서는 사례가 적을듯



spring mvc


언어가 올드하고 진입이 상대적으로 어려움


1개 인스턴스가 상대적으로 무거움


수요가 많음, 공급도 많음


메이저 IT기업은 대부분 spring을 원함


원숙한 프레임워크임


스타트업 수요는 적은 편


SI기업 수요는 거의 100%


이직할데가 많음


해외 빅테크들도 core는 자바 스프링을 많이 씀

- 이건 자바 스프링의 우월함을 설명하려는게 아님

- 노드의 역사가 짧다보니, 당연히 기존 서비스들은 자바 스프링을 많이 썼음

- 해외 빅테크쯤 되면 인력 풀이나 생태계의 미성숙함은 문제가 되지 않음

- 자바 스프링이 노드에 비해 부족할게 없다 정도로 해석하면 됨

- 거듭 강조하지만 빅테크의 선택은 너와 니가 다닐 회사의 선택과 거의 아무런 상관이 없음