diff --git a/Assets/GameUIController.cs b/Assets/GameUIController.cs
index d5f89d4..b602f67 100644
--- a/Assets/GameUIController.cs
+++ b/Assets/GameUIController.cs
@@ -17,6 +17,7 @@ public class GameUIController : MonoBehaviour
     [SerializeField] private Image profileImageB;
     [SerializeField] private Sprite[] profileImageSprites;  //0. 기본 드래곤 1. 기본 호랑이 2.아이보리 드래곤 3. 아이보리 호랑이
     [SerializeField] private Sprite[] indicatorSprites; //0. active 1. inactive
+
     
     private Sprite _originalSpriteA;
     private Sprite _originalSpriteB;
@@ -45,14 +46,7 @@ public class GameUIController : MonoBehaviour
     {
         GameManager.Instance.panelManager.OpenSettingsPanel();
     }
-
-    public void InitUI()
-    {
-        if (UserManager.Instance == null) return;
-        retryButton.SetActive(false);
-        playerANameText.text = UserManager.Instance.Nickname;
-    }
-
+    
     public void InitPlayersName(string playerNameA, string playerNameB)
     {
         playerANameText.text = playerNameA;
diff --git a/Assets/LYC/GameLYC.unity.meta b/Assets/LYC/GameLYC.unity.meta
index d9e199b..cea0f0a 100644
--- a/Assets/LYC/GameLYC.unity.meta
+++ b/Assets/LYC/GameLYC.unity.meta
@@ -1,5 +1,5 @@
 fileFormatVersion: 2
-guid: b8e3d5d18e544774eb144db419a327d2
+guid: ded4103a87c2de84db5f4ce2675227ef
 DefaultImporter:
   externalObjects: {}
   userData: 
diff --git a/Assets/Resources/Prefabs/Effects/Draw Effect Panel.prefab b/Assets/Resources/Prefabs/Effects/Draw Effect Panel.prefab
index 19e269f..c7dccab 100644
--- a/Assets/Resources/Prefabs/Effects/Draw Effect Panel.prefab	
+++ b/Assets/Resources/Prefabs/Effects/Draw Effect Panel.prefab	
@@ -575,7 +575,7 @@ MonoBehaviour:
   m_Name: 
   m_EditorClassIdentifier: 
   m_Material: {fileID: 0}
-  m_Color: {r: 1, g: 1, b: 1, a: 0}
+  m_Color: {r: 0, g: 0, b: 0, a: 0.5882353}
   m_RaycastTarget: 1
   m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
   m_Maskable: 1
@@ -618,10 +618,9 @@ MonoBehaviour:
   m_EditorClassIdentifier: 
   bannerObj: {fileID: 7291411618834705046}
   bannerText: {fileID: 5108301403921453943}
+  interval: 0.1
   dragonOpenEyes: {fileID: 3881260292094838299}
   dragonCloseEyes: {fileID: 6707373289257723271}
   tigerOpenEyes: {fileID: 1508819185250841244}
   tigerCloseEyes: {fileID: 399504369641388738}
-  fullText: "\uBB34\uC2B9\uBD80 \uC785\uB2C8\uB2E4"
-  interval: 0.1
   flipDuration: 0.3
diff --git a/Assets/Resources/Prefabs/Effects/Lose Effect Panel.prefab b/Assets/Resources/Prefabs/Effects/Lose Effect Panel.prefab
index 7d9ce05..82b84f5 100644
--- a/Assets/Resources/Prefabs/Effects/Lose Effect Panel.prefab	
+++ b/Assets/Resources/Prefabs/Effects/Lose Effect Panel.prefab	
@@ -499,7 +499,7 @@ MonoBehaviour:
   m_Name: 
   m_EditorClassIdentifier: 
   m_Material: {fileID: 0}
-  m_Color: {r: 1, g: 1, b: 1, a: 0}
+  m_Color: {r: 0, g: 0, b: 0, a: 0.5882353}
   m_RaycastTarget: 1
   m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
   m_Maskable: 1
@@ -542,8 +542,7 @@ MonoBehaviour:
   m_EditorClassIdentifier: 
   bannerObj: {fileID: 7291411618834705046}
   bannerText: {fileID: 5108301403921453943}
+  interval: 0.1
   characterOpenEyes: {fileID: 1632927645355555415}
   characterCloseEyes: {fileID: 3881260292094838299}
   depressedEffect: {fileID: 155037671892554820}
-  fullText: "\uD328\uBC30\uD588\uC2B5\uB2C8\uB2E4"
-  interval: 0.1
diff --git a/Assets/Resources/Prefabs/Effects/Win Effect Panel.prefab b/Assets/Resources/Prefabs/Effects/Win Effect Panel.prefab
index f0cc93a..c8e9768 100644
--- a/Assets/Resources/Prefabs/Effects/Win Effect Panel.prefab	
+++ b/Assets/Resources/Prefabs/Effects/Win Effect Panel.prefab	
@@ -837,7 +837,7 @@ MonoBehaviour:
   m_Name: 
   m_EditorClassIdentifier: 
   m_Material: {fileID: 0}
-  m_Color: {r: 1, g: 1, b: 1, a: 0}
+  m_Color: {r: 0, g: 0, b: 0, a: 0.5882353}
   m_RaycastTarget: 1
   m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
   m_Maskable: 1
@@ -866,6 +866,9 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: 9b132148519758c42824252ec9a2d3a4, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
+  bannerObj: {fileID: 0}
+  bannerText: {fileID: 5108301403921453943}
+  interval: 0.1
   haloEffectImg: {fileID: 376994097320605198}
   characterImg: {fileID: 3881260292094838299}
   shineEffectImg:
@@ -875,9 +878,6 @@ MonoBehaviour:
   circleEffectImg:
   - {fileID: 1661063685800461951}
   - {fileID: 5812078995592861983}
-  bannerText: {fileID: 5108301403921453943}
-  fullText: "\uC2B9\uB9AC\uD588\uC2B5\uB2C8\uB2E4!"
-  interval: 0.1
 --- !u!225 &4545556044007292713
 CanvasGroup:
   m_ObjectHideFlags: 0
diff --git a/Assets/Resources/Prefabs/Panels/Main Panel.prefab b/Assets/Resources/Prefabs/Panels/Main Panel.prefab
index 834ee12..ca0fdef 100644
--- a/Assets/Resources/Prefabs/Panels/Main Panel.prefab	
+++ b/Assets/Resources/Prefabs/Panels/Main Panel.prefab	
@@ -1713,7 +1713,7 @@ MonoBehaviour:
   m_OnCullStateChanged:
     m_PersistentCalls:
       m_Calls: []
-  m_text: "\uD638\uB7AD\uC774"
+  m_text: "\uD654\uB791\uB098\uBE44"
   m_isRightToLeft: 0
   m_fontAsset: {fileID: 11400000, guid: 85a19688db53c77469fc4406b01045da, type: 2}
   m_sharedMaterial: {fileID: -2477908578676791210, guid: 85a19688db53c77469fc4406b01045da, type: 2}
diff --git a/Assets/Scenes/Game.unity b/Assets/Scenes/Game.unity
index bd4adef..0f450eb 100644
--- a/Assets/Scenes/Game.unity
+++ b/Assets/Scenes/Game.unity
@@ -328,7 +328,7 @@ Camera:
   m_Enabled: 1
   serializedVersion: 2
   m_ClearFlags: 1
-  m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0}
+  m_BackGroundColor: {r: 0.5372549, g: 0.654902, b: 0.5803922, a: 1}
   m_projectionMatrixMode: 1
   m_GateFitMode: 2
   m_FOVAxisMode: 0
