I try to toggle between sleep mode and Wake up, but Arduino doesn't wake up.

Hi guys. I’m going to turn the sleep mode on/off using the switch toggle interrupt.
However, when Aduino enters sleep mode, it does not wake up and stays in sleep mode.
Is there a problem with my code? I would appreciate your advice!

Thank you!

#include <avr/sleep.h>

#define TR1 13 //트랜지스터에 LED 연결.
#define TR2 12
#define SW 2 //ON/OFF toggle 

// 슬립모드 토글을 위해 부울 변수 사용.
bool toggle_Sleeping = false;

//===========================================================================================

void setup() {
  Serial.begin(115200);
  pinMode(TR1, OUTPUT); //트랜지스터 출력 모드.
  pinMode(TR2, OUTPUT);
  
  pinMode(SW, INPUT_PULLUP); //스위치 내부 저항.

  attachInterrupt(0, toggleSleep, HIGH); //인터럽트 0번 = 2번 핀. 슬립모드 토글 인터럽트 설정.
}

//===========================================================================================
void loop() {
     Serial.println("Wait...");
     delay(2000);
}
//===========================================================================================

void Sleep() //2초간 LED ON했다가 슬립모드로 들어감.
{
  delay(100);
  Serial.println("Zzzz...");
  digitalWrite(TR1, HIGH);
  digitalWrite(TR2, HIGH);
  delay(2000);
  digitalWrite(TR1, LOW);
  digitalWrite(TR2, LOW);
  delay(100);
  Serial.flush();
  
  sleep_enable(); //슬립모드 활성화
  //detachInterrupt(0); //슬립모드로 들어가는 기존 인터럽트(인터럽트 0번 핀) 제거
  //attachInterrupt (0, WakeUp, HIGH); //슬립모드에서 깨우는 새 인터럽트 설정.
  set_sleep_mode(SLEEP_MODE_PWR_DOWN); //슬립모드 셋팅.
  sleep_cpu(); //슬립모드로 들어감. 여기서 깨어날때까지 멈춤.
}

//===========================================================================================

void WakeUp() //슬립모드를 깨우기 위한 함수.
{
  sleep_disable();
  delay(100);
  Serial.println("Wake Up!!!");
  delay(100);
  digitalWrite(TR1, HIGH);
  digitalWrite(TR2, HIGH);
  delay(500);
  digitalWrite(TR1, LOW);
  digitalWrite(TR2, LOW);
  delay(500);
  //다시 깨우는 인터럽트 -> 슬립모드 인터럽트로 변경.
  //detachInterrupt(0); 
  //attachInterrupt (0, WakeUp, Sleep);
}

//===========================================================================================

void toggleSleep() //슬립모드 토글 함수.
{
    static unsigned long last_interrupt_time = 0;
    unsigned long interrupt_time = millis();
    // 200ms보다 빠르게 인터럽트가 발생할 경우(버튼이 눌릴 경우) 바운스라고 가정하고 무시합니다.
    //바운스는 스위치에 신호가 전달되는것인데 작은 접촉만으로도 여러 번 신호가 전달될 수 있음.
    if (interrupt_time - last_interrupt_time > 200) 
    {
        // toggle state of sleep
        toggle_Sleeping = !toggle_Sleeping;

        if (toggle_Sleeping == true) {
            Sleep();
        }
        else {
            WakeUp();
        }
    }
    last_interrupt_time = interrupt_time;
}

There are many things wrong with your sketch, have a look at these so you can understand better how interrupts work:

https://www.gammon.com.au/interrupts

https://www.arduino.cc/reference/en/language/functions/external-interrupts/attachinterrupt/