7. 실제 프로젝트 적용 예제프로젝트 개요이번 프로젝트에서는 간단한 네트워킹 요청을 비동기로 처리하고, 이를 코루틴을 사용해 효율적으로 관리하는 방법을 다룹니다. 가정해보는 시나리오는 여러 REST API 호출을 병렬로 처리하고, 결과를 병합하는 상황입니다.7.1 프로젝트 구성fetchDataFromApi1(): 첫 번째 API에서 데이터를 가져오는 비동기 함수.fetchDataFromApi2(): 두 번째 API에서 데이터를 가져오는 비동기 함수.processData(): 두 API에서 받은 데이터를 처리하는 함수.구조화된 동시성(Structured Concurrency)를 사용하여 병렬 작업을 관리하고, 예외 발생 시 안전하게 처리하는 방식으로 진행합니다.7.2 코드 예제: 병렬 네트워킹 요청 처리i..
Iteration Protocol ES6에 도입되어 데이터 컬렉션을 순회하기 위한 규칙 Iteration Protocol을 준수하면 for.. of, Spread 문법을 사용할 수 있음. Iteration Protocol = Iterable Protocol + Iterator Protocol const array = [1, 2, 3]; for (const value of array) { console.log(value); } console.log(...array); Iterable Protocol Symbol.iterator 메소드를 구현한 객체를 의미한다. (나 순회 할수 있어! 라고 알려주는 척도) const array = [1, 2, 3]; // iterator가 배열에 존재하는지 여부 consol..
동기(synchronous) 및 비동기(asynchronous) 동기 방식 - 하나의 요청이 처리되는 동안 다른 요청이 처리되지 못하며 요청이 완료되어야만 다음 처리가 가능한 방식. (ex. java) 비동기 방식 - 하나의 요청 처리가 완료되기 전에 제어권을 다음 요청으로 넘겨 Blocking 되지 않으며 다음 요청을 처리 하는 방식. (ex. nodejs) NodeJS 비동기 IO를 지원하며 Single-Thread 기반으로 동작하는 서버. 클라이언트의 요청을 비동기로 처리하기 위하여 이벤트가 발생하며 Event Loop가 처리. Event Loop가 처리하는 동안 제어권은 다음 요청으로 넘어가고 처리가 완료되면 Callback을 호출하여 처리완료를 호출측에 알려준다. 올바른 사용 환경 각 단위 작업..