보면 볼수록 느끼는 것이지만 크루들이 글을 허투루 작성하지 않는 것 같아요.
키워드만 얻고 가도 정말 도움이 되는 부분들이 많았어요.
제가 쓴 프로로그나 글 또한 다른 사람들에게 유익했으면 좋겠습니다. 그것이 기록의 가장 큰 이유니까요✨✨
어쨋거나 저쨋거나 이번 유튜브 미션의 프로로그를 읽어보며 인상 깊었던 프로로그들을 간단하게 정리해봤습니다.
Intersection Observer 를 사용하거나
throttle을 사용하여 scroll event의 잦은 호출을 방지해봅시다.
다른 분들 커밋 보고 커밋 메세지에 이모지가 있길래 이걸 어떻게 하나씩 하신거지? 라고 생각했었는데...
알고보니 commitizen
을 사용하신거였다!
commitizen과 commitLint는 팀에서 통일성 있는 커밋 메세지를 작성할 수 있도록 도와줍니다.
2차 저작물, 제가 쓴 이 글 조차도 공식문서
에 비하면 정확할 수 없겠죠.
급할수록 돌아가라!
이번 미션을 통해 느낀 것 같아요.
크루들이 공유하는 수 많은 자료들이 존재하고 너무 좋은 글들이 많지만, 일단 공식 문서를 천천히 따라가는 방식을 채택하면 오래 걸리더라도 제 것으로 만드는 데 유리하다는 것을 이번에 깨달았어요.
크게 두 가지죠!
try {
// 실행 코드
} catch (error) {
// try에서 던진 에러 처리 가능
} finally {
// 반드시 실행되는 영역
}
try {
setTimeout(() => {
throw new Error("에러가 발생했습니다.");
}, 2000);
} catch (e) {
console.log("에러 찾음!", e);
}
setTimeout(() => {
try {
throw new Error("에러가 발생했습니다.");
} catch (e) {
console.log("에러 찾음!", e);
}
}, 2000);
// 예외 캐치됨 Error: 에러가 발생했습니다.
const value = obj && obj.value
// null이 아니였다면 null 자리에 있는 값을 value가 받겠죠?
const value = null ?? "anything"
AbortController
는 웹 API로, 웹 요청을 취소할 수 있도록 도와줍니다.const controller = new AbortController();
const signal = controller.signal;
const timeout = 8000;
async function requestWithTimeout(options) {
// 오래 걸리면 controller.abort()로 fetch 요청을 취소할 수 있어요.
const timer = setTimeout(() => controller.abort(), timeout)
const resposne = await fetch('/uri', {
...options,
signal,
})
if (!response.ok) {
throw new Error('서버 에러)
}
const data = await response.json()
// 데이터를 잘 받았으면 clearTimeout!
clearTimeout(timer)
return data
}
Nodelist
)을 반환합니다.htmlCollection
를 반환합니다.😒 무슨 소리인가요?