파일이름 PascalCase, camelCase 구분 명확히
Next 하면 고민 되는 것들
아토믹 하게 만드는 조건
대충하고 넘어가기 보다는 POB 끝나고 나서라도 완성하자
Next JS는 우리가 렌더링 방식을 정할 수 있다
CSS 똑같이 구현하는거는 FE의 개발자의 중요한 역량 (리뷰마다 계속 말씀하심 👀)
E2E 테스트를 한 경험은 주니어에게 정말 소중한 경험 ✨
정의: 현재 실행중이 코드가 다음 코드가 실행
장점: 실행 순서가 보장된다, 읽기 쉽다
단점: js가 아무리 빨라도 반복이 많으면 엄청 느려진다
🤔 비동기가 필요한 이유
자바스크립트 엔진은 한 번에 하나의 task만 실행할 수 있는 Single Thread.
Single Thread는 한 번에 하나의 task만 실행할 수 있기 때문에 처리에 시간이 걸리는 task를 실행하는 경우 Blocking(작업 중단)이 발생
현재 실행중인 코드가 완료되지 않아도, 다음 코드로 넘어감
장점: 렌더링 와중에도 비즈니스 로직을 돌릴 수 있다
단점: 응답이 언제 올지 모름 (실행순서 보장되지 않음)
예시: event, setTimeout
고차 함수(Higher Order Function): 매개변수를 함수로 받은 함수. 즉, 외부에서 콜백함수를 전달받은 함수
동기 콜백이 있고 비동기 콜백이 있다
콜백 지옥 때문에 프로미스가 나왔다
면접에서 많이 물어본다 👀
비동기 동작 처리를 위해 ES6에 도입되었다
Promise ⇒ class ⇒ new 키워드로 인스턴스화 ⇒ 결론: Promise는 object이다
Promise ⇒ resolve, reject 함수가 있다
then 프로퍼티, 성공했을때의 로직 (resolve)
성공하면 무조건 하나만 호출된다 (resolve || reject)
let promise = new Promise(function(resolve, reject) {
setTimeout(function() {
resolve(1); //여기만 실행 됨 🚨
resolve(2);
}, 1000);
});
promise.then(function(msg) {
console.log(msg);
});
promise의 resolve가 다음 then에 callback
Axios callback
프로미스 객체 안에 state가 있다 (pending, fulfilled, rejected)
promise 콘솔 찍어보기
Promise.all
힙: 메모리가 저장되는 공간
콜 스택: Last In First Out
콜백 큐: 처리할 메시지의 대기열
순서가 어떻게 돌아가는지 직접 그려보면 좋다