📌노드의 정의 ✨노드 란 서버가 아니다 ! 공식 정의 : 크롬 V8 자바스크립트 엔진으로 빌드된 자바스크립트 런타임 📌do while문 ✨do while문 이란 while문과 유사함 한번은 코드가 실행되고, 이후에 반복 실행될지 말지를 결정 📌for문
: 이벤트가 발생할 때 미리 지정해둔 작업을 수행하는 방식주체가 사람이 될 필요는 없음논 블로킹 : 오래 걸리는 함수를 백그라운드로 보내서 다음 코드가 먼저 실행되게 하고, 나중에 오래 걸리는 함수를 실행동기는 블로킹 / 비동기는 논 블로킹동기 : 대부분 코드가 순서대
가이드 : https://week-book.tistory.com/entry/Nodejs-%EC%84%A4%EC%B9%98%ED%95%98%EA%B8%B0-cmd-%EC%84%A4%EC%B9%98-%ED%99%95%EC%9D%B8-%EB%B0%A9%EB%B2%9
Read, Evaluate, Print, Loop코드가 너무 길 때 나눠서 쓰는 법
두 가지 방법 존재두 방법을 동시에 같이 사용할 수 없다.exports는 주로 두가지 이상module.exports는 주로 한가지일 때 사용require.cache에 한 번 require한 모듈에 대한 캐슁 정보가 들어있음require.main은 노드 실행 시 첫 모듈
Common JS 모듈에서는 가능ES 모듈에서는 불가능
노드의 전역 객체브라우저의 window 같은 역할모든 파일에서 접근 가능window처럼 생략도 가능 (console, require도 global의 속성)global 속성에 값을 대입하면 다른 파일에서도 사용 가능console.time, onsole.timeEnd :
현재 실행중인 노드 프로세스에 대한 정보를 담고 있음환경변수비밀키(데이터베이스 비밀번호, 서드파티 앱 키 등)를 보관하는 용도로도 쓰임환경변수는 process.env 로 접근 가능일부 환경 변수는 노드 실행 시 영향을 미침이벤트 루프가 다른 콜백 함수들보다 enxtTi
운영체제의 정보를 담고 있음모듈은 require로 가져옴 (내장 모듈이라 경로 대신 이름만 적어줘도 됨)node의 스레드와 OS의 스레드는 다름폴더와 파일의 경로를 쉽게 조작하도록 도와주는 모듈운영체제별로 경로 구분자가 다름(Windows:'\\', POSIX:'/')
DNS를 다룰 때 사용하는 모듈주로 도메인을 통해 IP나 기타 DNS 정보를 얻고자 할 때 사용함
암호화는 가능하지만 복호화는 불가능암호화 : 평문을 암호로 만듦복호화 : 암호를 평문으로 해독비밀번호는 암호화가 아닌 해시해시 : 평문을 암호같이, 암호를 평문으로 만들기는 매우 어려움특징 : 같은 평문을 암호화하면 암호는 항상 동일서버에는 해시만 남아있음유저가 입력한
fs, crypto, zlib 모듈의 메서드를 실행할 때는 백그라운드에서 동시에 실행됨스레드풀이 동시에 처리해줌node 에서는 4개가 최대본인 코어에 맞게 실행되도록 명령어를 통해 설정 가능여러 파일간의 동작 공유 가능처리하지 못한 에러노드 스레드를 멈춤노드는 기본적으
add1, add2, add3, add4는 같은 기능을 하는 함수add2 : add1을 화살표 함수로 나타낼 수 있음add3 : 함수의 본문이 return만 있는 경우 return 생략add4 : return이 생략된 함수의 본문을 소괄호로 감싸줄 수 있음not1과 n
콜백 헬이라고 불리는 지저분한 자바스크립트 코드의 해결책프로미스 : 내용이 실행은 되었지만 결과를 아직 바환하지 않은 객체Then을 붙이면 결과를 반환실행이 완료되지 않았으면 완료된 후에 then 내부 함수가 실행됨resolve(성공리턴값) -> then 으로 연결re
클라이언트가 서버로 요청 (request) 을 보냄서버는 요청을 처리처리 후 클라이언트로 응답 (response) 을 보냄createServer 로 요청 이벤트에 대기req 객체는 요청에 관한 정보가, res 객체는 응답에 관한 정보가 담겨있음localhost 는 컴퓨
서버에 요청을 보낼 때는 주소를 통해 요청의 내용 표현\-> /index.html이면 index.html을 보내달라는 뜻\-> 항상 html을 요구할 필요 없음\-> 서버가 이해하기 쉬운 주소가 좋음REST API(Representational State Transfe
쓸 내용이 업따 .
노드의 패키지 매니저다른 사람들이 만든 소스 코드들을 모아둔 저장소남의 코드를 사용하여 프로그래밍 가능이미 있는 기능을 다시 구현할 필요가 없어 효율적오픈 소스 생태계를 구성중패키지 : npm에 업로드된 노드 모듈모듈이 다른 모듈을 사용할 수 있듯 패키지도 다른 패키지
📌라우터 분리하기 ✨ Router 객체로 라우터 분리하기 app.js가 길어지는 것을 막을 수 있음
users 모델과 comments 모델 간의 관계를 정의1) 1:N 관계 (사용자 한 명이 댓글 여러 개 작성)\-> 시퀄라이즈에서는 1:N 관계를 hasMany로 표현 (사용자.hasMany(댓글))\-> 반대의 입장에서는 belongsTo(댓글.belongsTo(사
버전을 제일 낮은 버전인 0.0.1로 설정하는 이유: 버전을 한번 올리면 다시 내릴 수 없음..라우터 -> 컨트롤러 -> 서비스(요청, 응답 모름)1) 새로 만든 디랙토리 (폴더) 로 이동 cd 이동할폴더2) npm init 명령어를 통해 초기 세팅 (위 사진 참고)3