프로퍼티는=이 아닌:을 사용
객체에.을 찍어 참조
const도 let처럼 내용 변경 가능, const는 변수에 할당된 메모리 주소를 변경 불가한거지 변수 안에 있는 내용은 변경 가능하기 때문
객체.프로퍼티 혹은 객체["프로퍼티"]로 호출 가능
const로 할당한 변수는 재할당할 수 없음(내부 변경은 가능)
축약형
첫번째 객체 출력
두번째 프로퍼티 호출
세번째 메서드 호출
단축 프로퍼티(프로퍼티와 값을 가리키는 변수의 값이 같을때 사용)
객체의 다양한 표현 방법
화살표 함수(주석친 부분도 다 같은 결과)
매개변수가 하나 이상 있을때는 ()생략 가능, 없을때는 생략 불가
undefined가 나오는 이유 : setTimeout 수행 컨텍스트가 window이기 때문
1.
2.
3.
수행 컨텍스트가 달라서 수행 데이터를 제대로 제어하지 못하는 문제를 해결하기 위해 화살표 함수를 사용
어떤 객체에 귀속되는 함수(즉, 메소드)를 만들 때는 프로퍼티에 할당되는 함수를 function 키워드로 만들고
그 함수 내부에서 호출되는 콜백 함수는 화살표 함수로 만들자
값이 undefined일 때 들어가는 default value 설정(값이 있을때는 적용x)
...(스프레드 연산자) : 일차원 배열로 값만 복사해서 쓰겠다
age변수를 구조 분해 할당에서 선언했지만 값이 없기 때문에age를 출력할 때 undefined가 뜸
name변수를 구조 분해 할당에서 선언하지 않았기 때문에name이 정의되지 않았다는 ReferenceError가 뜸
둘 다 결과가 같음 > 호출한 순서대로 실행
setTimeout은 비동기 함수이기 때문에 해당 작업을 백그라운드로 넘기고 먼저 끝나는 작업부터 실행됨
콜백함수로만 비동기적 함수를 동기적으로 처리하려면 가독성이 떨어짐, 이를 해결하기 위해 Promise 사용
v8엔진은 JavaScript를 인터프리팅 하는게 아니라 컴파일함


html 해석기라 명시해주지 않아 태그가 적용이 되지 않음

http 해석기라 명시한 후 태그가 적용된 모습
node.js는 서버 자체가 아니라 js를 실행하는 런타임 도구, 웹 서버 개발에만 사용이 국한되지 않음



express를 사용해 서버 연결
어떻게 받아들일지, 어떻게 응답할지 내용을 명시해두지 않았기 때문에 이런 에러 페이지가 뜸

**app.get('/', function(req, res){ // '/'는 url
res.send('도서 관련 페이지입니다');
});**
코드를 추가해주면 해결




url의 하위 path를 가지고 분기하는 것을 라우팅이라 함
app 객체가 담당
코드를 변경할 때마다 서버를 껐다 키는 불편함을 해결하기 위해 nodemon 설치
-g를 추가하지 않으면 해당 어플리케이션에만 nodemon이 적용된다 함
이런 오류가 뜬다면

Windows PowerShell에서 실행 정책을 RemoteSigned로 변경하여 해결
__dirname은 Node.js 내에서 현재 파일이 위치한 디렉토리를 나타내는 전역 변수
이 변수는 항상 절대 경로를 반환하며, 파일이 실행되는 위치와 상관없이 그 파일이 실제로 존재하는 경로를 제공
