얍얍얍
122
2020-11-03 12:02:21
6
193

리액트 및 노드js에 대해 궁금한점이 있습니다.


학교에서 배운건 스프링 프레임워크 및 sql 입니다.


이번에 첫 취업을 했는데 리액트 공부를 하라 하셔서 공부중입니다.


그런데 궁금한것은


리액트를 사용하면 왜 노드js가 필요한지 궁금합니다.


리액트는 프론트엔드 단으로 html도 같이 사용해 jsx라는거를 쓰던데


왜 리액트를 사용하려면 노드js가 필요한거죠?? 찾아보니 노드js는 서버? 인거 같던데


예를들어 html 코딩시 서버가 필요없잔아요?? 


마지막으로 제가 배운게 자바뿐이라 스프링부트를 사용해 리액트와 접목시키려면 서버는 멀로 돌려야하나요?

0
  • 답변 6

  • 사자카로스
    1k
    2020-11-03 12:19:00 작성 2020-11-03 12:28:23 수정됨

    개발할 수 있는 환경 구축 및 테스트를 쉽게 할 수 있도록 도와줍니다.

    만들어져 있는거 동작만 시킬거면 굳이 node가 필요하진 않습니다.

  • 사자카로스
    1k
    2020-11-03 12:27:22

    rest 기반이라고 할때 가장 노멀한건

    스프링 부트는 스프링 부트대로 돌리고(내부 임베디드 톰켓으로 돌리든 외부 어플리케이션 서버 기반으로 돌리든...)

    리액트로 만든건 static을 serve 해주는 서버(ex nginx)를 돌리는게 일반적일것 같네요.

    이외에 방법은 많습니다.

    스프링 부트에서 static serve 하도록 설정하셔도 됩니다.


    rest 기반이 아니라면 예를들어 타임리프 같은 템플릿 엔진을 썼다면

    스프링 서버 1개만 돌리면 되죠.

  • daywalker
    1k
    2020-11-03 12:39:31

    스프링 프레임워크로 만든 후 브라우져에서 볼려면 어떻게 해야 될까요?

    톰캣을 설치해야되지 않나요?

    그렇다면 리액트로 만든 코드를 브라우져에서 볼려면 어떻게 해야될까요?

    노드라는 놈으로 하면 됩니다.

    -1
  • HJOW
    1k
    2020-11-03 13:08:36 작성 2020-11-03 13:15:46 수정됨

    서버 언어와 UI 언어는 얼마든지 짬뽕해 쓸 수 있습니다.

    가령, 스프링 프로젝트에 JSP에서 리액트를 사용할 수도 있죠.


    노드JS는 서버가 아닙니다. PC 자바스크립트 구동을 위한 플랫폼인데 웹서버 기능을 사용할 수도 있을 뿐입니다. 웹서버로 실행 안하고 데스크탑용 응용 프로그램을 동작시킬수도 있습니다. (electron)

    쉽게 말해,  다목적 플랫폼이란 얘깁니다. 서버로도 쓸 수 있고 게임도 돌릴 수 있고 등등



    문제는 리액트는 그 자체만으로는 그닥 효용성이 없습니다.

    JSX 문법을 사용해야만 자바스크립트 코딩양도 줄고 가독성있게  작업할 수 있죠.

    (사실 JSX 안쓰면 노드JS도 필요없고 그냥 js파일 받아다 넣어서 써도 돌아갑니다.)

    근데 그 JSX를 JS코드로 변환해야만 브라우저에서 실행이 가능하거든요.

    근데 그 변환하는 프로그램도 노드JS로 코딩되어 있는 데스크탑용 응용 프로그램입니다.

  • 오징어먹물식빵
    203
    2020-11-03 13:10:25

    사자카로스 님 말씀대로 node는 react 개발 및 개발환경 구축, 테스트를 쉽게 할 수 있도록 도와주는게 맞고요, 더 설명드리면 create-react-app 패키지가 node에 의존하고 있습니다. 대표적으로 개발 서버를 돌아가게 하는데 node가 사용되고요, 최종적으로 react 프로젝트가 빌드되어서 static 파일이 됐을때는 node가 필요한 상태가 아니게 됩니다. 프론트와 백의 통신은 RESTful API에 대해서 검색 해 보시면 될 듯 합니다.

  • gredo
    584
    2020-11-03 16:04:36

    여러 가지 이유 중에서 큰 부분을 차지하는 하나는 React 개발 시 npm 또는 yarn같은 패키지 매니저의 사용이 필수인데, 그게 Node.js 위에서 동작하기 때문입니다.

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