Node.js


  • 라이브러리.
    • react. view와 같은 프론트엔드 프레임워크가 node.js 기반이다.
  • Node.js 덕분에 자바스크립트 모듈을 만들고 사용할 수 있음.

      ex) exports.route = route; //모듈 만들기
    

node.js는 js가 스크립트 언어 이상으로 프로그래밍 언어 역할을 할 수 있도록 지원하는 플랫폼이다.

특징

  1. 싱글 스레드
    • 요리사가 한 명.
  2. 논 블로킹 I/O
    • 요리를 순차적으로 하는게 아니라 비는 시간이 있으면 다른 요리를 한다.

        function first(){
            console.log("첫 번째")
        }
        function second(){
            console.log("두 번째")
        }
        function third(){
            console.log("세 번째")
        }
              
        first();
        setTimeout(second,2000); //setTimeout(실행시킬 함수, 초);
        third();
              
        /*
        결과
        ----------
        첫 번째
        세 번째 
        두 번째
        */
      
    • ex) 라면을 끓일 때 10분 걸리는 데 물 끓는 시간이 5분. 뒤에 볶음밥 주문이 들어왔는데 볶음밥은 5분 걸린다. → 라면 물 끓여놓고 → 볶음밥 요리 한 뒤→ 라면을 완성한다.

  3. 이벤트 기반
    • 주문이 들어와야만 일을 한다 즉, 주문이 없으면 일을 안한다

변수 타입

  • var: 전역변수 (어디에서나 쓸 수 있다)
  • let: let은 변수. 지역변수로 선언된 블록(공간) 내에서만 사용 가능. 업데이트는 가능하나 재선언은 불가
  • const: 상수. 선언된 블록 내에서만 사용 가능. 업데이트, 재선언 불가

템플릿 문자열


  • ``로 감싼 뒤, 변수를 &{}안에 넣으면 된다
    • ${num1} + ${num2} = ${num3}

모듈, 라이브러리, 프레임워크


모듈

  • 다른 개발자가 만들어 놓은 코드 덩어리
    • 기본으로 내장된 내부 모듈
    • 외부 모듈
  • package.json 의 depecencies에 표시되어있다.
    • package.json file이 없으면 npm init 을 하면 생성된다!
  • npm i 모듈명 -g: -g 는 global이므로 내 컴퓨터에 있는 모든 프로젝트에 설치한다. 따라서 권장사항은 아님.
  • 삭제
    • npm uninstall [패키지 네임]

라이브러리

  • 사람들이 만들어 놓은 코드를 찾아서 빌려다가 적용시킬 수 있는 것.
    • 장점: 내가 원하는 걸 빌릴 수 있다.
    • 단점: 고르기가 힘들다.

프레임워크

  • 내가 만들고 싶은 서비스를 구현하는 데 필요한 모든 일을 안에서 하는 것.
  • 필요해보이는 라이브러리(모듈)를 미리 ‘틀’ 안에 다 넣어뒀다.
  • ex) Express.js(Node.js) , React.js (Javascript), Spring (java)

백엔드 (Express)

npm(Node Package Manager)

  • 외부 모듈을 내가 원하는 프로젝트에 설치 등 관리해주는 곳.
  • https://www.npmjs.com/ 위 사이트에서 원하는 패키지를 찾은 뒤, 설치 가이드에 따라 설치하면 된다!