HOHO-240401 todo class 분석 하기

chan_hari·2024년 7월 29일

HOHO-DIARY

목록 보기
12/56
post-thumbnail
  1. async

| async 파이프라인은 Angular 템플릿에서 사용되며, 비동기 데이터를 처리할 때 사용됩니다. 주로 Observable이나 Promise와 함께 사용됩니다. 이 파이프라인은 Observable이나 Promise에서 비동기 데이터를 구독하고 템플릿에 자동으로 데이터를 업데이트합니다.

예를 들어, Observable을 구독하고 해당 데이터를 표시하려면 다음과 같이 사용할 수 있습니다:

htmlCopy code
<div>{{ myObservable$ | async }}</div>

위의 코드에서 myObservable$는 Observable이며, | async 파이프라인을 사용하여 해당 Observable을 구독하고 데이터를 비동기적으로 표시합니다. 이렇게 하면 Observable에서 데이터가 도착할 때마다 템플릿이 자동으로 업데이트됩니다.

마찬가지로, Promise를 처리할 때도 사용할 수 있습니다:

htmlCopy code
<div>{{ myPromise$ | async }}</div>

이것은 Promise가 해결되면 결과를 자동으로 표시하고, Promise가 거부되면 오류를 표시합니다.

이러한 방식으로 | async 파이프라인을 사용하여 비동기 데이터를 템플릿에 쉽게 표시할 수 있습니다.

  1. Observable 또는 Promise 구독: async 파이프는 Observable 또는 Promise를 구독하고, 해당 객체가 발행한 최신 값을 반환합니다.

  2. 자동 변경 감지: Observable 또는 Promise에서 새 값이 발행될 때마다 async 파이프는 해당 컴포넌트를 변경 검사 대상으로 표시합니다. 이렇게 함으로써 컴포넌트의 뷰가 최신 데이터로 업데이트됩니다.

  3. 자동 구독 해제: 컴포넌트가 파기될 때 async 파이프는 Observable 또는 Promise에서 자동으로 구독을 해제합니다. 이를 통해 잠재적인 메모리 누수를 방지합니다. 또한 표현식의 참조가 변경되면 async 파이프는 자동으로 이전 Observable 또는 Promise에서 구독을 해지하고 새로운 것에 구독합니다.

Observable 이란?

Observable은 RxJS 라이브러리에서 비동기 데이터 스트림을 다루는 데 사용되는 중요한 개념입니다. 이는 Angular 프레임워크에서도 많이 사용됩니다.

Observable은 데이터의 스트림을 나타내는 객체입니다. 이 데이터 스트림은 시간이 지남에 따라 연속적으로 발생할 수 있는 값 또는 이벤트의 시퀀스입니다. 예를 들어, 사용자 입력, HTTP 요청의 응답, 타이머 등이 데이터 스트림의 예시입니다.

Observable은 이러한 데이터 스트림을 생성하고 구독할 수 있는 기능을 제공합니다. 즉, Observable은 데이터를 생성하고 이를 관찰할 수 있게 해주는 객체입니다. 데이터 스트림을 생성하는 방법으로는 여러 가지가 있습니다. 예를 들어, 사용자의 클릭 이벤트, HTTP 요청 결과, 타이머 등을 Observable로 다룰 수 있습니다.

Observable은 다양한 연산자를 제공하여 데이터 스트림을 조작하고 변형할 수 있습니다. 이러한 연산자를 사용하여 데이터 스트림을 필터링하거나 변환하거나 조합할 수 있습니다. 이를 통해 비동기적인 프로그래밍을 보다 효율적으로 작성할 수 있습니다.

Angular에서 Observable은 HTTP 클라이언트와 함께 많이 사용되며, 컴포넌트 간의 통신에도 사용됩니다. 또한 Angular의 내장 디렉티브와 함께 사용하여 템플릿에서 비동기적으로 데이터를 처리할 수 있습니다.

Promise 란?

Promise는 JavaScript에서 비동기 작업을 처리하는 객체입니다. 비동기 작업을 수행할 때 유용하게 사용됩니다. Promise는 작업이 완료되었을 때 성공 또는 실패를 나타내는 결과 값을 가집니다.

Promise는 주로 비동기 작업을 수행하고 해당 작업이 완료될 때 콜백 함수를 호출하여 결과를 처리합니다. 이전에는 콜백 함수를 사용하여 비동기 작업을 처리했지만, Promise를 사용하면 비동기 코드를 더욱 쉽고 명확하게 작성할 수 있습니다.

Promise는 다음 세 가지 상태를 가집니다:

  1. 대기(Pending): 작업이 아직 완료되지 않은 상태입니다.
  2. 이행(Fulfilled): 작업이 성공적으로 완료된 상태입니다.
  3. 거부(Rejected): 작업이 실패한 상태입니다.

Promise는 생성된 후에는 대기 상태이며, 작업이 완료되면 이행 또는 거부 상태로 변경됩니다. 성공적으로 작업이 완료되면 이행 상태가 되고, 작업이 실패하면 거부 상태가 됩니다.

