본문 바로가기
프로그래밍

clearInterval(tt)

by 로맨틱스터디 2026. 1. 6.
728x90
반응형

1️⃣ 결론부터

clearInterval(tt)

👉 이전에 setInterval()로 만든 타이머를 멈추는 함수야.
👉 tt는 setInterval이 반환한 ID(핸들)


2️⃣ setInterval은 뭘 리턴하나?

const tt = setInterval(() => {
  console.log("1초마다 실행");
}, 1000);

📌 setInterval()은 그냥 주기적으로 실행만 하는 게 아니라
👉 타이머 ID를 하나 돌려줌

→ 그걸 변수에 저장(tt)해야 나중에 멈출 수(clearInterval(tt) 있어.


3️⃣ clearInterval은 그 ID를 받는다

clearInterval(tt);

ID가 tt인 interval 타이머를 중지해라”


4️⃣ 그럼 tt는 어디서 나타난 거임?

❌ 갑자기 생긴 게 아님
어딘가에서 반드시 이렇게 선언돼 있어야 함

let tt;

function startTimer() {
  tt = setInterval(() => {
    console.log("tick");
  }, 1000);
}

또는

const tt = setInterval(...);

만약 코드 어디에도 setInterval이 없으면 ❌
👉 clearInterval(tt)는 아무 효과 없음 (또는 에러)


5️⃣ async랑은 관계 없음

async function timer1() { ... }
  • async는 Promise / await용
  • setInterval, clearInterval은 브라우저 타이머 API

👉 서로 완전히 다른 개념


728x90

6️⃣ 흔한 실수

❌ 이런 경우

function start() {
  let tt = setInterval(...);
}

function stop() {
  clearInterval(tt); // ❌ 접근 불가
}

👉 tt가 지역변수라 stop에서 못 씀

✅ 올바른 패턴

let tt;

function start() {
  tt = setInterval(...);
}

function stop() {
  clearInterval(tt);
}

7️⃣ setTimeout이랑 비교

함수 반복 중지
setInterval clearInterval
setTimeout ❌(1회) clearTimeout

8️⃣ 한 문장 요약

  • setInterval() → 타이머 시작 + ID 반환
  • 그 ID를 변수(tt)에 저장
  • clearInterval(tt) → 그 타이머 중지
  • async랑은 무관

지금 코드 흐름 보면
👉 타이머 제어 + async 섞인 레거시 코드 분석 중 같아 😄

원하면:

  • interval 중첩 방지 패턴
  • async 안에서 타이머 쓰는 주의점
  • 실제 실행 순서(이벤트 루프)
    이것도 설명해줄게
728x90
반응형