-
Notifications
You must be signed in to change notification settings - Fork 2
10 28 데일리 스크럼
jin-Pro edited this page Oct 27, 2021
·
1 revision
영진 어제 학습함.
암묵적으로 전역 객체에 변수를 생성하여 에러를 발생하지 않는 암묵적 전역을 예방. strict mode보다 eslint 사용 권장.
- Node.js는 서버 + 자바스크립트 프로그램 실행 런타임
- 런타임 : 특정 언어로 만든 프로그램들을 실행할 수 있는 환경
-
이벤트 루프는 어떤 순서로 콜백 함수를 호출할지 판단한다.
-
함수 호출 부분을 발견하면 콜스택으로 보낸다.
-
함수 실행이 완료되면 콜스택에서 지워진다.
-
백그라운드 : setTimeout 같은 타이머나 이벤트 리스너들이 대기하는 곳
-
백그라운드에서 태스크 큐로 타이머나 이벤트 리스너의 콜백 함수를 보낸다.
-
콜스택이 비어있으면 이벤트 루프는 태스크 큐에서 함수를 하나씩 콜스택에 넣고 실행한다.
-
콜스택이 비워있어야 태스크 큐에서 콜백 함수를 가지고 오지만, 콜 스택이 비어있지 않다면 가지고 오지 않는다.
-
논 블로킹 : 이전 작업이 완료될 때까지 대기하지 않고 다음 작업 수행 ( 비동기 )
-
블로킹 : 이전 작업이 끝나야만 다음 작업을 수행 ( 동기 )
-
I/O 작업은 동시에 처리 가능하지만, 논 블로킹 방식을 사용하지 않으면 의미가 퇴색된다.
-
우리 코드는 동시에 실행할 수 없어서 논 블로킹 방식을 사용하더라도 실행 순서만 바뀐다. 하지만, 이러한 순서가 바뀌게 되어 간단한 작업들은 대기시간이 감소된다.
- 노드는 여러개 스레드를 생성하나 우리가 제어할 수 있는 스레드가 하나 뿐이기 떄문에 코드가 동시에 실행할 수 없다.
- 노드는 싱글스레드 - 논 블로킹 방식이므로 CPU가 큰 연산은 안된다.
- 실시간 채팅처럼 개수는 많지만 크기가 작은 데이터를 주고받는데 적합하다.
- 노드는 멀티스레드도 가능하다. 하지만, 다른 프로그래밍 언어보다 느리다.
- 이미지, 비디오 처리와 같이 CPU를 많이 사용하는 작업에 권장되지 않는다.
- 개발 우선 순위 결정
- 백로그 작성
- Atomic 구조에 따른 컴포넌트 구분
- DB ERD 작성