Recent Posts
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
관리 메뉴

개발자 박가나

[250121 TIL] 본캠프 78일차 (면접카타) 본문

내일배움캠프

[250121 TIL] 본캠프 78일차 (면접카타)

gnchoco97 2025. 1. 21. 20:35

Promise와 async/await의 차이점과 각각의 장단점은 무엇인가요?

Promise는 비동기 로직을 처리하기 위해서 사용되는 객체로서, 비동기 로직의 결과 값을 Promise 객체로 반환합니다. then과 catch를 사용해서 성공과 실패를 보다 직관적으로 처리할 수 있고 Promise.all을 사용하여 병렬 작업을 처리하는 것도 가능하지만, 비동기 로직이 복잡해지면 가독성이 떨어질 수 있고 에러 디버깅이 어려워질 수 있습니다.

async/await은 비동기식 코드를 동기식으로 표현해서 간단하게 나타내는 것으로 Promise와 마찬가지로 비동기 로직의 결과 값을 Promise 객체로 반환합니다. 동기식 코드처럼 보이기 때문에 비동기 흐름이 복잡해지더라도 가독성이 좋고 try-catch문을 사용해서 에러 처리를 명확하게 하는 것이 가능하지만, 순차적으로 실행되기 때문에 병렬 작업에는 비효율적일 수 있습니다.

 

 

TypeScript의 interface와 type의 차이점은 무엇인가요?

interface와 type 모두 객체나 함수, 혹은 기타 데이터의 구조를 정의하기 위해 사용되고 거의 유사하지만 확장성이라는 관점에서 큰 차이점이 있습니다.

먼저 interface는 extends 키워드를 사용하여 다른 인터페이스를 상속하거나 동일한 이름으로 재선언하여 새로운 속성을 추가할 수 있으며, 주로 객체 형태의 타입을 정의하는데 사용됩니다. 반대로 type은 한 번 정의되면 동일한 이름으로 재정의가 불가능하며, 객체 형태 뿐만 아니라 유니온, 튜플, 매핑된 타입 등 좀 더 복잡한 타입을 정의하는데 유리합니다.

두 방식 모두 장단점이 있기 때문에 어떤 방식이 더 좋다기 보다는 주어진 상황에 따라 적절하게 선택하여 사용하는 것이 권장되고 있습니다.