diff --git a/Assets/JAY/Scripts/PlayerController.cs b/Assets/JAY/Scripts/PlayerController.cs
index 14b2319b..086d0b03 100644
--- a/Assets/JAY/Scripts/PlayerController.cs
+++ b/Assets/JAY/Scripts/PlayerController.cs
@@ -73,7 +73,7 @@ public class PlayerController : CharacterBase, IObserver<GameObject>
         _isBattle = !isHousingScene;
         Debug.Log("_isBattle: " + _isBattle);*/
 
-        SwitchBattleMode();
+        // SwitchBattleMode();
     }
     
     private void Update()
diff --git a/Assets/LIN/Resources/OvertimeWork.mp3 b/Assets/LIN/Resources/OvertimeWork.mp3
new file mode 100644
index 00000000..dcef9bd1
--- /dev/null
+++ b/Assets/LIN/Resources/OvertimeWork.mp3
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:4310396c1e8d49034500e133404bd740e2025fbc0351269a640c3300f489b47a
+size 169272
diff --git a/Assets/LIN/Resources/OvertimeWork.mp3.meta b/Assets/LIN/Resources/OvertimeWork.mp3.meta
new file mode 100644
index 00000000..f46cf0ea
--- /dev/null
+++ b/Assets/LIN/Resources/OvertimeWork.mp3.meta
@@ -0,0 +1,23 @@
+fileFormatVersion: 2
+guid: 6142a6977f91d604d98880bdda758192
+AudioImporter:
+  externalObjects: {}
+  serializedVersion: 7
+  defaultSettings:
+    serializedVersion: 2
+    loadType: 0
+    sampleRateSetting: 0
+    sampleRateOverride: 44100
+    compressionFormat: 1
+    quality: 1
+    conversionMode: 0
+    preloadAudioData: 0
+  platformSettingOverrides: {}
+  forceToMono: 0
+  normalize: 1
+  loadInBackground: 0
+  ambisonic: 0
+  3D: 1
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/LIN/Resources/TeamGathering.mp3 b/Assets/LIN/Resources/TeamGathering.mp3
new file mode 100644
index 00000000..0c09ff6c
--- /dev/null
+++ b/Assets/LIN/Resources/TeamGathering.mp3
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:47138572c5bc5e2a2237c08408b5c2a26f57d719caf5342df71f41501f637a7c
+size 446336
diff --git a/Assets/LIN/Resources/TeamGathering.mp3.meta b/Assets/LIN/Resources/TeamGathering.mp3.meta
new file mode 100644
index 00000000..93cb2e64
--- /dev/null
+++ b/Assets/LIN/Resources/TeamGathering.mp3.meta
@@ -0,0 +1,23 @@
+fileFormatVersion: 2
+guid: 59471df5d383e88478a567ac9b1e83d4
+AudioImporter:
+  externalObjects: {}
+  serializedVersion: 7
+  defaultSettings:
+    serializedVersion: 2
+    loadType: 0
+    sampleRateSetting: 0
+    sampleRateOverride: 44100
+    compressionFormat: 1
+    quality: 1
+    conversionMode: 0
+    preloadAudioData: 0
+  platformSettingOverrides: {}
+  forceToMono: 0
+  normalize: 1
+  loadInBackground: 0
+  ambisonic: 0
+  3D: 1
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/LIN/Scripts/DailyRoutine/InteractionController.cs b/Assets/LIN/Scripts/DailyRoutine/InteractionController.cs
index 8efea623..d9217d97 100644
--- a/Assets/LIN/Scripts/DailyRoutine/InteractionController.cs
+++ b/Assets/LIN/Scripts/DailyRoutine/InteractionController.cs
@@ -88,33 +88,30 @@ public class InteractionController : MonoBehaviour
         return null;
     }
 
-    //퇴근 후 돌발 이벤트
+    #region 퇴근 후 돌발 이벤트
+    
+    //이벤트 발생 확률 계산기
     private AfterWorkEventType SuddenEventCalculator()
     {
         var index = Random.Range(0, HousingConstants.AFTER_WORK_DENOMINATOR);
         return HousingConstants.AfterWorkEvents.GetValueOrDefault(index, AfterWorkEventType.None);
     }
 
