240425 11일차
알고리즘 풀이
개인프로젝트 회고 및 정리
프로젝트 해설 강의
드디어 본캠프 첫 개인 프로젝트가 끝이 났다. 그동안 배운 자바스크립트의 메서드, 함수 모든 것들이 무너지는 느낌이 들었다. 도대체 배운 것들을 어떻게 적용을 해야할지 쉽지 않았다. 영어 문법 수업을 받다가 바로 외국인과 회화를 나눈 느낌이었다..ㅋㅋㅋ 진짜 정신 없었음.. 구글링과 지피티를 통해 짜여진 코드이기에 내가 직접 처음부터 완성시킨 함수는 없다. 하지만 어떻게 작동하는지 주말, 오늘동안에 코드 분석을 하였다. 오늘은 분석을 하면서 어려웠던 부분을 짚어가는 내용을 담았다. 아직 갈 길이 정말 정말 정말 정말 멀다...
회고에 적힌대로 개인 프로젝트를 진행하는 동안 필수적인 기술과 어려웠던 것들을 정리한다.
우선 비동기 처리 방식 중 하나인 콜백 함수 (Callback function)는 간단히 함수 내에 함수를 선언하여 순서를 정하는 것을 뜻하며 함수가 많아질수록 코드가 복잡해지며 가독성도 떨어진다. 이를 콜백 지옥 (Callback Hell)이라 한다.
다른 하나는 프라미스 (Promise)이다. .then으로 함수 실행 순서를 정할 수 있다. 이 또한 함수가 많아질수록 코드가 복잡해진다.
이러한 가독성 문제나 에러 핸들링에 있어서 더 직관적으로 만들어 주는 것이 ES8 문법에 추가된 async, await 방식이다.
우선 예외처리의 중요성이 대한 설명을 짚고 넘어가야한다.
예외 처리는 특히 네트워크 처리같은 외부 시스템에 대한 상호 작용에 있어서 중간에 실패할 가능성이 있기 때문에 중요하다. 상호 작용에 실패하면 오류를 뿜어내며 프로그램이 중단될 수 있다. 이를 방지하기 위해선 예외처리를 해야하는 것이다.
try-catch는 예외처리를 수행하기 위한 구문이다. 코드를 실행하면서 일어나는 예외에 대해서 대처하기 쉽고 위의 async, await 함수와 같이 사용하면 매우 유용하다.
async function fetchData() {
try {
const data = await fetch('https://api.example.com/data');
const json = await data.json();
console.log(json);
} catch (error) {
console.error('데이터를 불러오는 중 에러가 발생했습니다:', error);
}
}
asnyc-await, try-catch가 같이 쓰인 예시이다.