아크마
2022-04-25 07:33:38 작성 2022-04-25 08:28:35 수정됨
7
1238

비전공자 node vs spring 고민입니다.


5월부터 부트캠프를 시작하는 비전공자입니다. 부트캠프에서 React, Spring, node.js 중에 주특기를 정해서 파는 구조인데 백엔드를 할거라서 Spring/node.js 중에 선택해야하는 상황입니다. 찾아보니

Java가 수요 훨씬많음. 특히 대기업/공공기관/금융권/SI? 등, 원티드 java 검색->236개

node.js는 스타트업 위주로 붐이 있었음. 그런데 Javascript는 대세이지만, 미국에서 node.js인기는 식고 있다? 라는 의견을 찾아볼 수 있었습니다.원티드 node -> 112개 (상당히 많다?)


대기업/공공기관에는 큰 뜻이 없고 당장은 일 배우고 실력 쌓는 게 먼저인 것 같아서 node로 마음이 좀 기울었습니다. 그런데 "내가 본격적으로 일을 하고 있을 4~5년 뒤에도 java는 견고할 것 같은데, node의 미래도 밝나? 현재도 스타트업 위주로 늘어나는 추세인가?"라는 의문이 들더군요.


혹시 이 질문에 대답을 해주실 분이 계신지, 아니면 첫 프레임워크로 node말고 Spring을 추천해주신다면 이유를 들을 수 있을까요?

0
  • 댓글 7

  • ambp
    2022-04-25 08:34:43
    결국엔 둘 다 해야할 거 같아서 스프링 추천합니다.
    대기업, 공공, 금융 이 자바 위주, 스타트업은 node가 강세인 것은 나름 각각의 이유와 장점이 있습니다
  • 인성 절구로 빻음
    4k
    2022-04-25 09:06:45

    국내 취업이라면 스프링으로 시작하는것을 추천드립니다.

  • 데이비뜨
    239
    2022-04-25 09:12:01

    기술적 흐름에 대해 트랜드를 찾아보고 딥 다이브를 하는 것도 중요하지만 그 전에 node.js의 동작원리와 Spring의 동작원리 정도 가볍게 살펴보시는 것을 추천드립니다


    node.js 는 구글에서 만든 V8엔진 기반으로 개발된 javascript 응용 어플리케이션 이고, Spring에서 동작하는 Java는 JVM 가상머신 상에서 동작하는 응용 어플리케이션이죠 

    둘다 태생이 다르고 목적이 다르고 OS 상에서 동작하는 메카니즘이 다르니, 프로젝트의 필요와 목적에 따라서 선택할 수 있는 안목이 중요하다고 생각되네요. 

    기술에 대한 호기심이 프로그래머의 수명을 좌우한다는 생각입니다 

  • 아크마
    2022-04-25 09:30:24 작성 2022-04-25 09:37:33 수정됨

    데이비뜨

    (지극히 개인적인 이해로는) node는 가볍고 빠릿빠릿한 서비스에 좋고 단기간에 가시적 결과를 확인하기 좋지만 테스트가 중요하다. java는 조금 더 사전적인? 언어에 가깝고 안정성이 뛰어나고 무거운 서비스에도 적합하다인 것 같습니다.


    언어적 본질을 떠나 가장 걱정되는 점은 제 상황에서 java를 선택했을 시 SI회사로 가는 방법이 최선일 확률이 높은데 (좋은 회사도 많겠지만 대학원이나 회사생활에서 본 결과) 한국의 나랏돈 사업, 중소기업 문화에 대해 신뢰가 제로에 가깝다는 점입니다. 업무 과중을 떠나서 성장할 수 있는 환경이 아닐까봐서요...


    반면, node가 신입으로 뚫기는 힘들겠지만, 원티드를 보니 자기 색깔이 있는 서비스?를 제공하는 회사가 많아보이더군요. 일단 조언해주신 것처럼 기본서 2개 사서 비교해보겠습니다! (윗 두 분도) 답변 감사합니다!

  • 왕왕
    3k
    2022-04-25 10:28:18 작성 2022-04-25 10:29:13 수정됨

    제대로 배우려면 스프링이죠...노드 진영은 아직 눈에 띄는 백고수들의 수가 적습니다...정립된 이론들도 적은 편이고...

  • 이대왕준쌤
    1k
    2022-04-26 17:16:44

    스프링이요

  • 데이비뜨
    239
    2022-04-29 09:18:21 작성 2022-04-29 09:20:14 수정됨

    이야기의 맥락에 벗어난지 모르겠으나 저는 SI 업계 또는 솔루션 업계의 차원을 떠나 개발하고자 하는 목표 관점으로 이해하고 답변드립니다    왜냐하면 SI에서도 node.js 를 사용하지 않는다고 장담할 수 없기에... 

    스프링 프레임웍은 MVC 구조로 데이터 검색에서 비지니스 로직 그리고 웹 인터페이스를 나름 체계적으로 분리하여 관리하므로 대형 사이트에서 사용하기를 추천합니다

    당연히 Java의 Multi-threading 을 활용하므로 웹 클라이언트의 동시 요청에도 효율적으로 응답이 가능하며 DBMS의 Transaction 처리에도 매우 편하게 작업할 수 있도록 되어 있습니다

    물론 Java가 동작하려면 JVM상에서 동작하니까 가상머신의 특성상 OS가 제공하는 시스템 자원을 직접 JAVA가 호출하여 사용하지 못하고 JVM을 거치므로 조금 느리기는 하겠지만 요즈음의 컴퓨팅 파워로는 이미 이슈가 지난 이야기입니다

    node.js 는 Java와 마찬가지로 구글에서 만든 v8엔진 위에서 동작하는 JavaScript 응용 어플리케이션 개발 환경이며, Java 처럼 Multi-threading을 지원하지 않고 Single-thread의 제약성 때문에 동시에 많은 클라이언트의 요청이 있을 경우 버틀넥이 생길 수 있는 한계점이 있으므로 소규모의 서비스에는 적합할 것입니다 

    이 외 요즘 유행하는 SPA 의 대표적 프레임웍인 Vue.js나 React 또한 node.js 기반으로 개발하고 컴파일하여 동작합니다 

    그래서 백엔드 개발에 집중하려면 스프링을,  프론트엔드 개발에 집중하려면 Node.js를 스터디 하시기를 권장합니다 

  • 로그인을 하시면 댓글을 등록할 수 있습니다.