diff --git a/iOS/.gitignore b/iOS/.gitignore
new file mode 100644
index 0000000..b934dfb
--- /dev/null
+++ b/iOS/.gitignore
@@ -0,0 +1,140 @@
+# Created by https://www.toptal.com/developers/gitignore/api/macos,xcode,swiftpackagemanager,swift
+# Edit at https://www.toptal.com/developers/gitignore?templates=macos,xcode,swiftpackagemanager,swift
+
+### macOS ###
+# General
+.DS_Store
+.AppleDouble
+.LSOverride
+
+# Icon must end with two \r
+Icon
+
+
+# Thumbnails
+._*
+
+# Files that might appear in the root of a volume
+.DocumentRevisions-V100
+.fseventsd
+.Spotlight-V100
+.TemporaryItems
+.Trashes
+.VolumeIcon.icns
+.com.apple.timemachine.donotpresent
+
+# Directories potentially created on remote AFP share
+.AppleDB
+.AppleDesktop
+Network Trash Folder
+Temporary Items
+.apdisk
+
+### macOS Patch ###
+# iCloud generated files
+*.icloud
+
+### Swift ###
+# Xcode
+#
+# gitignore contributors: remember to update Global/Xcode.gitignore, Objective-C.gitignore & Swift.gitignore
+
+## User settings
+xcuserdata/
+
+## compatibility with Xcode 8 and earlier (ignoring not required starting Xcode 9)
+*.xcscmblueprint
+*.xccheckout
+
+## compatibility with Xcode 3 and earlier (ignoring not required starting Xcode 4)
+build/
+DerivedData/
+*.moved-aside
+*.pbxuser
+!default.pbxuser
+*.mode1v3
+!default.mode1v3
+*.mode2v3
+!default.mode2v3
+*.perspectivev3
+!default.perspectivev3
+
+## Obj-C/Swift specific
+*.hmap
+
+## App packaging
+*.ipa
+*.dSYM.zip
+*.dSYM
+
+## Playgrounds
+timeline.xctimeline
+playground.xcworkspace
+
+# Swift Package Manager
+# Add this line if you want to avoid checking in source code from Swift Package Manager dependencies.
+# Packages/
+# Package.pins
+# Package.resolved
+# *.xcodeproj
+# Xcode automatically generates this directory with a .xcworkspacedata file and xcuserdata
+# hence it is not needed unless you have added a package configuration file to your project
+# .swiftpm
+
+.build/
+
+# CocoaPods
+# We recommend against adding the Pods directory to your .gitignore. However
+# you should judge for yourself, the pros and cons are mentioned at:
+# https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control
+# Pods/
+# Add this line if you want to avoid checking in source code from the Xcode workspace
+# *.xcworkspace
+
+# Carthage
+# Add this line if you want to avoid checking in source code from Carthage dependencies.
+# Carthage/Checkouts
+
+Carthage/Build/
+
+# Accio dependency management
+Dependencies/
+.accio/
+
+# fastlane
+# It is recommended to not store the screenshots in the git repo.
+# Instead, use fastlane to re-generate the screenshots whenever they are needed.
+# For more information about the recommended setup visit:
+# https://docs.fastlane.tools/best-practices/source-control/#source-control
+
+fastlane/report.xml
+fastlane/Preview.html
+fastlane/screenshots/**/*.png
+fastlane/test_output
+
+# Code Injection
+# After new code Injection tools there's a generated folder /iOSInjectionProject
+# https://github.com/johnno1962/injectionforxcode
+
+iOSInjectionProject/
+
+### SwiftPackageManager ###
+Packages
+xcuserdata
+*.xcodeproj
+
+
+### Xcode ###
+
+## Xcode 8 and earlier
+
+### Xcode Patch ###
+*.xcodeproj/*
+!*.xcodeproj/project.pbxproj
+!*.xcodeproj/xcshareddata/
+!*.xcodeproj/project.xcworkspace/
+!*.xcworkspace/contents.xcworkspacedata
+/*.gcno
+**/xcshareddata/WorkspaceSettings.xcsettings
+
+# End of https://www.toptal.com/developers/gitignore/api/macos,xcode,swiftpackagemanager,swift
\ No newline at end of file
diff --git a/iOS/MSCoreKit/.gitignore b/iOS/MSCoreKit/.gitignore
new file mode 100644
index 0000000..0023a53
--- /dev/null
+++ b/iOS/MSCoreKit/.gitignore
@@ -0,0 +1,8 @@
+.DS_Store
+/.build
+/Packages
+xcuserdata/
+DerivedData/
+.swiftpm/configuration/registries.json
+.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata
+.netrc
diff --git a/iOS/MSCoreKit/.swiftpm/xcode/package.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/iOS/MSCoreKit/.swiftpm/xcode/package.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
new file mode 100644
index 0000000..18d9810
--- /dev/null
+++ b/iOS/MSCoreKit/.swiftpm/xcode/package.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
@@ -0,0 +1,8 @@
+
+
+
+
+ IDEDidComputeMac32BitWarning
+
+
+
diff --git a/iOS/MSCoreKit/Package.swift b/iOS/MSCoreKit/Package.swift
new file mode 100644
index 0000000..833fe9a
--- /dev/null
+++ b/iOS/MSCoreKit/Package.swift
@@ -0,0 +1,59 @@
+// swift-tools-version: 5.9
+// The swift-tools-version declares the minimum version of Swift required to build this package.
+
+import PackageDescription
+
+// MARK: - Constants
+
+extension String {
+ static let package = "MSCoreKit"
+ static let persistentStorage = "MSPersistentStorage"
+ static let networking = "MSNetworking"
+ static let fetcher = "MSFetcher"
+ static let cache = "MSCacheStorage"
+
+ var testTarget: String {
+ return self + "Tests"
+ }
+}
+
+// MARK: - Package
+
+let package = Package(
+ name: .package,
+ platforms: [
+ .iOS(.v15)
+ ],
+ products: [
+ .library(name: .persistentStorage,
+ targets: [.persistentStorage]),
+ .library(name: .networking,
+ targets: [.networking]),
+ .library(name: .fetcher,
+ targets: [.fetcher]),
+ .library(name: .cache,
+ targets: [.cache])
+ ],
+ targets: [
+ // Codes
+ .target(name: .persistentStorage),
+ .target(name: .networking),
+ .target(name: .fetcher,
+ dependencies: [
+ .target(name: .persistentStorage),
+ .target(name: .networking)
+ ]),
+ .target(name: .cache),
+
+ // Tests
+ .testTarget(name: .persistentStorage.testTarget,
+ dependencies: [.target(name: .persistentStorage)]),
+ .testTarget(name: .networking.testTarget,
+ dependencies: [.target(name: .networking)]),
+ .testTarget(name: .fetcher.testTarget,
+ dependencies: [.target(name: .fetcher)]),
+ .testTarget(name: .cache.testTarget,
+ dependencies: [.target(name: .cache)])
+ ],
+ swiftLanguageVersions: [.v5]
+)
diff --git a/iOS/MSCoreKit/Sources/MSCacheStorage/MSCacheStorage.swift b/iOS/MSCoreKit/Sources/MSCacheStorage/MSCacheStorage.swift
new file mode 100644
index 0000000..ab2123f
--- /dev/null
+++ b/iOS/MSCoreKit/Sources/MSCacheStorage/MSCacheStorage.swift
@@ -0,0 +1,6 @@
+//
+// MSCacheStorage.swift
+// MSCoreKit
+//
+// Created by 이창준 on 11/14/23.
+//
diff --git a/iOS/MSCoreKit/Sources/MSFetcher/MSFetcher.swift b/iOS/MSCoreKit/Sources/MSFetcher/MSFetcher.swift
new file mode 100644
index 0000000..32d05c6
--- /dev/null
+++ b/iOS/MSCoreKit/Sources/MSFetcher/MSFetcher.swift
@@ -0,0 +1,6 @@
+//
+// MSFetcher.swift
+// MSCoreKit
+//
+// Created by 이창준 on 11/14/23.
+//
diff --git a/iOS/MSCoreKit/Sources/MSNetworking/MSNetworking.swift b/iOS/MSCoreKit/Sources/MSNetworking/MSNetworking.swift
new file mode 100644
index 0000000..5b4af4c
--- /dev/null
+++ b/iOS/MSCoreKit/Sources/MSNetworking/MSNetworking.swift
@@ -0,0 +1,6 @@
+//
+// MSNetworking.swift
+// MSCoreKit
+//
+// Created by 이창준 on 11/14/23.
+//
diff --git a/iOS/MSCoreKit/Sources/MSPersistentStorage/MSPersistentStorage.swift b/iOS/MSCoreKit/Sources/MSPersistentStorage/MSPersistentStorage.swift
new file mode 100644
index 0000000..92cae5f
--- /dev/null
+++ b/iOS/MSCoreKit/Sources/MSPersistentStorage/MSPersistentStorage.swift
@@ -0,0 +1,6 @@
+//
+// MSPersistentStorage.swift
+// MSCoreKit
+//
+// Created by 이창준 on 11/14/23.
+//
diff --git a/iOS/MSCoreKit/Tests/MSCacheStorageTests/MSCacheStorageTests.swift b/iOS/MSCoreKit/Tests/MSCacheStorageTests/MSCacheStorageTests.swift
new file mode 100644
index 0000000..39bb565
--- /dev/null
+++ b/iOS/MSCoreKit/Tests/MSCacheStorageTests/MSCacheStorageTests.swift
@@ -0,0 +1,12 @@
+//
+// MSCacheStorageTests.swift
+// MSCoreKit
+//
+// Created by 이창준 on 11/14/23.
+//
+
+import XCTest
+
+final class MSCacheStorageTests: XCTestCase {
+
+}
diff --git a/iOS/MSCoreKit/Tests/MSFetcherTests/MSFetcherTests.swift b/iOS/MSCoreKit/Tests/MSFetcherTests/MSFetcherTests.swift
new file mode 100644
index 0000000..d33b917
--- /dev/null
+++ b/iOS/MSCoreKit/Tests/MSFetcherTests/MSFetcherTests.swift
@@ -0,0 +1,12 @@
+//
+// MSFetcherTests.swift
+// MSCoreKit
+//
+// Created by 이창준 on 11/14/23.
+//
+
+import XCTest
+
+final class MSFetcherTests: XCTestCase {
+
+}
diff --git a/iOS/MSCoreKit/Tests/MSNetworkingTests/MSNetworkingTests.swift b/iOS/MSCoreKit/Tests/MSNetworkingTests/MSNetworkingTests.swift
new file mode 100644
index 0000000..1ff7de9
--- /dev/null
+++ b/iOS/MSCoreKit/Tests/MSNetworkingTests/MSNetworkingTests.swift
@@ -0,0 +1,12 @@
+//
+// MSNetworkingTests.swift
+// MSCoreKit
+//
+// Created by 이창준 on 11/14/23.
+//
+
+import XCTest
+
+final class MSNetworkingTests: XCTestCase {
+
+}
diff --git a/iOS/MSCoreKit/Tests/MSPersistentStorageTests/MSPersistentStorageTests.swift b/iOS/MSCoreKit/Tests/MSPersistentStorageTests/MSPersistentStorageTests.swift
new file mode 100644
index 0000000..eaac037
--- /dev/null
+++ b/iOS/MSCoreKit/Tests/MSPersistentStorageTests/MSPersistentStorageTests.swift
@@ -0,0 +1,13 @@
+//
+// MSPersistentStorageTests.swift
+// MSCoreKit
+//
+// Created by 이창준 on 11/14/23.
+//
+
+import XCTest
+
+final class MSPersistentStorageTests: XCTestCase {
+
+}
+
diff --git a/iOS/MSFoundation/.gitignore b/iOS/MSFoundation/.gitignore
new file mode 100644
index 0000000..0023a53
--- /dev/null
+++ b/iOS/MSFoundation/.gitignore
@@ -0,0 +1,8 @@
+.DS_Store
+/.build
+/Packages
+xcuserdata/
+DerivedData/
+.swiftpm/configuration/registries.json
+.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata
+.netrc
diff --git a/iOS/MSFoundation/.swiftpm/xcode/package.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/iOS/MSFoundation/.swiftpm/xcode/package.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
new file mode 100644
index 0000000..18d9810
--- /dev/null
+++ b/iOS/MSFoundation/.swiftpm/xcode/package.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
@@ -0,0 +1,8 @@
+
+
+
+
+ IDEDidComputeMac32BitWarning
+
+
+
diff --git a/iOS/MSFoundation/.swiftpm/xcode/xcshareddata/xcschemes/FoundationExt.xcscheme b/iOS/MSFoundation/.swiftpm/xcode/xcshareddata/xcschemes/FoundationExt.xcscheme
new file mode 100644
index 0000000..d5e53b1
--- /dev/null
+++ b/iOS/MSFoundation/.swiftpm/xcode/xcshareddata/xcschemes/FoundationExt.xcscheme
@@ -0,0 +1,66 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/iOS/MSFoundation/.swiftpm/xcode/xcshareddata/xcschemes/MSFoundation-Package.xcscheme b/iOS/MSFoundation/.swiftpm/xcode/xcshareddata/xcschemes/MSFoundation-Package.xcscheme
new file mode 100644
index 0000000..38b856f
--- /dev/null
+++ b/iOS/MSFoundation/.swiftpm/xcode/xcshareddata/xcschemes/MSFoundation-Package.xcscheme
@@ -0,0 +1,144 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/iOS/MSFoundation/.swiftpm/xcode/xcshareddata/xcschemes/MSFoundation.xcscheme b/iOS/MSFoundation/.swiftpm/xcode/xcshareddata/xcschemes/MSFoundation.xcscheme
new file mode 100644
index 0000000..b683dc0
--- /dev/null
+++ b/iOS/MSFoundation/.swiftpm/xcode/xcshareddata/xcschemes/MSFoundation.xcscheme
@@ -0,0 +1,66 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/iOS/MSFoundation/.swiftpm/xcode/xcshareddata/xcschemes/MSLogger.xcscheme b/iOS/MSFoundation/.swiftpm/xcode/xcshareddata/xcschemes/MSLogger.xcscheme
new file mode 100644
index 0000000..c44d62d
--- /dev/null
+++ b/iOS/MSFoundation/.swiftpm/xcode/xcshareddata/xcschemes/MSLogger.xcscheme
@@ -0,0 +1,66 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/iOS/MSFoundation/.swiftpm/xcode/xcshareddata/xcschemes/MSLoggerTests.xcscheme b/iOS/MSFoundation/.swiftpm/xcode/xcshareddata/xcschemes/MSLoggerTests.xcscheme
new file mode 100644
index 0000000..652c200
--- /dev/null
+++ b/iOS/MSFoundation/.swiftpm/xcode/xcshareddata/xcschemes/MSLoggerTests.xcscheme
@@ -0,0 +1,53 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/iOS/MSFoundation/Package.swift b/iOS/MSFoundation/Package.swift
new file mode 100644
index 0000000..5a14aa8
--- /dev/null
+++ b/iOS/MSFoundation/Package.swift
@@ -0,0 +1,47 @@
+// swift-tools-version: 5.9
+// The swift-tools-version declares the minimum version of Swift required to build this package.
+
+import PackageDescription
+
+// MARK: - Constants
+
+extension String {
+ static let package = "MSFoundation"
+ static let foundationExt = "FoundationExt"
+ static let logger = "MSLogger"
+ static let userDefaults = "MSUserDefaults"
+
+ var testTarget: String {
+ return self + "Tests"
+ }
+}
+
+// MARK: - Package
+
+let package = Package(
+ name: .package,
+ platforms: [
+ .iOS(.v15)
+ ],
+ products: [
+ .library(name: .foundationExt,
+ targets: [.foundationExt]),
+ .library(name: .logger,
+ targets: [.logger]),
+ .library(name: .userDefaults,
+ targets: [.userDefaults])
+ ],
+ targets: [
+ // Codes
+ .target(name: .foundationExt),
+ .target(name: .logger),
+ .target(name: .userDefaults),
+
+ // Tests
+ .testTarget(name: .logger.testTarget,
+ dependencies: [.target(name: .logger)]),
+ .testTarget(name: .userDefaults.testTarget,
+ dependencies: [.target(name: .userDefaults)])
+ ],
+ swiftLanguageVersions: [.v5]
+)
diff --git a/iOS/MSFoundation/Sources/FoundationExt/String+.swift b/iOS/MSFoundation/Sources/FoundationExt/String+.swift
new file mode 100644
index 0000000..50e046c
--- /dev/null
+++ b/iOS/MSFoundation/Sources/FoundationExt/String+.swift
@@ -0,0 +1,6 @@
+//
+// String+.swift
+// MSFoundation
+//
+// Created by 이창준 on 11/14/23.
+//
diff --git a/iOS/MSFoundation/Sources/MSLogger/MSLogger.swift b/iOS/MSFoundation/Sources/MSLogger/MSLogger.swift
new file mode 100644
index 0000000..12a8b92
--- /dev/null
+++ b/iOS/MSFoundation/Sources/MSLogger/MSLogger.swift
@@ -0,0 +1,6 @@
+//
+// MSLogger.swift
+// MSFoundation
+//
+// Created by 이창준 on 11/14/23.
+//
diff --git a/iOS/MSFoundation/Sources/MSUserDefaults/UserDefaultsStorage.swift b/iOS/MSFoundation/Sources/MSUserDefaults/UserDefaultsStorage.swift
new file mode 100644
index 0000000..791ef38
--- /dev/null
+++ b/iOS/MSFoundation/Sources/MSUserDefaults/UserDefaultsStorage.swift
@@ -0,0 +1,10 @@
+//
+// UserDefaultsStorage.swift
+// MSFoundation
+//
+// Created by 이창준 on 11/14/23.
+//
+
+import Foundation
+
+
diff --git a/iOS/MSFoundation/Tests/MSLoggerTests/MSLoggerTests.swift b/iOS/MSFoundation/Tests/MSLoggerTests/MSLoggerTests.swift
new file mode 100644
index 0000000..cd3f09c
--- /dev/null
+++ b/iOS/MSFoundation/Tests/MSLoggerTests/MSLoggerTests.swift
@@ -0,0 +1,13 @@
+//
+// MSLoggerTests.swift
+// MSFoundation
+//
+// Created by 이창준 on 11/14/23.
+//
+
+import XCTest
+import MSLogger
+
+final class MSLoggerTests: XCTestCase {
+
+}
diff --git a/iOS/MSFoundation/Tests/MSUserDefaultsTests/MSUserDefaultsTests.swift b/iOS/MSFoundation/Tests/MSUserDefaultsTests/MSUserDefaultsTests.swift
new file mode 100644
index 0000000..757dd97
--- /dev/null
+++ b/iOS/MSFoundation/Tests/MSUserDefaultsTests/MSUserDefaultsTests.swift
@@ -0,0 +1,8 @@
+//
+// MSUserDefaultsTests.swift
+// MSFoundation
+//
+// Created by 이창준 on 11/14/23.
+//
+
+import Foundation
diff --git a/iOS/MSUIKit/.gitignore b/iOS/MSUIKit/.gitignore
new file mode 100644
index 0000000..0023a53
--- /dev/null
+++ b/iOS/MSUIKit/.gitignore
@@ -0,0 +1,8 @@
+.DS_Store
+/.build
+/Packages
+xcuserdata/
+DerivedData/
+.swiftpm/configuration/registries.json
+.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata
+.netrc
diff --git a/iOS/MSUIKit/.swiftpm/xcode/package.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/iOS/MSUIKit/.swiftpm/xcode/package.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
new file mode 100644
index 0000000..18d9810
--- /dev/null
+++ b/iOS/MSUIKit/.swiftpm/xcode/package.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
@@ -0,0 +1,8 @@
+
+
+
+
+ IDEDidComputeMac32BitWarning
+
+
+
diff --git a/iOS/MSUIKit/Package.swift b/iOS/MSUIKit/Package.swift
new file mode 100644
index 0000000..bfabf39
--- /dev/null
+++ b/iOS/MSUIKit/Package.swift
@@ -0,0 +1,39 @@
+// swift-tools-version: 5.9
+// The swift-tools-version declares the minimum version of Swift required to build this package.
+
+import PackageDescription
+
+// MARK: - Constants
+
+extension String {
+ static let package = "MSUIKit"
+ static let designSystem = "MSDesignSystem"
+ static let components = "MSUIComponents"
+
+ var testTarget: String {
+ return self + "Tests"
+ }
+}
+
+// MARK: - Package
+
+let package = Package(
+ name: .package,
+ platforms: [
+ .iOS(.v15)
+ ],
+ products: [
+ .library(name: .designSystem,
+ targets: [.designSystem]),
+ .library(name: .components,
+ targets: [.components])
+ ],
+ targets: [
+ // Codes
+ .target(name: .designSystem),
+ .target(name: .components,
+ dependencies: [.target(name: .designSystem)])
+ // Tests
+ ],
+ swiftLanguageVersions: [.v5]
+)
diff --git a/iOS/MSUIKit/Sources/MSDesignSystem/MSDesignSystem.swift b/iOS/MSUIKit/Sources/MSDesignSystem/MSDesignSystem.swift
new file mode 100644
index 0000000..bbcc51f
--- /dev/null
+++ b/iOS/MSUIKit/Sources/MSDesignSystem/MSDesignSystem.swift
@@ -0,0 +1,8 @@
+//
+// MSDesignSystem.swift
+// MSUIKit
+//
+// Created by 이창준 on 11/14/23.
+//
+
+import UIKit
diff --git a/iOS/MSUIKit/Sources/MSUIComponents/MSUIComponents.swift b/iOS/MSUIKit/Sources/MSUIComponents/MSUIComponents.swift
new file mode 100644
index 0000000..dc701bb
--- /dev/null
+++ b/iOS/MSUIKit/Sources/MSUIComponents/MSUIComponents.swift
@@ -0,0 +1,8 @@
+//
+// MSUIComponents.swift
+// MSUIKit
+//
+// Created by 이창준 on 11/14/23.
+//
+
+import UIKit
diff --git a/iOS/MSUIKit/Tests/gitkeep b/iOS/MSUIKit/Tests/gitkeep
new file mode 100644
index 0000000..e69de29
diff --git a/iOS/MusicSpot/MusicSpot/AppDelegate.swift b/iOS/MusicSpot/MusicSpot/AppDelegate.swift
new file mode 100644
index 0000000..0d0cd62
--- /dev/null
+++ b/iOS/MusicSpot/MusicSpot/AppDelegate.swift
@@ -0,0 +1,26 @@
+//
+// AppDelegate.swift
+// MusicSpot
+//
+// Created by 이창준 on 11/13/23.
+//
+
+import UIKit
+
+@main
+class AppDelegate: UIResponder, UIApplicationDelegate {
+
+ func application(_ application: UIApplication,
+ didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
+ return true
+ }
+
+ // MARK: UISceneSession Lifecycle
+
+ func application(_ application: UIApplication,
+ configurationForConnecting connectingSceneSession: UISceneSession,
+ options: UIScene.ConnectionOptions) -> UISceneConfiguration {
+ return UISceneConfiguration(name: "Default Configuration", sessionRole: connectingSceneSession.role)
+ }
+
+}
diff --git a/iOS/MusicSpot/MusicSpot/Assets.xcassets/AccentColor.colorset/Contents.json b/iOS/MusicSpot/MusicSpot/Assets.xcassets/AccentColor.colorset/Contents.json
new file mode 100644
index 0000000..274babb
--- /dev/null
+++ b/iOS/MusicSpot/MusicSpot/Assets.xcassets/AccentColor.colorset/Contents.json
@@ -0,0 +1,20 @@
+{
+ "colors" : [
+ {
+ "idiom" : "universal"
+ },
+ {
+ "appearances" : [
+ {
+ "appearance" : "luminosity",
+ "value" : "dark"
+ }
+ ],
+ "idiom" : "universal"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/iOS/MusicSpot/MusicSpot/Assets.xcassets/AppIcon.appiconset/1024.png b/iOS/MusicSpot/MusicSpot/Assets.xcassets/AppIcon.appiconset/1024.png
new file mode 100644
index 0000000..b78c3f2
Binary files /dev/null and b/iOS/MusicSpot/MusicSpot/Assets.xcassets/AppIcon.appiconset/1024.png differ
diff --git a/iOS/MusicSpot/MusicSpot/Assets.xcassets/AppIcon.appiconset/114.png b/iOS/MusicSpot/MusicSpot/Assets.xcassets/AppIcon.appiconset/114.png
new file mode 100644
index 0000000..39bba14
Binary files /dev/null and b/iOS/MusicSpot/MusicSpot/Assets.xcassets/AppIcon.appiconset/114.png differ
diff --git a/iOS/MusicSpot/MusicSpot/Assets.xcassets/AppIcon.appiconset/120.png b/iOS/MusicSpot/MusicSpot/Assets.xcassets/AppIcon.appiconset/120.png
new file mode 100644
index 0000000..c455a15
Binary files /dev/null and b/iOS/MusicSpot/MusicSpot/Assets.xcassets/AppIcon.appiconset/120.png differ
diff --git a/iOS/MusicSpot/MusicSpot/Assets.xcassets/AppIcon.appiconset/180.png b/iOS/MusicSpot/MusicSpot/Assets.xcassets/AppIcon.appiconset/180.png
new file mode 100644
index 0000000..a7a18cc
Binary files /dev/null and b/iOS/MusicSpot/MusicSpot/Assets.xcassets/AppIcon.appiconset/180.png differ
diff --git a/iOS/MusicSpot/MusicSpot/Assets.xcassets/AppIcon.appiconset/29.png b/iOS/MusicSpot/MusicSpot/Assets.xcassets/AppIcon.appiconset/29.png
new file mode 100644
index 0000000..20dab9a
Binary files /dev/null and b/iOS/MusicSpot/MusicSpot/Assets.xcassets/AppIcon.appiconset/29.png differ
diff --git a/iOS/MusicSpot/MusicSpot/Assets.xcassets/AppIcon.appiconset/40.png b/iOS/MusicSpot/MusicSpot/Assets.xcassets/AppIcon.appiconset/40.png
new file mode 100644
index 0000000..17bd08e
Binary files /dev/null and b/iOS/MusicSpot/MusicSpot/Assets.xcassets/AppIcon.appiconset/40.png differ
diff --git a/iOS/MusicSpot/MusicSpot/Assets.xcassets/AppIcon.appiconset/57.png b/iOS/MusicSpot/MusicSpot/Assets.xcassets/AppIcon.appiconset/57.png
new file mode 100644
index 0000000..548f497
Binary files /dev/null and b/iOS/MusicSpot/MusicSpot/Assets.xcassets/AppIcon.appiconset/57.png differ
diff --git a/iOS/MusicSpot/MusicSpot/Assets.xcassets/AppIcon.appiconset/58.png b/iOS/MusicSpot/MusicSpot/Assets.xcassets/AppIcon.appiconset/58.png
new file mode 100644
index 0000000..4f6512c
Binary files /dev/null and b/iOS/MusicSpot/MusicSpot/Assets.xcassets/AppIcon.appiconset/58.png differ
diff --git a/iOS/MusicSpot/MusicSpot/Assets.xcassets/AppIcon.appiconset/60.png b/iOS/MusicSpot/MusicSpot/Assets.xcassets/AppIcon.appiconset/60.png
new file mode 100644
index 0000000..5a9ebc9
Binary files /dev/null and b/iOS/MusicSpot/MusicSpot/Assets.xcassets/AppIcon.appiconset/60.png differ
diff --git a/iOS/MusicSpot/MusicSpot/Assets.xcassets/AppIcon.appiconset/80.png b/iOS/MusicSpot/MusicSpot/Assets.xcassets/AppIcon.appiconset/80.png
new file mode 100644
index 0000000..b407ed9
Binary files /dev/null and b/iOS/MusicSpot/MusicSpot/Assets.xcassets/AppIcon.appiconset/80.png differ
diff --git a/iOS/MusicSpot/MusicSpot/Assets.xcassets/AppIcon.appiconset/87.png b/iOS/MusicSpot/MusicSpot/Assets.xcassets/AppIcon.appiconset/87.png
new file mode 100644
index 0000000..ae43c83
Binary files /dev/null and b/iOS/MusicSpot/MusicSpot/Assets.xcassets/AppIcon.appiconset/87.png differ
diff --git a/iOS/MusicSpot/MusicSpot/Assets.xcassets/AppIcon.appiconset/Contents.json b/iOS/MusicSpot/MusicSpot/Assets.xcassets/AppIcon.appiconset/Contents.json
new file mode 100644
index 0000000..73d3b7f
--- /dev/null
+++ b/iOS/MusicSpot/MusicSpot/Assets.xcassets/AppIcon.appiconset/Contents.json
@@ -0,0 +1 @@
+{"images":[{"size":"60x60","expected-size":"180","filename":"180.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"3x"},{"size":"40x40","expected-size":"80","filename":"80.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"2x"},{"size":"40x40","expected-size":"120","filename":"120.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"3x"},{"size":"60x60","expected-size":"120","filename":"120.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"2x"},{"size":"57x57","expected-size":"57","filename":"57.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"1x"},{"size":"29x29","expected-size":"58","filename":"58.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"2x"},{"size":"29x29","expected-size":"29","filename":"29.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"1x"},{"size":"29x29","expected-size":"87","filename":"87.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"3x"},{"size":"57x57","expected-size":"114","filename":"114.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"2x"},{"size":"20x20","expected-size":"40","filename":"40.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"2x"},{"size":"20x20","expected-size":"60","filename":"60.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"3x"},{"size":"1024x1024","filename":"1024.png","expected-size":"1024","idiom":"ios-marketing","folder":"Assets.xcassets/AppIcon.appiconset/","scale":"1x"}]}
\ No newline at end of file
diff --git a/iOS/MusicSpot/MusicSpot/Assets.xcassets/Contents.json b/iOS/MusicSpot/MusicSpot/Assets.xcassets/Contents.json
new file mode 100644
index 0000000..73c0059
--- /dev/null
+++ b/iOS/MusicSpot/MusicSpot/Assets.xcassets/Contents.json
@@ -0,0 +1,6 @@
+{
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/iOS/MusicSpot/MusicSpot/Assets.xcassets/logo.imageset/Contents.json b/iOS/MusicSpot/MusicSpot/Assets.xcassets/logo.imageset/Contents.json
new file mode 100644
index 0000000..4f547d0
--- /dev/null
+++ b/iOS/MusicSpot/MusicSpot/Assets.xcassets/logo.imageset/Contents.json
@@ -0,0 +1,15 @@
+{
+ "images" : [
+ {
+ "filename" : "logo.pdf",
+ "idiom" : "universal"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ },
+ "properties" : {
+ "preserves-vector-representation" : true
+ }
+}
diff --git a/iOS/MusicSpot/MusicSpot/Assets.xcassets/logo.imageset/logo.pdf b/iOS/MusicSpot/MusicSpot/Assets.xcassets/logo.imageset/logo.pdf
new file mode 100644
index 0000000..77885b4
Binary files /dev/null and b/iOS/MusicSpot/MusicSpot/Assets.xcassets/logo.imageset/logo.pdf differ
diff --git a/iOS/MusicSpot/MusicSpot/Base.lproj/LaunchScreen.storyboard b/iOS/MusicSpot/MusicSpot/Base.lproj/LaunchScreen.storyboard
new file mode 100644
index 0000000..9eaed41
--- /dev/null
+++ b/iOS/MusicSpot/MusicSpot/Base.lproj/LaunchScreen.storyboard
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/iOS/MusicSpot/MusicSpot/Info.plist b/iOS/MusicSpot/MusicSpot/Info.plist
new file mode 100644
index 0000000..0eb786d
--- /dev/null
+++ b/iOS/MusicSpot/MusicSpot/Info.plist
@@ -0,0 +1,23 @@
+
+
+
+
+ UIApplicationSceneManifest
+
+ UIApplicationSupportsMultipleScenes
+
+ UISceneConfigurations
+
+ UIWindowSceneSessionRoleApplication
+
+
+ UISceneConfigurationName
+ Default Configuration
+ UISceneDelegateClassName
+ $(PRODUCT_MODULE_NAME).SceneDelegate
+
+
+
+
+
+
diff --git a/iOS/MusicSpot/MusicSpot/SceneDelegate.swift b/iOS/MusicSpot/MusicSpot/SceneDelegate.swift
new file mode 100644
index 0000000..5e3820a
--- /dev/null
+++ b/iOS/MusicSpot/MusicSpot/SceneDelegate.swift
@@ -0,0 +1,23 @@
+//
+// SceneDelegate.swift
+// MusicSpot
+//
+// Created by 이창준 on 11/13/23.
+//
+
+import UIKit
+import MSLogger
+
+class SceneDelegate: UIResponder, UIWindowSceneDelegate {
+
+ var window: UIWindow?
+
+ func scene(_ scene: UIScene,
+ willConnectTo session: UISceneSession,
+ options connectionOptions: UIScene.ConnectionOptions) {
+ guard let _ = (scene as? UIWindowScene) else { return }
+
+ print(logger)
+ }
+
+}
diff --git a/iOS/MusicSpot/MusicSpot/ko.lproj/LaunchScreen.strings b/iOS/MusicSpot/MusicSpot/ko.lproj/LaunchScreen.strings
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/iOS/MusicSpot/MusicSpot/ko.lproj/LaunchScreen.strings
@@ -0,0 +1 @@
+