
모듈 검색 순서require() : 함수 안 인자를 보고 알맞은 모듈을 로드함reuqire()에 경로 표시가 없음 → node_modules 디렉토리 내에 그런 파일이 없음 → node_modules 디렉토리 내에 그런 디렉토리가 있음 → 디렉토리 안에 package.json 파일이 있음 → main 필드에 적힌 파일 로드(main 필드가 없다면 index.js 파일 로드)package.json이라는 파일을 가진 디렉토리가 패키지다 | 하나의 서드파티모듈은 하나의 패키지다 | 서드파티모듈을 관리할 때 쓰는 npm은 node package manager의 줄임말이다package.json 파일에서 알아야할 필드name: 패키지 이름 | require 함수 인자로 넣는 것version: 패키지 버전 | nam..

서버와 클라이언트클라이언트: 서비스에 관한 요청을 서버에 보냄서버: 클라이언트 요청에 응답함웹서버 만들기http://127.0.0.1:3000127.0.0.1 → 개발용 테스트 IP | 외부 다른 컴퓨터가 아닌, 컴퓨터 자기 자신을 나타냄3000 → 코드에서 지정한 포트 번호const http = require('http'); // 통신규약// 서버 객체 생성// request: 클라이언트 요청에 관한 객체// response: 서버 객체가 할 응답에 관한 객체let server = http.createServer(function(request, response){ response.end('Hello Wolrd!');}); server.listen(3000); // 클라이언트 요청을 3000..

REPL : 사용자가 입력한 내용을 읽고(Read), 그 결과값을 구한 다음(Eval), 결과값을 출력(Print), 이 과정을 반복(Loop) | 짧은 코드 테스트 시 유용모듈이란? 전체를 이루는 부품 하나하나경로에 파일 이름만 적어도 됨 | 모듈 경로는 정확히 적어야 함 | require함수가 리턴하는 객체는 상수로 대입하는게 좋음(let → const) | 변수, 객체, 함수 모두 공개 가능// math-tools.jsfunction add(a, b){ return a + b;}// add함수를 외부로 공개exports.add = add;// main.js// require(): 모듈을 로드하는 함수let m = require('./math-tools');console.log(m.add(1, ..
async/await란? async(asynchronous) : 함수 안에 비동기적으로 실행할 부분이 있다는 것을 알림 → await이 있는 코드 & 함수에 Promise객체를 리턴하는 부분이 있다는 뜻await : 그 뒤에 코드를 실행하고, 그 코드가 리턴하는 Promise객체가 fulfilled/rejected 상태가 될 때까지 기다림... 해당 객체가 fulfilled 상태가 되면 그 작업성공결과를 추출해서 리턴함 | async 안에서만 사용 가능async 함수 안의 코드가 실행되다가 await을 만나면, 일단 await 뒤에 코드가 실행되고, 코드의 실행 흐름이 async 함수 바깥으로 나가서 나머지 코드를 실행 → 그 이후엔 await 뒤에 있던 Promise객체가 fulfilled 상태가 되기..