안녕하세요! 이번에는 TypeScript를 사용하여 비동기 이터레이션과 await for...of
문을 활용하여 암호화를 수행하는 방법에 대해 알아보겠습니다. 이러한 방식은 비동기적으로 데이터를 처리하면서, 간결하고 가독성 있는 코드를 작성할 수 있게 도와줍니다.
1. async 함수와 for…of 루프
먼저, 우리는 async
함수와 for...of
루프를 사용하여 비동기적으로 데이터를 처리할 것입니다. 다음은 예시 코드입니다.
async function encryptData(data: string[]): Promise<string[]> {
const encryptedData: string[] = [];
for await (const item of data) {
const encryptedItem = await encrypt(item);
encryptedData.push(encryptedItem);
}
return encryptedData;
}
위의 코드에서, encryptData
함수는 입력 데이터 배열을 받아 각 항목을 암호화한 후 새로운 배열에 추가하여 반환합니다. for...of
루프 내부에서 encrypt
함수를 await
키워드와 함께 호출함으로써, 각 항목이 비동기적으로 암호화되고 결과가 기다려집니다.
2. encrypt 함수 구현
암호화를 위한 encrypt
함수는 여러 가지 방법으로 구현할 수 있지만, 여기서는 간단한 시뮬레이션을 위한 예시 코드를 작성해보겠습니다.
function encrypt(data: string): Promise<string> {
return new Promise((resolve) => {
// 간단한 변환 알고리즘 시뮬레이션
const encryptedData = data.split('').reverse().join('');
resolve(encryptedData);
});
}
위의 코드에서, encrypt
함수는 입력 데이터를 간단한 방식으로 암호화하여 결과를 Promise로 감싸 반환합니다.
3. 사용 예시
이제 encryptData
함수를 사용해보겠습니다.
const dataToEncrypt: string[] = ['apple', 'banana', 'cherry'];
encryptData(dataToEncrypt)
.then((result) => {
console.log(result);
})
.catch((error) => {
console.error(error);
});
위의 코드에서, encryptData
함수를 호출하고 결과를 받아와 콘솔에 출력하는 방법을 보여주었습니다.
마치며
이렇게 TypeScript의 비동기 이터레이션과 await for...of
문을 사용하여 데이터 암호화를 수행하는 방법에 대해 알아보았습니다. 이러한 패턴은 비동기 작업을 처리할 때 간결하고 직관적인 코드를 작성하는데 도움이 됩니다. 여러분의 프로젝트에서 유용하게 활용해보시기 바랍니다.
참고 문헌: