반응형
JavaScript에서 일정 시간 후에 코드를 실행하거나 반복적으로 실행하고 싶을 때, setTimeout()과 setInterval()은 가장 기본이자 강력한 함수입니다. 비동기 작업의 기초가 되는 이 타이머 함수들은 UI 제어, 애니메이션, 네트워크 폴링 등 다양한 실무에서 자주 사용됩니다. 이번 포스팅에서는 setTimeout, setInterval의 개념부터 문법, 실전 예제, 주의할 점까지 완벽하게 정리해보겠습니다.
1. setTimeout 기본 개념과 사용법
1. 정의
- 일정 시간이 지난 후, 딱 한 번 함수를 실행
2. 기본 문법
setTimeout(callback, delay)
- callback: 실행할 함수
- delay: 지연 시간(ms 단위, 1000 = 1초)
3. 사용 예제
setTimeout(() => {
console.log("3초 후 실행됨");
}, 3000);
실행 결과 (브라우저 콘솔)
3초 후 실행됨 (3초 뒤 출력)
4. 함수 분리 사용
function sayHi() {
console.log("안녕하세요!");
}
setTimeout(sayHi, 2000);
2. setInterval 기본 개념과 사용법
1. 정의
- 일정 시간 간격으로 반복 실행되는 타이머 함수
2. 기본 문법
setInterval(callback, interval)
3. 사용 예제
setInterval(() => {
console.log("1초마다 실행됨");
}, 1000);
실행 결과
1초마다 실행됨
1초마다 실행됨
...
4. 카운트 예제
let count = 0;
const timer = setInterval(() => {
count++;
console.log(count);
if (count === 5) {
clearInterval(timer); // 타이머 종료
}
}, 1000);
3. 타이머 제어: clearTimeout과 clearInterval
1. clearTimeout 사용
const timeoutId = setTimeout(() => {
console.log("이 메시지는 출력되지 않음");
}, 5000);
clearTimeout(timeoutId); // 타이머 취소
2. clearInterval 사용
let n = 1;
const intervalId = setInterval(() => {
console.log(n++);
if (n > 3) {
clearInterval(intervalId);
}
}, 1000);
3. 왜 중요할까?
- 타이머를 무한정 방치하면 성능 저하 또는 메모리 누수 발생 가능
- 이벤트 발생 시 타이머 정지 등 실시간 UI 제어에서 중요
4. 실전 예제: 디지털 시계 만들기
<div id="clock"></div>
<script>
function updateClock() {
const now = new Date();
const time = now.toLocaleTimeString();
document.getElementById("clock").textContent = time;
}
setInterval(updateClock, 1000);
</script>
실행 결과
- 웹 페이지에 현재 시간이 1초마다 업데이트됨
5. 주의할 점과 고급 팁
- setTimeout()은 실행 시간이 정확하지 않음 (딜레이 + 코드 처리 시간)
- setInterval()은 누적 지연 가능성 있음 → setTimeout 재귀로 대체 추천됨
재귀형 setTimeout 예제
function repeat() {
console.log("반복 실행");
setTimeout(repeat, 1000);
}
repeat();
6. 요약 및 마무리
이번 글에서는 JavaScript의 비동기 타이머 함수인 setTimeout()과 setInterval()에 대해 알아보았습니다. 특정 시간 후 한 번 실행하거나 반복 실행할 수 있는 이 함수들은 UI 구현, 서버 폴링, 애니메이션 등 다양한 용도에 활용됩니다. 타이머를 해제하기 위한 clearTimeout(), clearInterval()도 함께 익혀두어야 안전한 코드를 만들 수 있습니다. 디지털 시계나 카운터 같은 프로젝트로 직접 실습해보세요.
7. 관련 글 링크
- 관련 글: JavaScript의 비동기 처리 (Promise, async/await) 완벽 가이드
- 태그: #JavaScript #setTimeout #setInterval #비동기 #타이머 #코딩초보자
반응형
'자바스크립트(JavaScript)' 카테고리의 다른 글
[JavaScript] 쿠키(Cookie), 세션(Session), 로컬스토리지(LocalStorage) 완벽 정리하기 (0) | 2025.04.06 |
---|---|
[JavaScript] form 입력값 검증하는 방법 (submit 전에 체크하기) (0) | 2025.04.05 |
[JavaScript] DOM 조작 방법과 오류 해결하기(document.getElementById 등) (0) | 2025.03.31 |
[JavaScript] LocalStorage와 SessionStorage의 차이점과 사용법 (0) | 2025.03.31 |
[JavaScript] fetch() 함수 사용법과 오류 해결 방법 (0) | 2025.03.31 |
댓글