+    // Interaction Controller와 같은 방식으로 작동됩니다.
     private void SuddenAfterWorkEventHappen()
     {
         AfterWorkEventType afterWorkEventType = SuddenEventCalculator();
-        Debug.Log(afterWorkEventType);
-
         if (afterWorkEventType == AfterWorkEventType.None) return;
-        switch (afterWorkEventType)
-        {
-            case AfterWorkEventType.OvertimeWork:
-                housingCanvasController.ShowSuddenEventPanel("부장님이 퇴근을 안하셔.. 야근할까?", () =>
-                {
-                    housingCanvasController.ShowSuddenEventImage(0);
-                    //Todo: 스테이터스 변경
-                });
-                break;
-            case AfterWorkEventType.TeamGathering:
-                housingCanvasController.ShowSuddenEventPanel("갑자기 팀 회식이 잡혔다. 참석 하러 가자",
-                    () => { housingCanvasController.ShowSuddenEventImage(1); });
-                break;
-        }
 
+        HousingConstants.SuddenEventTexts.TryGetValue(afterWorkEventType, out string suddenEventText);
+        
+        housingCanvasController.ShowSuddenEventPanel(suddenEventText, () =>
+        {
+            housingCanvasController.ShowSuddenEventImage(afterWorkEventType);
+            GameManager.Instance.PlaySuddenEventSound(afterWorkEventType);
+        });
     }
+
+    #endregion
+
 }
diff --git a/Assets/LIN/Scripts/UI/HousingCanvasController.cs b/Assets/LIN/Scripts/UI/HousingCanvasController.cs
index a97366ee..d93c78a0 100644
--- a/Assets/LIN/Scripts/UI/HousingCanvasController.cs
+++ b/Assets/LIN/Scripts/UI/HousingCanvasController.cs
@@ -92,15 +92,22 @@ public class HousingCanvasController : MonoBehaviour
         OnSuddenButtonPressed?.Invoke();
     }
 
-    public void ShowSuddenEventImage(int index)
+    public void ShowSuddenEventImage(AfterWorkEventType afterWorkEventType)
     {
         if (_autoHideCoroutine != null)    StopCoroutine(_autoHideCoroutine);
-        
-        suddenEventImages[index].SetActive(true);
+
+        switch (afterWorkEventType)
+        {
+            case AfterWorkEventType.OvertimeWork:
+                suddenEventImages[0].SetActive(true);
+                break;
+            case AfterWorkEventType.TeamGathering:
+                suddenEventImages[1].SetActive(true);
+                break;
+        }
         //사운드 재생
 
-        _autoHideCoroutine = StartCoroutine(AutoHideSuddenImage());
-
+        _autoHideCoroutine = StartCoroutine(AutoHideSuddenImage(afterWorkEventType));
     }
 
     public void HideSuddenEventImage()
@@ -110,10 +117,10 @@ public class HousingCanvasController : MonoBehaviour
             image.SetActive(false);
         }
     }
-    private IEnumerator AutoHideSuddenImage()
+    private IEnumerator AutoHideSuddenImage(AfterWorkEventType afterWorkEventType)
     {
         float startTime = Time.time;
-        while (Time.time - startTime < 2.0f)
+        while (Time.time - startTime < HousingConstants.SUDDENEVENT_IAMGE_SHOW_TIME)
         {
             if (Input.touchCount > 0 || Input.GetMouseButtonDown(0))
             {
@@ -122,9 +129,10 @@ public class HousingCanvasController : MonoBehaviour
             yield return null;
         }
 
-        //패널 닫고 애니메이션 null처리
+        //패널 닫고 효과음 끄기
         HideSuddenEventImage();
         HideSuddenEventPanel();
+        GameManager.Instance.StopSuddenEventSound(afterWorkEventType);
         
         _autoHideCoroutine = null;
     }
diff --git a/Assets/LIN/Scripts/UI/HousingConstants.cs b/Assets/LIN/Scripts/UI/HousingConstants.cs
index 88ad2c0b..6f1e189d 100644
--- a/Assets/LIN/Scripts/UI/HousingConstants.cs
+++ b/Assets/LIN/Scripts/UI/HousingConstants.cs
@@ -15,7 +15,7 @@ public static class HousingConstants
     //돌발 이벤트 확률 계산
     public static int AFTER_WORK_DENOMINATOR = 2;
     //돌발 이벤트 보여줄 시간
-    public static float SUDDENEVENT_IAMGE_SHOW_TIME = 3.0f;
+    public static float SUDDENEVENT_IAMGE_SHOW_TIME = 4.0f;
 
 
     #region 상호작용 멘트
@@ -33,7 +33,6 @@ public static class HousingConstants
                 "도저히 출근할 체력이 안되는걸..?","출근하는 중")},
             { ActionType.Eat, new InteractionTexts("식사를 하자","1시간 동안 체력 1을 회복한다.","밥 먹는 중") }
         };
-    #endregion
 
     public struct InteractionTexts
     {
@@ -50,9 +49,33 @@ public static class HousingConstants
             AnimationText = animationText;
         }
     }
