53일차 (CS 31, 32)
쓰로틀링과 디바운싱의 개념과 사용하는 이유
두 가지 모두 고성능 웹 애플리케이션을 구축할 때 중요한 기술이다. 이들은 이벤트 핸들링을 최적화하여 불필요한 리소스 소모를 줄이고 성능을 향상하는 데 사용된다.
쓰로틀링은 이벤트 핸들러가 일정 시간 간격으로만 호출되도록 제한하는 기술이다. 예를 들어, 스크롤 이벤트나 윈도우 리사이징 이벤트와 같이 빈번하게 발생하는 이벤트에 쓰로틀링을 적용하면, 이벤트 핸들러가 지정된 시간 간격마다 실행되는 것이다. 쓰로틀링은 주로 빈번한 이벤트 처리로 인한 성능 저하를 방지하고, 불필요한 계산과 네트워크 요청을 줄여 리소스를 절약하고자 할 때 사용된다.
디바운싱은 연속적인 이벤트 호출 중 마지막 이벤트 또는 첫 이벤트만을 처리하는 기술이다. 예를 들어, 사용자가 입력 필드에 텍스트를 입력하는 동안 검색을 자동으로 수행하는 경우, 디바운싱을 사용하여 사용자가 타이핑을 멈춘 후 일정 시간이 지나면 검색을 실행하는 것이다. 디바운싱은 주로 불필요한 중간 처리를 방지하고, 쓰로틀링과 유사하게 연속적인 이벤트에서 불필요한 반족적인 처리를 줄여 성능을 향상하고자 할 때 사용된다.
두 가지의 차이점은 실행 빈도에 있는데, 쓰로틀링은 일정 시간 간격으로 이벤트를 처리하는 반면, 디바운싱은 연속적인 이벤트가 멈춘 후 일정 시간이 지나면 한 번만 이벤트를 처리한다는 점이 있다. 이러한 기술들은 사용자 경험을 향상시키고, 서버 부하를 줄이는 데 중요한 역할을 한다.
자바스크립트와 타입스크립트의 차이, 장/단점
두 언어 모두 웹 개발에 널리 사용되는 프로그래밍 언어이다. 먼저 자바스크립트는 웹 페이지에 동적인 요소를 추가하기 위해 사용된다. 자바스크립트의 장점은 동적 타이핑으로 인해 유연하게 코드를 사용할 수 있으며, 모든 주요 웹 브라우저에서 기본적으로 지원되기 때문에 브라우저 호환성이 높다는 점이 있다. 반면 단점으로는 동적 타이핑이기 때문에 큰 규모의 애플리케이션에서 타입 관련 버그가 발생하기 쉽고, 이에 따라 코드의 유지 보수가 어려울 수 있다는 점이 있다.
타입스크립트는 자바스크립트에 정적 타입을 추가한 언어이다. 이 언어의 장점은 정적 타입핑이기 때문에 컴파일 시점에 타입 검사를 수행하여 실행 전에 오류를 발견할 수 있으며, 자동 완성, 인터페이스, 제네릭 등 개발자에게 유용한 기능을 제공한다는 점이 있다. 반면 단점으로는 코드의 가독성이 떨어진다는 점과 자바스크립트로 변환하는 과정이 필요하다는 점이 있다.