내배캠 29일차

·2022년 12월 12일
0

내일배움캠프

목록 보기
31/142
post-thumbnail

TODO

  • js심화
  • 노드입문

노드입문

Node.js란?

Chrome V8 JavaScript 엔진으로 빌드된 JavaScript 런타임.
Node.js란 Javascript를 브라우저가 아닌 컴퓨터에서 브라우저 없이 실행하게 도와주는 환경을 의미.

Node.js를 굳이 사용해야 하는 이유가 있을까요?

  • Node.js는 논 블로킹(Non-blocking) I/O, 싱글 스레드(Single Thread), 이벤트 루프(Event Loop)의 특성이 있습니다.

    • 기존의 블로킹(Blocking) I/O는 프로그램 내부에서 함수를 호출하면 호출된 함수가 작업을 마칠 때까지 대기하는 방식이었지만, 논 블로킹(Non-blocking) I/O는 함수가 실행되는 중에도 다른 작업을 동시에 진행할 수 있는 장점이 있습니다.

    • 싱글 스레드(Single Thread)스레드 하나를 사용하는 것이며, 동시에 하나의 작업만을 처리할 수 있습니다.
      → 여기서 스레드(Thread)란 프로그램이 동작할 때, CPU 또는 프로세서를 사용하는 단위입니다.

    • 일반적으로 1개의 프로그램1개의 스레드를 사용할 수 있습니다. 하지만 1개의 프로그램에서 여러개의 스레드를 사용할 수 있다면 연산할 수 있는 시간을 단축 시킬 수 있겠죠?
      (Node.js는 차라리 새로운 프로세스를 생성해 확장을 도모합니다. 프로세스는 여러개라도 서로에 대해 스레드에 비해 독립적이므로 하나의 프로세스가 문제를 일으키더라도 다른 프로세스까지 모두 종료될 확률은 상대적으로 낮습니다.
      이러한 특징때문에 연결 요청의 부하에 따른 서버 확장이 매우 자유롭습니다. 즉, Node.js는 특히 웹 서버에 특화된 철학이 녹아있는 언어입니다.)

    • 이벤트 루프(Event Loop)는 Javascript가 가지고 있던 싱글 스레드의 약점을 극복하기 위해 효율적으로 작업을 처리할 수 있는 특성입니다.

ES6(ECMAScript 6)란?

  • 초기 javascript넷스케이프라는 웹브라우저에서 사용하기 위해 만들어진 언어입니다. 옛날 홈페이지들은 htmlcss로 움직이지 않는 아주 정적인 홈페이지들만 있었어요. 여기에서 Javascript를 추가해서 홈페이지에서 역동적인 애니메이션이나 움직임등을 추가할 수 있었어요.
  • 이후에 넷스케이프외에도 저희에게 익숙한 Internet Explorer같은 다른 브라우저들도 비슷한 언어를 개발하기 시작했어요. 그러다보니 브라우저마다 개발하는 방식이 달랐고 이게 불편해서 표준화 시키는 작업이 필요했습니다. 그렇게 나온 것이 ECMAScript입니다.
  • 이 표준은 ECMAScript는 매년 꾸준히 변경되고 새로운 기능이 추가되면서 버전이 새로 나오고 있어요. 2021년 기준으로 12번째 버전이 나왔네요.
  • ES6ECMAScript의 6번째 버전으로 2015년에 발표되어서 ECMAScript 2015라고도 불립니다. (ES6, ECMAScript 2015 둘다 같은 말이에요)

Node.js의 REPL

  • REPL이란?
    • 일반적으로 "REPL 환경" 이라 함은 아래와 같이 설명할 수 있습니다.

      입력 받은 코드를 읽어(Read)들여 메모리에 저장하고, 평가(Evaluate)된 값을 출력(Print)합니다.
      특정 신호를 입력받기 전까지 위의 과정을 반복(Loop)합니다.

    • 쉽게 말하자면? 입력하는 코드의 결과 값을 즉시 확인 할 수 있기 때문에 간단한 문법 테스트, 테스트 등으로 아주 적합한 개발 환경으로 볼 수 있습니다.

js심화

1-2 데이터타입의 종류

모든 data는 byte단위의 식별자인 메모리 주소값을 통해서 서로 구분이 된다.

  1. 데이터타입은 기본형과 참조형으로 구분
  • 기본형 : number, string, boolean, null, undefined, symbol
  • 참조형 - object : array, function, date, reg(exp), map, set
  1. 기본형과 참조형의 구분 기준
    i. 복제의 방식

    • 기본형 : 값이 담긴 주소값을 바로 복제
    • 참조형 : 값이 담긴 주소값들로 이루어진 묶음을 가리키는 주소값을 복제

    ii. 불변의 여부
    : 기본형은 불변성이 있다.

  2. memory 저장 단위

  • byte : 메모리에 데이터를 저장할 때 최소 단위
    0, 1 값을 가질 수 있으며, 이진수를 표현
  • byte : 1byte = 8bit
    256개의 수(0~255)를 표현할 수 있다.
    연산 장치나 메모리는 byte단위로 관리함.
  1. 주소(address)
    컴퓨터라는 하드웨어를 관리하는 운영체제는 많은 양의 메모리를 관리하기 위해 1byte크기로 숫자를 매겨서 관리하는데 이것을 주소라고함.

  2. 식별자, 변수

  • 변수 : 데이터
  • 식별자 : 변수명
  • var testValue = 3;
    • testValue : 식별자, 3 : 변수

1-3 데이터할당

데이터는 변수영역과 데이터영역으로 나뉘어 저장된다.

값을 바로 변수에 대입하지 않는 이유(=무조건 새로 만드는 이유)

  1. 자유로운 데이터 변환
  • 이미 입력한 문자열이 길어진다면?
  1. 메모리의 효율적 관리
  • 똑같은 데이터를 여러번 저장해야 한다면?
profile
개발자 꿈나무

0개의 댓글