
서버와 클라이언트클라이언트: 서비스에 관한 요청을 서버에 보냄서버: 클라이언트 요청에 응답함웹서버 만들기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 상태가 되기..
fetch함수와 비동기 실행비동기 실행: 특정 작업을 시작(리퀘스트 보내기)하고, 완벽하게 다 처리(리스폰스를 받아서 처리)하기 전에, 실행 흐름이 바로 다음 코드로 넘어가고, 나주에 콜백이 실행되는 것 | 동기 실행에 비해 한 작업을 더 빠른 시간 내에 처리 가능동기 실행: 한번 시작한 작업은 다 처리하고 나서 다음 코드로 넘어가는 것비동기 실행 출력 순서: Start! - End - fetch함수fetch함수의 then메서드는 콜백을 단지 등록만 함(바로 실행 X)그래서 End를 실행하고, 서버에 리스폰스가 도착하면 그 내용이 출력됨동기 실행 순서: Start! - fetch함수(리퀘스트보내기) - 리스폰스가 오기 전까지 코드 실행 일시 정지되고 오면 필요한 처리 수행 - Endconsole.log(..