diff --git a/Assets/Script/Common/Constants.cs b/Assets/Script/Common/Constants.cs
index 84d60dd..0dda83a 100644
--- a/Assets/Script/Common/Constants.cs
+++ b/Assets/Script/Common/Constants.cs
@@ -9,8 +9,6 @@
     public const int MinCountForDrawCheck = 150;
     public const int RAING_POINTS = 10;
     
-    public string[] AI_NAMIES = { "이세돌",  "신사동호랭이","진짜인간임","종로3가짱돌","마스터김춘배","62세황순자","고준일 강사님"};
-    
     public enum MultiplayManagerState
     {
         CreateRoom,     // 방 생성
diff --git a/Assets/Script/Game/GameLogic.cs b/Assets/Script/Game/GameLogic.cs
index 1c70c95..8303a77 100644
--- a/Assets/Script/Game/GameLogic.cs
+++ b/Assets/Script/Game/GameLogic.cs
@@ -4,6 +4,7 @@ using System.Collections.Generic;
 using UnityEngine;
 using UnityEngine.SceneManagement;
 using PimDeWitte.UnityMainThreadDispatcher;
+using Random = UnityEngine.Random;
 
 public abstract class BasePlayerState
 {
@@ -21,11 +22,9 @@ public abstract class BasePlayerState
         
         if (gameLogic.CheckGameWin(playerType, row, col))
         {
-            GameManager.Instance.panelManager.OpenConfirmPanel($"Game Over: {playerType} Win", () =>
-            {
-                var gameResult = playerType == Enums.PlayerType.PlayerA? Enums.GameResult.Win:Enums.GameResult.Lose;
-                gameLogic.EndGame(gameResult);
-            });
+            var gameResult = playerType == Enums.PlayerType.PlayerA? Enums.GameResult.Win:Enums.GameResult.Lose;
+            GameManager.Instance.panelManager.OpenEffectPanel(gameResult);
+            gameLogic.EndGame(gameResult);
         }
         else
         {
@@ -33,10 +32,8 @@ public abstract class BasePlayerState
             {
                 if (gameLogic.CheckGameDraw())
                 {
-                    GameManager.Instance.panelManager.OpenConfirmPanel($"Game Over: Draw", () =>
-                    {
-                        gameLogic.EndGame(Enums.GameResult.Draw);
-                    });
+                    GameManager.Instance.panelManager.OpenEffectPanel(Enums.GameResult.Draw);
+                    gameLogic.EndGame(Enums.GameResult.Draw);
                 }
                 else
                 {
@@ -300,20 +297,24 @@ public class GameLogic : MonoBehaviour
         switch (gameType)
         {
             // TODO: 현재 싱글 플레이로 바로 넘어가지 않기 때문에 미사용 중
-            case Enums.GameType.SinglePlay:
-                firstPlayerState = new PlayerState(true);
-                secondPlayerState = new AIState();
-                // AI 난이도 설정(급수 설정)
-                OmokAI.Instance.SetRating(UserManager.Instance.Rating);
-                
-                //유저 이름 사진 초기화
-                GameManager.Instance.InitPlayersName(UserManager.Instance.Nickname, "AIPlayer");
-                GameManager.Instance.InitProfileImages(UserManager.Instance.imageIndex, 1);
-                
-                ReplayManager.Instance.InitReplayData(UserManager.Instance.Nickname,"PlayerAI", UserManager.Instance.imageIndex, 1);
-                
-                SetState(firstPlayerState);
-                break;
+            // case Enums.GameType.SinglePlay:
+            //     firstPlayerState = new PlayerState(true);
+            //     secondPlayerState = new AIState();
+            //     // AI 난이도 설정(급수 설정)
+            //     OmokAI.Instance.SetRating(UserManager.Instance.Rating);
+            //     
+            //     //AI닉네임 랜덤생성
+            //     var aiName = RandomAINickname();
+            //     var imageIndex = UnityEngine.Random.Range(0, 2);
+            //     
+            //     //유저 이름 사진 초기화
+            //     GameManager.Instance.InitPlayersName(UserManager.Instance.Nickname, aiName);
+            //     GameManager.Instance.InitProfileImages(UserManager.Instance.imageIndex, imageIndex);
+            //     
+            //     ReplayManager.Instance.InitReplayData(UserManager.Instance.Nickname,aiName, UserManager.Instance.imageIndex, imageIndex);
+            //     
+            //     SetState(firstPlayerState);
+            //     break;
             case Enums.GameType.MultiPlay:
                 // 메인 스레드에서 실행 - UI 업데이트는 메인 스레드에서 실행 필요
                 UnityMainThreadDispatcher.Instance().Enqueue(() =>
@@ -421,6 +422,17 @@ public class GameLogic : MonoBehaviour
         }
     }
     
+    //AI닉네임 랜덤 생성
+    private string RandomAINickname()
+    {
+        string[] AI_NAMIES = { "이세돌",  "신사동호랭이","진짜인간임","종로3가짱돌","마스터김춘배","62세황순자","고준일 강사님"};
+        
+        var index = UnityEngine.Random.Range(0, AI_NAMIES.Length);
+        
+        return AI_NAMIES[index];
+    }
+    
+    
     public void SwitchToSinglePlayer()
     {
         _multiplayManager?.Dispose();
@@ -434,18 +446,22 @@ public class GameLogic : MonoBehaviour
         secondPlayerState = new AIState();
         // AI 난이도 설정(급수 설정)
         OmokAI.Instance.SetRating(UserManager.Instance.Rating);
+        
+        //AI닉네임 랜덤생성
+        var aiName = RandomAINickname();
+        var imageIndex = UnityEngine.Random.Range(0, 2);
 
         // 메인 스레드에서 실행 - UI 업데이트는 메인 스레드에서 실행 필요
         UnityMainThreadDispatcher.Instance().Enqueue(() =>
         {
             // 스레드 확인 로그: 추후 디버깅 시 필요할 수 있을 것 같아 남겨둡니다
             // Debug.Log($"[UnityMainThreadDispatcher] 실행 스레드: {System.Threading.Thread.CurrentThread.ManagedThreadId}");
-            // UI 업데이트
-            GameManager.Instance.InitPlayersName(UserManager.Instance.Nickname, "AIPlayer");
-            GameManager.Instance.InitProfileImages(UserManager.Instance.imageIndex, 1);
-       
-            // 리플레이 데이터 업데이트
-            ReplayManager.Instance.InitReplayData(UserManager.Instance.Nickname, "PlayerAI", UserManager.Instance.imageIndex, 1);
+            
+            //유저 이름 사진 초기화
+            GameManager.Instance.InitPlayersName(UserManager.Instance.Nickname, aiName);
+            GameManager.Instance.InitProfileImages(UserManager.Instance.imageIndex, imageIndex);
+            // 리플레이 데이터 업데이트  
+            ReplayManager.Instance.InitReplayData(UserManager.Instance.Nickname,aiName, UserManager.Instance.imageIndex, imageIndex);
 
             // 로딩 패널 열려있으면 닫기
             GameManager.Instance.panelManager.CloseLoadingPanel();
@@ -564,7 +580,6 @@ public class GameLogic : MonoBehaviour
         SetState(null);
         ReplayManager.Instance.SaveReplayDataResult(result);
         //TODO: 게임 종료 후 행동 구현
-        SceneManager.LoadScene("Main");
     }
     
     //승리 확인 함수
diff --git a/Assets/Script/Game/GameManager.cs b/Assets/Script/Game/GameManager.cs
index 677308b..6ebe1f1 100644
--- a/Assets/Script/Game/GameManager.cs
+++ b/Assets/Script/Game/GameManager.cs
@@ -11,7 +11,7 @@ public class GameManager : Singleton<GameManager>
     private Enums.GameType _gameType;
     private GameLogic _gameLogic;
     private StoneController _stoneController;
-    private GameObject _omokBoardImage;
+    private GameObject _camera;
     private GameUIController _gameUIController;
     
     [SerializeField] private GameObject panelManagerPrefab;
@@ -46,10 +46,12 @@ public class GameManager : Singleton<GameManager>
         }
         else
         {
-            if (_stoneController != null && _omokBoardImage != null)
+            if (_camera != null)
             {
-                _stoneController.GetComponent<Transform>().DOShakePosition(0.5f, 0.5f);
-                _omokBoardImage.GetComponent<Transform>().DOShakePosition(0.5f, 0.5f);
+                _camera.transform.DOShakePosition(0.5f, 0.5f).OnComplete(() =>
+                {
+                    _camera.transform.position = new Vector3(0,0,-10);
+                });
             }
         }
     }
@@ -76,7 +78,7 @@ public class GameManager : Singleton<GameManager>
             _stoneController = GameObject.FindObjectOfType<StoneController>();
             _stoneController.InitStones();
             var fioTimer = FindObjectOfType<FioTimer>();
-            _omokBoardImage = GameObject.FindObjectOfType<SpriteRenderer>().gameObject;
+            _camera = GameObject.FindObjectOfType<Camera>().gameObject;
             _gameUIController = GameObject.FindObjectOfType<GameUIController>();
             _gameLogic = new GameLogic(_stoneController, _gameType, fioTimer);
             
diff --git a/Assets/Script/UI/PanelController/PanelManager.cs b/Assets/Script/UI/PanelController/PanelManager.cs
index f66194f..33400a9 100644
--- a/Assets/Script/UI/PanelController/PanelManager.cs
+++ b/Assets/Script/UI/PanelController/PanelManager.cs
@@ -17,6 +17,7 @@ public class PanelManager : MonoBehaviour
     private GameObject loadingPanelObject;
     
     private Dictionary<string, GameObject> panelPrefabs = new Dictionary<string, GameObject>();
+    private Dictionary<string, GameObject> effectPanelPrefabs = new Dictionary<string, GameObject>();
     
     private void Awake()
     {
@@ -28,6 +29,13 @@ public class PanelManager : MonoBehaviour
         {
             panelPrefabs[prefab.name] = prefab;
         }
+        
+        //게임결과 이펙트 패널
+        GameObject[] effectPrefabs = Resources.LoadAll<GameObject>("Prefabs/Effects");
+        foreach (GameObject effect in effectPrefabs)
+        {
+            effectPanelPrefabs[effect.name] = effect;
+        }
 
         Debug.Log($"총 {panelPrefabs.Count}개의 패널이 로드됨.");
     }
@@ -53,6 +61,48 @@ public class PanelManager : MonoBehaviour
 
         return null;
     }
+
+    #region 게임결과 이펙트 패널 관련
+
+    public GameObject GetEffectPanel(string panelName)
+    {
+        if (effectPanelPrefabs.TryGetValue(panelName, out GameObject prefab))
+        {
+            return Instantiate(prefab, _canvas.transform);
+        }
+        else
+        {
+            Debug.LogError($"패널 '{panelName}'을 찾을 수 없습니다.");
+        }
+
+        return null;
+    }
+
+    public void OpenEffectPanel(Enums.GameResult gameResult)
+    {
+        switch (gameResult)
+        {
+            case Enums.GameResult.Win:
+                if (_canvas != null)
+                {
+                    var winEffectPanelObject = GetEffectPanel("Win Effect Panel");
+                }
+                break;
+            case Enums.GameResult.Lose:
+                if (_canvas != null)
+                {
+                    var winEffectPanelObject = GetEffectPanel("Lose Effect Panel");
+                }
+                break;
+            case Enums.GameResult.Draw:
+                if (_canvas != null)
+                {
+                    var winEffectPanelObject = GetEffectPanel("Draw Effect Panel");
+                }
+                break;
+        }
+    }
+    #endregion
     
     public void OpenMainPanel()
     {