Skip to content

10 28 데일리 스크럼

jin-Pro edited this page Oct 27, 2021 · 1 revision

영진 어제 학습함.

strict mode

암묵적으로 전역 객체에 변수를 생성하여 에러를 발생하지 않는 암묵적 전역을 예방. strict mode보다 eslint 사용 권장.

노드

  • Node.js는 서버 + 자바스크립트 프로그램 실행 런타임
  • 런타임 : 특정 언어로 만든 프로그램들을 실행할 수 있는 환경

이벤트 루프

  • 이벤트 루프는 어떤 순서로 콜백 함수를 호출할지 판단한다.

  • 함수 호출 부분을 발견하면 콜스택으로 보낸다.

  • 함수 실행이 완료되면 콜스택에서 지워진다.

  • 백그라운드 : setTimeout 같은 타이머나 이벤트 리스너들이 대기하는 곳

  • 백그라운드에서 태스크 큐로 타이머나 이벤트 리스너의 콜백 함수를 보낸다.

  • 콜스택이 비어있으면 이벤트 루프는 태스크 큐에서 함수를 하나씩 콜스택에 넣고 실행한다.

  • 콜스택이 비워있어야 태스크 큐에서 콜백 함수를 가지고 오지만, 콜 스택이 비어있지 않다면 가지고 오지 않는다.

논 블로킹

  • 논 블로킹 : 이전 작업이 완료될 때까지 대기하지 않고 다음 작업 수행 ( 비동기 )

  • 블로킹 : 이전 작업이 끝나야만 다음 작업을 수행 ( 동기 )

  • I/O 작업은 동시에 처리 가능하지만, 논 블로킹 방식을 사용하지 않으면 의미가 퇴색된다.

  • 우리 코드는 동시에 실행할 수 없어서 논 블로킹 방식을 사용하더라도 실행 순서만 바뀐다. 하지만, 이러한 순서가 바뀌게 되어 간단한 작업들은 대기시간이 감소된다.

싱글스레드

  • 노드는 여러개 스레드를 생성하나 우리가 제어할 수 있는 스레드가 하나 뿐이기 떄문에 코드가 동시에 실행할 수 없다.
  • 노드는 싱글스레드 - 논 블로킹 방식이므로 CPU가 큰 연산은 안된다.
  • 실시간 채팅처럼 개수는 많지만 크기가 작은 데이터를 주고받는데 적합하다.
  • 노드는 멀티스레드도 가능하다. 하지만, 다른 프로그래밍 언어보다 느리다.
  • 이미지, 비디오 처리와 같이 CPU를 많이 사용하는 작업에 권장되지 않는다.

오늘 할 일

  • 개발 우선 순위 결정
  • 백로그 작성
  • Atomic 구조에 따른 컴포넌트 구분
  • DB ERD 작성
Clone this wiki locally