✅ 동기 (Synchronous)와 비동기 (Asynchronous) 프로그래밍
✅ 동기 (Synchronous) 프로그래밍:
동기 프로그래밍은 작업이 순차적으로 실행되고, 한 작업이 완료될 때까지 다음 작업이 시작되지 않습니다.
요청한 작업이 완료되기 전까지는 대기해야 하므로, 시스템 자원의 효율성과 응답성이 저하될 수 있습니다.
순차적인 프로그래밍 스타일로 코드의 흐름이 예측 가능하고 간단할 수 있습니다.
✅ 비동기 (Asynchronous) 프로그래밍:
비동기 프로그래밍은 작업이 병렬로 실행되고, 작업이 완료될 때까지 기다리지 않고 다음 작업을 계속할 수 있습니다.
비동기적으로 작업을 처리하면, 작업이 완료되기를 기다리는 동안 다른 작업을 수행할 수 있어 시스템 자원을 효율적으로 활용할 수 있습니다.
주로 이벤트 기반, 콜백 함수, 프로미스, 비동기 함수 등을 사용하여 구현됩니다.
✅ 비동기 프로그래밍의 필요성:
1️⃣ 성능 향상: 동기적 작업은 하나의 작업이 끝날 때까지 다음 작업을 기다려야 하므로, 대기 시간이 발생합니다. 이는 시스템의 성능을 저하시킬 수 있습니다. 비동기 프로그래밍은 작업이 완료될 때까지 기다리지 않고 다른 작업을 수행할 수 있기 때문에 성능 향상을 이끌어 낼 수 있습니다.
2️⃣ 응답성 향상: 사용자 인터페이스와 같은 응답성이 중요한 애플리케이션에서는 비동기 프로그래밍이 필수적입니다. 사용자가 어떤 동작을 실행했을 때 대기 없이 즉시 응답을 받을 수 있기 때문에 사용자 경험이 향상됩니다.
3️⃣ 자원 효율성: 비동기 작업을 사용하면 작업이 완료될 때까지 대기하는 대신 다른 작업을 수행할 수 있으므로 시스템 자원을 더 효율적으로 활용할 수 있습니다.
4️⃣ 네트워크 통신: 네트워크 호출은 주로 비동기적으로 이루어집니다. 서버에서 데이터를 요청하고 응답을 받는 동안 클라이언트는 다른 작업을 수행할 수 있습니다. 따라서 네트워크 통신을 비동기적으로 처리함으로써 시간을 절약하고 효율적으로 작업할 수 있습니다.
'기술면접' 카테고리의 다른 글
16_GET, POST 방식의 차이점에 대해서 설명해주세요. (0) | 2024.02.19 |
---|---|
15_브라우저 작동방식 (0) | 2024.02.17 |
13_Javascript의 호이스팅에 대해 설명해주세요. (0) | 2024.02.15 |
12_JSX란 무엇인가요? (0) | 2024.02.14 |
11_데이터 10,000개를 가지고 무한 스크롤 구현시에 가장 중요하게 고려해야 할점은? (0) | 2024.02.13 |