예를 들어, HTTP 요청을 보내고 응답을 기다리는 작업을 Promise로 처리할 수 있습니다. 이렇게 하면 요청이 성공하면 이행 상태로 처리되고 응답이 반환됩니다. 반면 요청이 실패하면 거부 상태로 처리되고 오류가 반환됩니다.

JavaScript의 Promise 객체는 ES6에서 표준으로 도입되었으며, 비동기 코드를 더 쉽게 작성하고 관리할 수 있도록 도와줍니다. 이러한 이점으로 인해 Promise는 JavaScript의 비동기 프로그래밍에서 중요한 개념이 되었습니다.

비동기 작업? 비동기 데이터?

비동기 작업은 프로그램이 순차적으로 실행되지 않고 병렬 또는 동시에 처리되는 작업을 말합니다. 이는 작업이 완료되기를 기다리지 않고 다른 작업을 수행할 수 있는 방식을 의미합니다.

일반적으로 비동기 작업은 다음과 같은 상황에서 발생합니다:

  1. 네트워크 요청: 웹 애플리케이션에서 서버로의 데이터 요청이나 파일의 다운로드와 같은 작업은 일반적으로 비동기적으로 처리됩니다. 이 때, 요청을 보내고 응답을 기다리는 동안에도 애플리케이션은 다른 작업을 계속할 수 있습니다.

  2. 이벤트 처리: 사용자 입력, 타이머 등의 이벤트는 비동기적으로 발생할 수 있습니다. 예를 들어, 사용자가 버튼을 클릭하면 이벤트가 발생하고 이벤트 핸들러가 비동기적으로 호출됩니다.

  3. 파일 I/O: 파일 시스템에서 파일을 읽거나 쓰는 작업은 주로 비동기적으로 처리됩니다. 이는 디스크 I/O가 느릴 수 있으므로 다른 작업을 수행하면서 파일 작업이 완료될 때까지 대기하는 것이 효율적입니다.

비동기 작업에서 발생하는 데이터를 비동기 데이터라고 합니다. 이는 주로 Observable이나 Promise와 같은 데이터 구조를 사용하여 나타냅니다. 비동기 데이터는 일반적으로 다음과 같은 형태로 사용됩니다:

  1. Observable: Reactive Extensions for JavaScript(RxJS)를 통해 구현된 Observable은 비동기 데이터의 스트림을 나타냅니다. 이 스트림은 시간이 지남에 따라 연속적으로 발생하는 값 또는 이벤트의 시퀀스입니다.

  2. Promise: Promise는 비동기 작업의 결과를 나타냅니다. 작업이 성공적으로 완료되었을 때는 해결된 값을, 실패했을 때는 거부된 이유를 나타냅니다.

비동기 데이터를 처리하는 것은 주로 콜백 함수, Promise, Observable과 같은 도구를 사용하여 이루어집니다. 이러한 도구들을 사용하면 비동기 작업을 보다 쉽게 다룰 수 있습니다.

스트림이란?

스트림은 시간에 따라 연속적으로 발생하는 데이터의 흐름을 나타내는 개념입니다. 이는 데이터가 연속적으로 도착할 수 있고, 이를 처리하거나 반응할 수 있는 방법을 제공합니다.

스트림은 다음과 같은 특징을 가집니다:

  1. 연속성: 스트림은 데이터의 흐름을 나타내므로 데이터는 시간에 따라 연속적으로 발생합니다. 새로운 데이터가 도착할 때마다 스트림은 이를 통지하고 처리합니다.

  2. 단방향: 스트림은 단방향으로 흐릅니다. 데이터는 일반적으로 스트림에 쓰여져서 소비자가 읽습니다. 이는 데이터를 읽는 측과 쓰는 측 간의 결합을 최소화하고, 데이터 흐름을 효율적으로 관리할 수 있게 합니다.

  3. 비동기성: 스트림은 비동기적으로 동작할 수 있습니다. 이는 데이터가 도착할 때마다 즉시 처리되는 것이 아니라, 데이터가 도착하는 시점에 처리되거나 지연될 수 있다는 것을 의미합니다.

  4. 다양한 종류: 스트림은 다양한 종류가 있습니다. 예를 들어, 파일에서 데이터를 읽거나 쓰는 파일 스트림, 네트워크에서 데이터를 읽거나 쓰는 네트워크 스트림, 센서에서 데이터를 수집하는 센서 스트림 등이 있습니다.

스트림은 주로 데이터를 실시간으로 처리하고 반응하는 데 사용됩니다. 예를 들어, 웹 애플리케이션에서는 사용자의 마우스 이동, 클릭, 키보드 입력과 같은 이벤트를 스트림으로 처리하여 실시간으로 반응하는 것이 일반적입니다. 또한, 데이터베이스에서 쿼리 결과를 스트림으로 받아오거나 파일의 변경을 감지하는 등 다양한 분야에서 스트림이 활용됩니다.

0개의 댓글