티스토리 뷰
목차
원래 오늘은 맥북을 산 기념으로,
맥북 환경 세팅에 대해 포스트 하고 싶었는데,
... 의외로 적을게 별로 없었다.
다 비슷한 느낌.
그래서 Node.js를 포폴에 추가해야 하므로
오늘은 개념을 잡고 내일부터 간단한 예제를 만들어봐야겠다.
NodeJs
Node.js는 뒤에 Js라는 이름에서 보이듯이,
JavaScript 엔진으로 빌드된 JavaSript 런타임이다.
여기서 런타임이란 두 가지 뜻이 있지만,
개발언어를 컴퓨터 언어로 바꿔주는 인터럽터와 컴파일러를 포함한 환경이다.
이에 대해 더 얘기할 수도 있지만
내가 공부하고자 하는 것은 서버 구축의 Node.js이니 그쪽으로 얘기하기로 하고,
Node.js가 서버 구축을 포함한 런타임 환경에도 많이 쓰인다는 것만 알아두자.
서버의 Node.js
우선 간단한 특징으로는,
- 자바 스크립트 기반이기에, 프런트 앤드에서의 진입장벽이 낮음!
- NPM이라는 패키지 매니저를 통하여 쉽게, 다양한 라이브러리와 패키지 사용 가능!
이고, 이제 새로운 개념과 함께 특징을 보자면,
Node.Js는 싱글 스레드이다.
싱글 스레드란, 동시에 여러 가지 작업을 하지 않고, 한번에 한가지만 작업한다는 뜻이다.
Node.Js는 싱글 스레드의 단점을 개선하기 위해, Non Blocking, 비동기 방식을 쓰고 있다.
Non Blocking
Non Blocking이란, 작업을 기다리는 동안 막히지 않는다는 뜻이다.
우리가 인터넷을 쓸 때, 서버에서 데이터를 기다리는 동안,
데이터가 올 때까지 화면이 멈추며 기다리지 않고 다른 작업을 할 수 있는 것을 예로 들 수 있다.
비동기 방식
동시에 발생하는 것을 동기라 한다.
동기방식은 데이터를 보내는 쪽과, 받는 쪽이 데이터를 다 받을 때까지 신호를 계속 주고받아,
결국에 데이터를 다 보냈을때 와 다 받았을때가 동시가 되는 방식을 뜻한다.
이 방식을 쓰면, 설계가 매우 간단하고 직관적이지만
작업을 마칠 때까지 Non Blocking이더라도 다른 작업을 못한다는 단점이 있다.
이에 반해, 비동기 방식은 데이터 요청만 보낸 뒤, 결과를 기다리지 않고 돌아와 다른 작업을 하다가
데이터가 준비되었다는 신호를 받으면 다시 처리하는 방식이다.
효율적인 작업이 가능하지만, 복잡하다는 특징이 있다.
끝
... Non Blocking이랑 async를 구별하느라 시간을 많이 허비했다...
혼용하여 말하는 사이트가 많았다.
같아보일 수 있지만, Non Blocking 방식인데 Sync 방식을 가진 사례를 포스트한 곳이 있어,
어떻게든 구분했어야 했다
'백앤드 > NodeJs' 카테고리의 다른 글
모듈화 (0) | 2021.03.27 |
---|---|
Res write / send / json (0) | 2021.03.21 |
Nodejs로 서버만들기 (0) | 2021.03.09 |
- Total
- Today
- Yesterday
- 랜더링
- CSS
- async
- Expo
- nodejs
- dom
- 이쁜코드
- switch
- useReducer
- 에러
- 쿠키
- 비동기
- 웹접근성
- html
- homebrew
- 클릭
- touchable
- visualcode
- react
- Redux
- 가상샐렉터
- 무료아이콘
- 아이콘
- usecookies
- Hook
- proptype
- 서버
- 접근성
- Router
- SVG
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |