Node JS 란?
JavaScript 런타임으로 JavaScript가 동작할 수 있는 프로그램이다. JavaScript를 브라우저가 아닌 곳에서도 사용하려고 만들어졌다. 이 때 서버를 만드는거라고 이해하게되는데 서버를 만들 수 있지만 서버만 만드는 것이 아니다. 그렇기에 확장성 있는 네트워크 애플리케이션 개발에서 사용된다.
특징
- Non-Blocking I/O (비동기 Input/Output, 다 처리하지 않고 일단 전달한다.)
- Single Thread (error처리 필수!)
복잡하고 용량도 크고 속도도 느리다는 개발자에겐 말도안되는 단점들을 가지고있다.
하지만 왜 node 환경에서 많이들 사용할까?
그 이유는 개발 생태계때문이다. npm으로 남들이 만들어둔 프로젝트를 가져올 수 있기때문에 호환성이 좋아 node를 쓴다.
node를 설치하고나면 무조건 npm이라는걸 쓰게된다.
다른 블로그들을 보면 npm 아니면 yarn을 쓰라고 되어있다. 그 npm이 무엇인지 정리해보면 모듈을 다운로드할 수 있는 appstore (갤럭시는 playstore)라고 이해하면 쉽다.
npm에 대한 더 자세한 내용은 여기로
https://www.howdy-mj.me/node/about-npm/
React
프레임워크라고 쓰여있는경우도 있지만 라이브러리다! 그래서 사용자가 원하는만큼 가져다가 쓸 수 있는데 가장 큰 장점은 컴포넌트화 하기 좋다는 것이다. 그리고 react는 Facebook에서 관리하고 있다.
컴포넌트화 한다는 것은 재사용하기 쉽다는 것인데 그 과정은 아래와 같다.
Props(재료) → 컴포넌트(공장) → 요소(생산품)
장점
- 재사용성 유지보수에 유리
특징
- 파스칼 표기법: 첫 글자를 대문자로 시작
에어비엔비의 한 카드를 예시로 들면 카드 하나(그림부터 가격까지 다 포함한 큰 영역)을 쪼갤 수 없는 단위까지 컴포넌트화 하는 것이 좋다. 나중에 필요할 때 쪼갠 컴포넌트들을 합쳐서 카드 컴포넌트를 만든다.
왜 그렇게 하냐면 카드단위로 처음부터 컴포넌트화를 해버리면 재사용성이 떨어지기 때문이다.
클래스컴포넌트 vs 함수컴포넌트
기존에는 클래스 컴포넌트가 많이 사용되어왔다. 요즘에는 안쓰는 추세지만 예전 코드를 보면 사용된 것이 많기 때문에 알고 있어야한다. 그래서 최근엔 함수컴포넌트가 많이 사용되고있다.
만약 회사 리액트 버전이 그때의 오피셜한 리액트버전보다 낮을경우 호환이 안되는 문제가 있을까요?
이러한 문제가 발생하지 않는다.
한 줄로 요약하자면
node JS : JS 런타임 환경으로 확장성이 좋다.
React : 라이브러리로 컴포넌트화가 가장 큰 특징이다.
'deebtionary' 카테고리의 다른 글
git , 브랜치 명령어 clone, checkout, 원격 저장소 (0) | 2022.09.26 |
---|---|
[Git] pull request 했는데 바꾸라고요..? closed 안하고 수정하기 (0) | 2022.07.06 |
keycode 확인할 수 있는 사이트 (0) | 2022.06.29 |
무료 이미지 사이트 (0) | 2022.04.07 |