백엔드만 하고 싶은데 노드를 사랑하는게 아니면 스프링 추천한다
풀스택을 하고 싶다면 노드를 추천한다(굳이 풀스택 하고 싶다면..)
프론트+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는 자바 스프링을 많이 씀
- 이건 자바 스프링의 우월함을 설명하려는게 아님
- 노드의 역사가 짧다보니, 당연히 기존 서비스들은 자바 스프링을 많이 썼음
- 해외 빅테크쯤 되면 인력 풀이나 생태계의 미성숙함은 문제가 되지 않음
- 자바 스프링이 노드에 비해 부족할게 없다 정도로 해석하면 됨
- 거듭 강조하지만 빅테크의 선택은 너와 니가 다닐 회사의 선택과 거의 아무런 상관이 없음
스프링 설명이 짧은데, 노드 설명의 반대가 스프링 설명이라서 노드 설명 먼저 쓰니까 스프링은 쓸게 없었음
스프링웹플럭스 설명좀
웹플럭스? 그냥 논블로킹 io멀티플렉싱 백프레셔 리액티브 이 키워드면 끝날 것 같은데
회사 프로젝트에 서버 네티로 되어있는거 있던데 이게 웹플럭스라고 보면됨?
네티를 쓴다고 웹플럭스는 아니지
장고도 노드랑 비슷하다고 보면 됨? c,c++,c#,자바,파이썬 언어 쓰면서 파이썬이 제일 편하다보니 장고로 프로젝트 만들고 있었는데 취업하려고 공고 찾다보면 좀 현타와서 이번 프로젝트만 마무리하고 스프링 배워야되나 싶다
다르지
장고는 플라스크랑 같이 ai 분야 관심있으면 계속 해보는게 좋음. 그쪽에 풀이 많고 연봉도 잘 받을 수 있음.
CPU 바운드 서비스에서는 사용 불가능한 수준으로 성능이 떨어짐 부분이 살짝 의아하네요 JVM이나 Node나 JIT 컴파일러 돌리는건 매한가지고 V8엔진이 나름 괜찮아서 Jit이 우위를 점할 수 있는 연산에서는 Go보다도 빠른 성능을 보여주기도 하니까요 혹시 현업 프로젝트에서 CPU 바운드에서 병목이 되는 현상이 있었을까요?
node가 어떻게 동작하는지 공부해봐
ㄴ Single-threaded라고 개무시하는 거임 ㅋㅋ
실제로 CPU 바운드는 거의 없음 있다면 그건 java도 감당할 수 없는 작업임 그런 건 C나 Rust로 짜서 붙여야함
그런데 그렇게 할 때도 java가 node.js보단 나음 java에 C 붙이는 게 더 쉽거든
완전한 io바운드는 없다
없음 ㅋㅋㅋㅋㅋ글로벌 트래픽도 충분히 잘 처리한다. 그냥 스프링만 할줄아는 병신들의 개소리임
노드 ㄹㅇ 걍 스타트업에서 프론트백 같이할 수 있는 인력 싸게 먹으려고 하는거 아닌가 싶기도 하고
node 잘하면 당근마켓, 토스 같은 유니콘 대기업 스타트업 들어갈 수 있음
진짜 근처도 못가본 놈처럼 이야기하니까 웃기네ㅋㅋ
웹플럭스가 뜰까? 귱금 Java21이 어느 정도 대체할 수 있다 들었는디
뜨고 말고를 떠나서 쓸 기업들은 이미 쓰고있음 Java21의 가상 스레드가 이 자리를 대체할지를 봐야지
이 댓글은 게시물 작성자가 삭제하였습니다.
이 댓글은 게시물 작성자가 삭제하였습니다.
이 댓글은 게시물 작성자가 삭제하였습니다.
이 댓글은 게시물 작성자가 삭제하였습니다.
이 댓글은 게시물 작성자가 삭제하였습니다.
이 댓글은 게시물 작성자가 삭제하였습니다.
이 댓글은 게시물 작성자가 삭제하였습니다.
이 댓글은 게시물 작성자가 삭제하였습니다.
아직도 바뀐거없이 동일한가요?