자바 스크립트(java script)

✨ 자바스크립트 코드 실행 중지 방법

lamarcK 2025. 3. 29. 12:51

자바스크립트 코드의 실행을 중지하거나 일시 정지하는 방법은 여러 가지가 있으며, 사용 목적에 따라 적합한 방법이 다르다.

📌 1. debugger 문 (Statement)

  • 목적: 코드 디버깅 (Debugging)
  • 동작: 브라우저의 개발자 도구(Developer Tools)가 열려 있는 상태에서 debugger; 코드를 만나면 해당 위치에서 코드 실행을 일시 정지한다. 개발자 도구를 통해 변수 값을 확인하거나 코드를 단계별로 실행(Step through)할 수 있다.
  • 주의: 개발자 도구가 열려 있지 않으면 아무런 동작도 하지 않는다. 프로덕션(Production) 코드에는 포함하지 않는 것이 일반적이다.

📌 2. 동기적(Synchronous) 대화 상자: alert(), confirm(), prompt()

  • 목적: 사용자에게 메시지를 보여주거나 입력을 받기 위함 (원래 목적)
  • 동작: 이 함수들은 사용자 상호작용(확인 버튼 클릭 등)이 있을 때까지 코드 실행을 **차단(Block)**한다. 즉, 대화 상자가 떠 있는 동안 스크립트 실행이 멈춘다.
  • 주의: 코드 실행을 멈추는 효과는 있지만, 사용자 경험(UX)을 해치고 브라우저 렌더링을 막기 때문에 디버깅이나 특정 시점의 실행 중지 목적으로는 권장되지 않는다.

📌 3. return 문 (Statement)

  • 목적: 함수 실행 종료 및 값 반환
  • 동작: 함수 내에서 return 문을 만나면 해당 함수의 실행을 즉시 종료하고, 호출한 곳으로 제어를 넘긴다. return 뒤에 값을 명시하면 해당 값을 반환한다.
  • 사용: 특정 조건 만족 시 함수의 나머지 부분을 실행하지 않고 빠져나올 때 사용한다.

📌 4. break 문 (Statement)

  • 목적: 반복문(for, while, do...while) 또는 switch 문 종료
  • 동작: 현재 실행 중인 반복문이나 switch 문 블록을 즉시 종료하고, 해당 블록 다음의 코드로 실행 흐름을 옮긴다.
  • 사용: 반복문 내에서 특정 조건을 만족했을 때 더 이상 반복을 수행할 필요가 없을 때 사용한다.

📌 5. throw 문 (Statement)

  • 목적: 예외(Error) 발생시키기
  • 동작: throw 문은 명시적으로 에러를 발생시켜 현재 실행 중인 코드 블록(함수 등)의 실행을 중단시킨다. 발생한 에러는 try...catch 문을 사용하여 잡지 않으면 프로그램 실행이 멈출 수 있다.
  • 사용: 예상치 못한 상황이나 오류 조건을 감지했을 때 코드 실행을 중단하고 에러 처리를 위임하고자 할 때 사용한다.

📌 6. async/await (비동기 함수 내에서)

  • 목적: 비동기(Asynchronous) 작업 처리
  • 동작: async 함수 내에서 await 키워드는 Promise가 처리(resolve 또는 reject)될 때까지 해당 async 함수의 실행을 일시 정지한다. 이는 스레드를 차단하지 않고(Non-blocking) 다른 작업이 실행될 수 있도록 허용하면서 비동기 작업의 완료를 기다리는 방식이다.
  • 사용: 비동기 코드를 동기 코드처럼 보이게 하여 가독성을 높이고 비동기 흐름을 제어할 때 사용한다. 엄밀히 말해 '멈춘다'기보다는 '기다린다'에 가깝다.

어떤 목적으로 코드 실행을 멈추고 싶은지에 따라 가장 적합한 방법을 선택하여 사용해야 한다. 일반적으로 디버깅 시에는 debugger를, 함수나 반복문 제어에는 return이나 break를 사용한다.