+    #endregion
+
+    #region 돌발 이벤트
+
+    public static readonly Dictionary<AfterWorkEventType, string> SuddenEventTexts =
+        new Dictionary<AfterWorkEventType, string>
+        {
+            { AfterWorkEventType.OvertimeWork, "부장님이 퇴근을 안하셔.. 야근할까?" },
+            { AfterWorkEventType.TeamGathering, "갑자기 팀 회식이 잡혔다. 참석 하러 가자"}
+        };
+    
+    public struct SuddenEventTypes
+    {
+        public AfterWorkEventType AfterWorkEvent { get; private set; }
+        public string AfterWorkEventText { get; private set; }
+
+        public SuddenEventTypes(AfterWorkEventType afterWorkEvent, string afterWorkEventText)
+        {
+            AfterWorkEvent = afterWorkEvent;
+            AfterWorkEventText = afterWorkEventText;
+        }
+    }
+
+    #endregion
     
     // 랜덤 값에 일치하는 함수를 리턴하기 위한 딕셔너리
-    // AFTER_WORK_DENOMINATOR 값 확정 후에 키 값 수정
+    // TODO: AFTER_WORK_DENOMINATOR 값 확정 후에 키 값 수정
     public static readonly Dictionary<int, AfterWorkEventType> AfterWorkEvents = new Dictionary<int, AfterWorkEventType> {
         {0, AfterWorkEventType.OvertimeWork},
         {1, AfterWorkEventType.TeamGathering}
diff --git a/Assets/Scripts/Common/GameUtility/GameSound.cs b/Assets/Scripts/Common/GameUtility/GameSound.cs
index ff3e9f02..b4423a26 100644
--- a/Assets/Scripts/Common/GameUtility/GameSound.cs
+++ b/Assets/Scripts/Common/GameUtility/GameSound.cs
@@ -27,6 +27,10 @@ public partial class GameManager
     [SerializeField] private AudioClip eatingSFX;
     [SerializeField] private AudioClip sleepingSFX;
     
+    [Header("돌발 이벤트 효과음")]
+    [SerializeField] private AudioClip overtimeWorkSFX;
+    [SerializeField] private AudioClip teamGatheringSFX;
+    
     [Header("게임 결과 효과음")]
     [SerializeField] private AudioClip gameOverSFX;
     [SerializeField] private AudioClip victorySFX;
@@ -83,6 +87,10 @@ public partial class GameManager
             if (goToDungeonSFX != null) SafeSoundManager?.LoadAudioClip("Dungeon", goToDungeonSFX);
             if (eatingSFX != null) SafeSoundManager?.LoadAudioClip("Eating", eatingSFX);
             if (sleepingSFX != null) SafeSoundManager?.LoadAudioClip("Sleeping", sleepingSFX);
+            
+            // 돌발 이벤트 효과음 등록
+            if(overtimeWorkSFX != null) SafeSoundManager?.LoadAudioClip("OvertimeWork", overtimeWorkSFX);
+            if(teamGatheringSFX != null) SafeSoundManager?.LoadAudioClip("TeamGathering", teamGatheringSFX);
         
             // 플레이어 전투 효과음 등록
             if (housingFootstepSFX != null) SafeSoundManager?.LoadAudioClip("HousingFootstep", housingFootstepSFX);
@@ -297,6 +305,53 @@ public partial class GameManager
         }
     }
 
+    #endregion
+
+    #region 돌발 이벤트
+    public void PlaySuddenEventSound(AfterWorkEventType afterWorkEventType)
+    {
+        // 배경음 중지 (페이드아웃)
+        SafeSoundManager?.StopBGM(true, 0.5f);
+    
+        // 효과음 재생
+        switch (afterWorkEventType)
+        {
+            case AfterWorkEventType.TeamGathering:
+                SafeSoundManager?.PlaySFX("TeamGathering");
+                break;
+            case AfterWorkEventType.OvertimeWork:
+                SafeSoundManager?.PlaySFX("OvertimeWork");
+                break;
+        }
+    }
+    
+    // 상호작용 효과음 종료
+    public void StopSuddenEventSound(AfterWorkEventType afterWorkEventType, float fadeTime = 0.5f)
+    {
+        string sfxName = "";
+        
+        switch (afterWorkEventType)
+        {
+            case AfterWorkEventType.TeamGathering:
+                sfxName = "TeamGathering";
+                break;
+            case AfterWorkEventType.OvertimeWork:
+                sfxName = "OvertimeWork";
+                break;
+        }
+    
+        if (!string.IsNullOrEmpty(sfxName))
+        {
+            SafeSoundManager?.FadeOutSFXByName(sfxName, fadeTime);
+            
+            // 배경음 재개
+            if (wasPlayingBGM && previousBGMClip != null)
+            {
+                StartCoroutine(FadeOutAndPlayBGM(sfxName, fadeTime));
+            }
+        }
+    }
+
     #endregion
     
     #region 플레이어 전투 효과음 제어