2026년 상식닷컴 선정 식당 & 카페 리스트
최근에 오픈한 호텔을 찾는다면 살펴보세요

자바스크립트에서 setInterval()과 clearInterval()의 사용법은 무엇인가요?

_____
Q1: setInterval()이란 무엇인가요?
A1: setInterval()은 자바스크립트에서 특정 함수나 코드를 일정한 시간 간격(밀리초 단위)마다 반복 실행하도록 예약하는 함수입니다.

Q2: setInterval()의 기본 문법은 어떻게 되나요?
A2:
```javascript
const intervalID = setInterval(callbackFunction, delayInMilliseconds, arg1, arg2, ...);
```
여기서
- callbackFunction: 반복 실행할 함수
- delayInMilliseconds: 반복 간격 시간(밀리초)
- arg1, arg2, ... (선택): 콜백 함수에 전달할 인자들
- 반환값 intervalID는 나중에 clearInterval()로 반복 실행을 중지할 때 사용합니다.

Q3: setInterval()의 예제 코드를 보여주세요.
A3:
```javascript
function greet() {
console.log("Hello, world!");
}
// 1초마다 greet 함수 실행
const intervalID = setInterval(greet, 1000);
```

Q4: clearInterval()이란 무엇인가요?
A4: clearInterval()은 setInterval()로 예약된 반복 실행을 취소하는 함수입니다. 더 이상 반복을 원하지 않을 때 사용합니다.

Q5: clearInterval()의 기본 문법은 어떻게 되나요?
A5:
```javascript
clearInterval(intervalID);
```
intervalID는 setInterval() 함수가 반환하는 식별자입니다.

Q6: setInterval()과 clearInterval()을 함께 사용하여 반복을 중지하는 예제를 보여주세요.
A6:
```javascript
let count = 0;
const intervalID = setInterval(() => {
console.log(`Count is ${count}`);
count++;
if (count === 5) {
clearInterval(intervalID); // 5회 출력 후 반복 중지
console.log("Interval cleared.");
}
}, 1000);
```

Q7: setInterval()의 시간 간격이 항상 정확한가요?
A7: 아니요. setInterval()은 최소 딜레이 시간 이후에 콜백을 큐에 넣지만, 자바스크립트의 이벤트 루프, 작업 부하에 따라 실제 호출 시점이 다소 지연될 수 있습니다.

Q8: setInterval()과 setTimeout()의 차이점은 무엇인가요?
A8: setInterval()은 일정한 간격으로 콜백 함수를 반복 실행하고, setTimeout()은 지정한 시간 후에 단 한 번만 콜백 함수를 실행합니다.

Q9: setInterval()을 사용할 때 주의할 점이 있나요?
A9:
- 너무 짧은 간격을 지정하면 성능 저하가 발생할 수 있습니다.
- clearInterval()을 반드시 호출하여 반복 실행을 중단해야 메모리 누수나 원하지 않는 동작을 방지할 수 있습니다.
- 비동기 작업 중복 실행에 주의해야 합니다.

Q10: setInterval()의 반환값 intervalID는 어떤 타입인가요?
A10: 브라우저 환경에서는 숫자형이며, Node.js 환경에서는 객체형일 수 있으므로 사용 환경에 맞게 clearInterval()에 전달해야 합니다.
`setInterval()`과 `clearInterval()`은 자바스크립트에서 주기적으로 특정 작업을 수행할 때 사용하는 함수입니다.

이 두 함수는 웹 개발에서 애니메이션, 데이터 갱신, 타이머 등 다양한 용도로 활용됩니다.

아래에서 이 두 함수의 사용법과 예제를 자세히 설명하겠습니다.

1. setInterval() `setInterval()` 함수는 지정된 시간 간격(밀리초 단위)마다 특정 함수를 반복적으로 실행합니다.

이 함수는 다음과 같은 형식으로 사용됩니다: ```javascript let intervalId = setInterval(function, milliseconds); ``` - function : 반복적으로 실행할 함수입니다.

함수의 참조를 직접 전달하거나, 익명 함수를 사용할 수 있습니다.

- milliseconds : 함수가 호출될 간격을 밀리초 단위로 지정합니다.

예를 들어, 1000밀리초는 1초를 의미합니다.

예제 ```javascript let count = 0; const intervalId = setInterval(() => { count++; console.log(`Count: ${count}`); // 5초 후에 반복을 멈추기 위해 clearInterval() 호출 if (count ===

5) { clearInterval(intervalId); console.log('Interval cleared.'); } }, 1000); ``` 위의 예제에서는 1초마다 `count` 변수를 증가시키고, 그 값을 콘솔에 출력합니다.

`count`가 5에 도달하면 `clearInterval()`을 호출하여 반복을 중지합니다.



2. clearInterval() `clearInterval()` 함수는 `setInterval()`로 설정한 반복 작업을 중지합니다.

이 함수는 다음과 같은 형식으로 사용됩니다: ```javascript clearInterval(intervalId); ``` - intervalId : `setInterval()`이 반환한 고유한 ID입니다.

이 ID를 사용하여 특정 interval을 중지할 수 있습니다.

예제 위의 예제에서 사용된 `clearInterval()`을 좀 더 자세히 설명하겠습니다.

```javascript let count = 0; const intervalId = setInterval(() => { count++; console.log(`Count: ${count}`); if (count ===

5) { clearInterval(intervalId); // intervalId를 사용하여 반복 중지 console.log('Interval cleared.'); } }, 1000); ``` 이 코드에서 `setInterval()`은 1초마다 `count`를 증가시키고, `count`가 5가 되면 `clearInterval(intervalId)`를 호출하여 반복을 중지합니다.

이때 `intervalId`는 `setInterval()`이 반환한 값으로, 이를 통해 어떤 interval을 중지할지를 지정할 수 있습니다.



3. 주의사항 - 메모리 누수 : `setInterval()`로 설정한 interval이 계속해서 실행되면, 메모리 누수가 발생할 수 있습니다.

따라서 필요하지 않은 interval은 반드시 `clearInterval()`로 중지해야 합니다.

- 정확한 시간 간격 : `setInterval()`은 지정된 시간 간격을 보장하지 않습니다.

JavaScript의 이벤트 루프와 실행 컨텍스트에 따라 지연이 발생할 수 있습니다.

따라서 매우 정확한 타이밍이 필요한 경우 `setTimeout()`과 재귀 호출을 사용하는 것이 더 나을 수 있습니다.



4. `setInterval()`과 `clearInterval()`은 자바스크립트에서 주기적인 작업을 수행하는 데 매우 유용한 도구입니다.

이 두 함수를 적절히 사용하면, 애플리케이션의 동적인 기능을 구현할 수 있습니다.

하지만 사용 시 메모리 관리와 정확한 타이밍에 주의해야 합니다.

작성자: 정수빈 [비회원] | 작성일자: 1년 전 2024-09-08 14:47:29
조회수: 188 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
내용이 부정확하다면 싫어요를 클릭해주세요.