diff --git a/Resources/Assets.xcassets/AccentColor.colorset/Contents.json b/Resources/Assets.xcassets/AccentColor.colorset/Contents.json
new file mode 100644
index 0000000..eb87897
--- /dev/null
+++ b/Resources/Assets.xcassets/AccentColor.colorset/Contents.json
@@ -0,0 +1,11 @@
+{
+ "colors" : [
+ {
+ "idiom" : "universal"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Resources/Assets.xcassets/AppIcon.appiconset/Contents.json b/Resources/Assets.xcassets/AppIcon.appiconset/Contents.json
new file mode 100644
index 0000000..9221b9b
--- /dev/null
+++ b/Resources/Assets.xcassets/AppIcon.appiconset/Contents.json
@@ -0,0 +1,98 @@
+{
+ "images" : [
+ {
+ "idiom" : "iphone",
+ "scale" : "2x",
+ "size" : "20x20"
+ },
+ {
+ "idiom" : "iphone",
+ "scale" : "3x",
+ "size" : "20x20"
+ },
+ {
+ "idiom" : "iphone",
+ "scale" : "2x",
+ "size" : "29x29"
+ },
+ {
+ "idiom" : "iphone",
+ "scale" : "3x",
+ "size" : "29x29"
+ },
+ {
+ "idiom" : "iphone",
+ "scale" : "2x",
+ "size" : "40x40"
+ },
+ {
+ "idiom" : "iphone",
+ "scale" : "3x",
+ "size" : "40x40"
+ },
+ {
+ "idiom" : "iphone",
+ "scale" : "2x",
+ "size" : "60x60"
+ },
+ {
+ "idiom" : "iphone",
+ "scale" : "3x",
+ "size" : "60x60"
+ },
+ {
+ "idiom" : "ipad",
+ "scale" : "1x",
+ "size" : "20x20"
+ },
+ {
+ "idiom" : "ipad",
+ "scale" : "2x",
+ "size" : "20x20"
+ },
+ {
+ "idiom" : "ipad",
+ "scale" : "1x",
+ "size" : "29x29"
+ },
+ {
+ "idiom" : "ipad",
+ "scale" : "2x",
+ "size" : "29x29"
+ },
+ {
+ "idiom" : "ipad",
+ "scale" : "1x",
+ "size" : "40x40"
+ },
+ {
+ "idiom" : "ipad",
+ "scale" : "2x",
+ "size" : "40x40"
+ },
+ {
+ "idiom" : "ipad",
+ "scale" : "1x",
+ "size" : "76x76"
+ },
+ {
+ "idiom" : "ipad",
+ "scale" : "2x",
+ "size" : "76x76"
+ },
+ {
+ "idiom" : "ipad",
+ "scale" : "2x",
+ "size" : "83.5x83.5"
+ },
+ {
+ "idiom" : "ios-marketing",
+ "scale" : "1x",
+ "size" : "1024x1024"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Resources/Assets.xcassets/Contents.json b/Resources/Assets.xcassets/Contents.json
new file mode 100644
index 0000000..73c0059
--- /dev/null
+++ b/Resources/Assets.xcassets/Contents.json
@@ -0,0 +1,6 @@
+{
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Resources/Assets.xcassets/arrow.imageset/Contents.json b/Resources/Assets.xcassets/arrow.imageset/Contents.json
new file mode 100644
index 0000000..1f92000
--- /dev/null
+++ b/Resources/Assets.xcassets/arrow.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "quill_chevron-up.svg",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Resources/Assets.xcassets/arrow.imageset/quill_chevron-up.svg b/Resources/Assets.xcassets/arrow.imageset/quill_chevron-up.svg
new file mode 100644
index 0000000..3dc79e8
--- /dev/null
+++ b/Resources/Assets.xcassets/arrow.imageset/quill_chevron-up.svg
@@ -0,0 +1,3 @@
+
diff --git a/Resources/Assets.xcassets/f1 2.imageset/Contents.json b/Resources/Assets.xcassets/f1 2.imageset/Contents.json
new file mode 100644
index 0000000..24c474e
--- /dev/null
+++ b/Resources/Assets.xcassets/f1 2.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "image.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Resources/Assets.xcassets/f1 2.imageset/image.png b/Resources/Assets.xcassets/f1 2.imageset/image.png
new file mode 100644
index 0000000..5e1daf3
Binary files /dev/null and b/Resources/Assets.xcassets/f1 2.imageset/image.png differ
diff --git a/Resources/Assets.xcassets/f1.imageset/Contents.json b/Resources/Assets.xcassets/f1.imageset/Contents.json
new file mode 100644
index 0000000..7950970
--- /dev/null
+++ b/Resources/Assets.xcassets/f1.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "f1.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Resources/Assets.xcassets/f1.imageset/f1.png b/Resources/Assets.xcassets/f1.imageset/f1.png
new file mode 100644
index 0000000..9916c13
Binary files /dev/null and b/Resources/Assets.xcassets/f1.imageset/f1.png differ
diff --git a/Resources/Assets.xcassets/film_reel.imageset/Contents.json b/Resources/Assets.xcassets/film_reel.imageset/Contents.json
new file mode 100644
index 0000000..739cea8
--- /dev/null
+++ b/Resources/Assets.xcassets/film_reel.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "film-reel 1.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Resources/Assets.xcassets/film_reel.imageset/film-reel 1.png b/Resources/Assets.xcassets/film_reel.imageset/film-reel 1.png
new file mode 100644
index 0000000..2a4fdec
Binary files /dev/null and b/Resources/Assets.xcassets/film_reel.imageset/film-reel 1.png differ
diff --git a/Resources/Assets.xcassets/kakaoLoginBtn.imageset/Contents.json b/Resources/Assets.xcassets/kakaoLoginBtn.imageset/Contents.json
new file mode 100644
index 0000000..ce9df2f
--- /dev/null
+++ b/Resources/Assets.xcassets/kakaoLoginBtn.imageset/Contents.json
@@ -0,0 +1,12 @@
+{
+ "images" : [
+ {
+ "filename" : "LoginBtn.pdf",
+ "idiom" : "universal"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Resources/Assets.xcassets/kakaoLoginBtn.imageset/LoginBtn.pdf b/Resources/Assets.xcassets/kakaoLoginBtn.imageset/LoginBtn.pdf
new file mode 100644
index 0000000..1e76c3c
Binary files /dev/null and b/Resources/Assets.xcassets/kakaoLoginBtn.imageset/LoginBtn.pdf differ
diff --git a/Resources/Assets.xcassets/megaboxLogo.imageset/Contents.json b/Resources/Assets.xcassets/megaboxLogo.imageset/Contents.json
new file mode 100644
index 0000000..b810cc9
--- /dev/null
+++ b/Resources/Assets.xcassets/megaboxLogo.imageset/Contents.json
@@ -0,0 +1,12 @@
+{
+ "images" : [
+ {
+ "filename" : "meboxLogo.pdf",
+ "idiom" : "universal"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Resources/Assets.xcassets/megaboxLogo.imageset/meboxLogo.pdf b/Resources/Assets.xcassets/megaboxLogo.imageset/meboxLogo.pdf
new file mode 100644
index 0000000..cb93dbb
Binary files /dev/null and b/Resources/Assets.xcassets/megaboxLogo.imageset/meboxLogo.pdf differ
diff --git a/Resources/Assets.xcassets/naverLoginBtn.imageset/Contents.json b/Resources/Assets.xcassets/naverLoginBtn.imageset/Contents.json
new file mode 100644
index 0000000..ce9df2f
--- /dev/null
+++ b/Resources/Assets.xcassets/naverLoginBtn.imageset/Contents.json
@@ -0,0 +1,12 @@
+{
+ "images" : [
+ {
+ "filename" : "LoginBtn.pdf",
+ "idiom" : "universal"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Resources/Assets.xcassets/naverLoginBtn.imageset/LoginBtn.pdf b/Resources/Assets.xcassets/naverLoginBtn.imageset/LoginBtn.pdf
new file mode 100644
index 0000000..87a158d
Binary files /dev/null and b/Resources/Assets.xcassets/naverLoginBtn.imageset/LoginBtn.pdf differ
diff --git a/Resources/Assets.xcassets/pin_map.imageset/Contents.json b/Resources/Assets.xcassets/pin_map.imageset/Contents.json
new file mode 100644
index 0000000..bdf2e53
--- /dev/null
+++ b/Resources/Assets.xcassets/pin_map.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "free-icon-pin-map-8358838.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Resources/Assets.xcassets/pin_map.imageset/free-icon-pin-map-8358838.png b/Resources/Assets.xcassets/pin_map.imageset/free-icon-pin-map-8358838.png
new file mode 100644
index 0000000..ceefab4
Binary files /dev/null and b/Resources/Assets.xcassets/pin_map.imageset/free-icon-pin-map-8358838.png differ
diff --git a/Resources/Assets.xcassets/popcorn.imageset/Contents.json b/Resources/Assets.xcassets/popcorn.imageset/Contents.json
new file mode 100644
index 0000000..e6e2d7d
--- /dev/null
+++ b/Resources/Assets.xcassets/popcorn.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "free-icon-cinema-2809591.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Resources/Assets.xcassets/popcorn.imageset/free-icon-cinema-2809591.png b/Resources/Assets.xcassets/popcorn.imageset/free-icon-cinema-2809591.png
new file mode 100644
index 0000000..b81e20e
Binary files /dev/null and b/Resources/Assets.xcassets/popcorn.imageset/free-icon-cinema-2809591.png differ
diff --git a/Resources/Assets.xcassets/poster2.imageset/Contents.json b/Resources/Assets.xcassets/poster2.imageset/Contents.json
new file mode 100644
index 0000000..ad70463
--- /dev/null
+++ b/Resources/Assets.xcassets/poster2.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "image 12.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Resources/Assets.xcassets/poster2.imageset/image 12.png b/Resources/Assets.xcassets/poster2.imageset/image 12.png
new file mode 100644
index 0000000..8829e24
Binary files /dev/null and b/Resources/Assets.xcassets/poster2.imageset/image 12.png differ
diff --git a/Resources/Assets.xcassets/poster3.imageset/Contents.json b/Resources/Assets.xcassets/poster3.imageset/Contents.json
new file mode 100644
index 0000000..82e1c33
--- /dev/null
+++ b/Resources/Assets.xcassets/poster3.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "image 12-1.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Resources/Assets.xcassets/poster3.imageset/image 12-1.png b/Resources/Assets.xcassets/poster3.imageset/image 12-1.png
new file mode 100644
index 0000000..4c8c731
Binary files /dev/null and b/Resources/Assets.xcassets/poster3.imageset/image 12-1.png differ
diff --git a/Resources/Assets.xcassets/poster4.imageset/Contents.json b/Resources/Assets.xcassets/poster4.imageset/Contents.json
new file mode 100644
index 0000000..b4fba87
--- /dev/null
+++ b/Resources/Assets.xcassets/poster4.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "image 2.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Resources/Assets.xcassets/poster4.imageset/image 2.png b/Resources/Assets.xcassets/poster4.imageset/image 2.png
new file mode 100644
index 0000000..77b8935
Binary files /dev/null and b/Resources/Assets.xcassets/poster4.imageset/image 2.png differ
diff --git a/Resources/Assets.xcassets/poster5.imageset/Contents.json b/Resources/Assets.xcassets/poster5.imageset/Contents.json
new file mode 100644
index 0000000..a0a5178
--- /dev/null
+++ b/Resources/Assets.xcassets/poster5.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "image 1.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Resources/Assets.xcassets/poster5.imageset/image 1.png b/Resources/Assets.xcassets/poster5.imageset/image 1.png
new file mode 100644
index 0000000..e54821e
Binary files /dev/null and b/Resources/Assets.xcassets/poster5.imageset/image 1.png differ
diff --git a/Resources/Assets.xcassets/poster6.imageset/Contents.json b/Resources/Assets.xcassets/poster6.imageset/Contents.json
new file mode 100644
index 0000000..7950970
--- /dev/null
+++ b/Resources/Assets.xcassets/poster6.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "f1.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Resources/Assets.xcassets/poster6.imageset/f1.png b/Resources/Assets.xcassets/poster6.imageset/f1.png
new file mode 100644
index 0000000..ca20633
Binary files /dev/null and b/Resources/Assets.xcassets/poster6.imageset/f1.png differ
diff --git a/Resources/Assets.xcassets/poster7.imageset/Contents.json b/Resources/Assets.xcassets/poster7.imageset/Contents.json
new file mode 100644
index 0000000..64871da
--- /dev/null
+++ b/Resources/Assets.xcassets/poster7.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "어쩔수가 없다.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git "a/Resources/Assets.xcassets/poster7.imageset/\341\204\213\341\205\245\341\204\215\341\205\245\341\206\257\341\204\211\341\205\256\341\204\200\341\205\241 \341\204\213\341\205\245\341\206\271\341\204\203\341\205\241.png" "b/Resources/Assets.xcassets/poster7.imageset/\341\204\213\341\205\245\341\204\215\341\205\245\341\206\257\341\204\211\341\205\256\341\204\200\341\205\241 \341\204\213\341\205\245\341\206\271\341\204\203\341\205\241.png"
new file mode 100644
index 0000000..ac49ec5
Binary files /dev/null and "b/Resources/Assets.xcassets/poster7.imageset/\341\204\213\341\205\245\341\204\215\341\205\245\341\206\257\341\204\211\341\205\256\341\204\200\341\205\241 \341\204\213\341\205\245\341\206\271\341\204\203\341\205\241.png" differ
diff --git a/Resources/Assets.xcassets/poster8.imageset/Contents.json b/Resources/Assets.xcassets/poster8.imageset/Contents.json
new file mode 100644
index 0000000..e802262
--- /dev/null
+++ b/Resources/Assets.xcassets/poster8.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "무한성.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git "a/Resources/Assets.xcassets/poster8.imageset/\341\204\206\341\205\256\341\204\222\341\205\241\341\206\253\341\204\211\341\205\245\341\206\274.png" "b/Resources/Assets.xcassets/poster8.imageset/\341\204\206\341\205\256\341\204\222\341\205\241\341\206\253\341\204\211\341\205\245\341\206\274.png"
new file mode 100644
index 0000000..cec8ca2
Binary files /dev/null and "b/Resources/Assets.xcassets/poster8.imageset/\341\204\206\341\205\256\341\204\222\341\205\241\341\206\253\341\204\211\341\205\245\341\206\274.png" differ
diff --git a/Resources/Assets.xcassets/sofa.imageset/Contents.json b/Resources/Assets.xcassets/sofa.imageset/Contents.json
new file mode 100644
index 0000000..49222d7
--- /dev/null
+++ b/Resources/Assets.xcassets/sofa.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "free-icon-sofa-6087271.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Resources/Assets.xcassets/sofa.imageset/free-icon-sofa-6087271.png b/Resources/Assets.xcassets/sofa.imageset/free-icon-sofa-6087271.png
new file mode 100644
index 0000000..9b36368
Binary files /dev/null and b/Resources/Assets.xcassets/sofa.imageset/free-icon-sofa-6087271.png differ
diff --git a/Resources/Assets.xcassets/umc.imageset/Contents.json b/Resources/Assets.xcassets/umc.imageset/Contents.json
new file mode 100644
index 0000000..6457313
--- /dev/null
+++ b/Resources/Assets.xcassets/umc.imageset/Contents.json
@@ -0,0 +1,12 @@
+{
+ "images" : [
+ {
+ "filename" : "umc 1.pdf",
+ "idiom" : "universal"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Resources/Assets.xcassets/umc.imageset/umc 1.pdf b/Resources/Assets.xcassets/umc.imageset/umc 1.pdf
new file mode 100644
index 0000000..1e26365
Binary files /dev/null and b/Resources/Assets.xcassets/umc.imageset/umc 1.pdf differ
diff --git "a/Resources/Assets.xcassets/\341\204\206\341\205\256\341\204\222\341\205\241\341\206\253\341\204\211\341\205\245\341\206\274.imageset/Contents.json" "b/Resources/Assets.xcassets/\341\204\206\341\205\256\341\204\222\341\205\241\341\206\253\341\204\211\341\205\245\341\206\274.imageset/Contents.json"
new file mode 100644
index 0000000..e802262
--- /dev/null
+++ "b/Resources/Assets.xcassets/\341\204\206\341\205\256\341\204\222\341\205\241\341\206\253\341\204\211\341\205\245\341\206\274.imageset/Contents.json"
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "무한성.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git "a/Resources/Assets.xcassets/\341\204\206\341\205\256\341\204\222\341\205\241\341\206\253\341\204\211\341\205\245\341\206\274.imageset/\341\204\206\341\205\256\341\204\222\341\205\241\341\206\253\341\204\211\341\205\245\341\206\274.png" "b/Resources/Assets.xcassets/\341\204\206\341\205\256\341\204\222\341\205\241\341\206\253\341\204\211\341\205\245\341\206\274.imageset/\341\204\206\341\205\256\341\204\222\341\205\241\341\206\253\341\204\211\341\205\245\341\206\274.png"
new file mode 100644
index 0000000..b647e73
Binary files /dev/null and "b/Resources/Assets.xcassets/\341\204\206\341\205\256\341\204\222\341\205\241\341\206\253\341\204\211\341\205\245\341\206\274.imageset/\341\204\206\341\205\256\341\204\222\341\205\241\341\206\253\341\204\211\341\205\245\341\206\274.png" differ
diff --git "a/Resources/Assets.xcassets/\341\204\213\341\205\245\341\204\215\341\205\245\341\206\257\341\204\211\341\205\256\341\204\200\341\205\241 \341\204\213\341\205\245\341\206\271\341\204\203\341\205\241.imageset/Contents.json" "b/Resources/Assets.xcassets/\341\204\213\341\205\245\341\204\215\341\205\245\341\206\257\341\204\211\341\205\256\341\204\200\341\205\241 \341\204\213\341\205\245\341\206\271\341\204\203\341\205\241.imageset/Contents.json"
new file mode 100644
index 0000000..64871da
--- /dev/null
+++ "b/Resources/Assets.xcassets/\341\204\213\341\205\245\341\204\215\341\205\245\341\206\257\341\204\211\341\205\256\341\204\200\341\205\241 \341\204\213\341\205\245\341\206\271\341\204\203\341\205\241.imageset/Contents.json"
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "어쩔수가 없다.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git "a/Resources/Assets.xcassets/\341\204\213\341\205\245\341\204\215\341\205\245\341\206\257\341\204\211\341\205\256\341\204\200\341\205\241 \341\204\213\341\205\245\341\206\271\341\204\203\341\205\241.imageset/\341\204\213\341\205\245\341\204\215\341\205\245\341\206\257\341\204\211\341\205\256\341\204\200\341\205\241 \341\204\213\341\205\245\341\206\271\341\204\203\341\205\241.png" "b/Resources/Assets.xcassets/\341\204\213\341\205\245\341\204\215\341\205\245\341\206\257\341\204\211\341\205\256\341\204\200\341\205\241 \341\204\213\341\205\245\341\206\271\341\204\203\341\205\241.imageset/\341\204\213\341\205\245\341\204\215\341\205\245\341\206\257\341\204\211\341\205\256\341\204\200\341\205\241 \341\204\213\341\205\245\341\206\271\341\204\203\341\205\241.png"
new file mode 100644
index 0000000..b1d50dd
Binary files /dev/null and "b/Resources/Assets.xcassets/\341\204\213\341\205\245\341\204\215\341\205\245\341\206\257\341\204\211\341\205\256\341\204\200\341\205\241 \341\204\213\341\205\245\341\206\271\341\204\203\341\205\241.imageset/\341\204\213\341\205\245\341\204\215\341\205\245\341\206\257\341\204\211\341\205\256\341\204\200\341\205\241 \341\204\213\341\205\245\341\206\271\341\204\203\341\205\241.png" differ
diff --git "a/Resources/Assets.xcassets/\353\252\250\353\205\270\353\205\270\354\274\200 \355\236\210\353\251\224 2.imageset/Contents.json" "b/Resources/Assets.xcassets/\353\252\250\353\205\270\353\205\270\354\274\200 \355\236\210\353\251\224 2.imageset/Contents.json"
new file mode 100644
index 0000000..dc4f61a
--- /dev/null
+++ "b/Resources/Assets.xcassets/\353\252\250\353\205\270\353\205\270\354\274\200 \355\236\210\353\251\224 2.imageset/Contents.json"
@@ -0,0 +1,12 @@
+{
+ "images" : [
+ {
+ "filename" : "image 2.pdf",
+ "idiom" : "universal"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git "a/Resources/Assets.xcassets/\353\252\250\353\205\270\353\205\270\354\274\200 \355\236\210\353\251\224 2.imageset/image 2.pdf" "b/Resources/Assets.xcassets/\353\252\250\353\205\270\353\205\270\354\274\200 \355\236\210\353\251\224 2.imageset/image 2.pdf"
new file mode 100644
index 0000000..101b1d9
Binary files /dev/null and "b/Resources/Assets.xcassets/\353\252\250\353\205\270\353\205\270\354\274\200 \355\236\210\353\251\224 2.imageset/image 2.pdf" differ
diff --git "a/Resources/Assets.xcassets/\353\252\250\353\205\270\353\205\270\354\274\200 \355\236\210\353\251\224.imageset/Contents.json" "b/Resources/Assets.xcassets/\353\252\250\353\205\270\353\205\270\354\274\200 \355\236\210\353\251\224.imageset/Contents.json"
new file mode 100644
index 0000000..b4fba87
--- /dev/null
+++ "b/Resources/Assets.xcassets/\353\252\250\353\205\270\353\205\270\354\274\200 \355\236\210\353\251\224.imageset/Contents.json"
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "image 2.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git "a/Resources/Assets.xcassets/\353\252\250\353\205\270\353\205\270\354\274\200 \355\236\210\353\251\224.imageset/image 2.png" "b/Resources/Assets.xcassets/\353\252\250\353\205\270\353\205\270\354\274\200 \355\236\210\353\251\224.imageset/image 2.png"
new file mode 100644
index 0000000..a8dfcbf
Binary files /dev/null and "b/Resources/Assets.xcassets/\353\252\250\353\205\270\353\205\270\354\274\200 \355\236\210\353\251\224.imageset/image 2.png" differ
diff --git "a/Resources/Assets.xcassets/\353\254\264\353\271\204\355\224\274\353\223\234.imageset/Contents.json" "b/Resources/Assets.xcassets/\353\254\264\353\271\204\355\224\274\353\223\234.imageset/Contents.json"
new file mode 100644
index 0000000..24c474e
--- /dev/null
+++ "b/Resources/Assets.xcassets/\353\254\264\353\271\204\355\224\274\353\223\234.imageset/Contents.json"
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "image.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git "a/Resources/Assets.xcassets/\353\254\264\353\271\204\355\224\274\353\223\234.imageset/image.png" "b/Resources/Assets.xcassets/\353\254\264\353\271\204\355\224\274\353\223\234.imageset/image.png"
new file mode 100644
index 0000000..42d1ed8
Binary files /dev/null and "b/Resources/Assets.xcassets/\353\254\264\353\271\204\355\224\274\353\223\234.imageset/image.png" differ
diff --git "a/Resources/Assets.xcassets/\354\226\274\352\265\264 2.imageset/Contents.json" "b/Resources/Assets.xcassets/\354\226\274\352\265\264 2.imageset/Contents.json"
new file mode 100644
index 0000000..dc4f61a
--- /dev/null
+++ "b/Resources/Assets.xcassets/\354\226\274\352\265\264 2.imageset/Contents.json"
@@ -0,0 +1,12 @@
+{
+ "images" : [
+ {
+ "filename" : "image 2.pdf",
+ "idiom" : "universal"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git "a/Resources/Assets.xcassets/\354\226\274\352\265\264 2.imageset/image 2.pdf" "b/Resources/Assets.xcassets/\354\226\274\352\265\264 2.imageset/image 2.pdf"
new file mode 100644
index 0000000..1ede1f9
Binary files /dev/null and "b/Resources/Assets.xcassets/\354\226\274\352\265\264 2.imageset/image 2.pdf" differ
diff --git "a/Resources/Assets.xcassets/\354\226\274\352\265\264.imageset/Contents.json" "b/Resources/Assets.xcassets/\354\226\274\352\265\264.imageset/Contents.json"
new file mode 100644
index 0000000..a0a5178
--- /dev/null
+++ "b/Resources/Assets.xcassets/\354\226\274\352\265\264.imageset/Contents.json"
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "image 1.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git "a/Resources/Assets.xcassets/\354\226\274\352\265\264.imageset/image 1.png" "b/Resources/Assets.xcassets/\354\226\274\352\265\264.imageset/image 1.png"
new file mode 100644
index 0000000..96ea81c
Binary files /dev/null and "b/Resources/Assets.xcassets/\354\226\274\352\265\264.imageset/image 1.png" differ
diff --git a/Resources/Colors.xcassets/Contents.json b/Resources/Colors.xcassets/Contents.json
new file mode 100644
index 0000000..73c0059
--- /dev/null
+++ b/Resources/Colors.xcassets/Contents.json
@@ -0,0 +1,6 @@
+{
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Resources/Colors.xcassets/black.colorset/Contents.json b/Resources/Colors.xcassets/black.colorset/Contents.json
new file mode 100644
index 0000000..3fe9b59
--- /dev/null
+++ b/Resources/Colors.xcassets/black.colorset/Contents.json
@@ -0,0 +1,38 @@
+{
+ "colors" : [
+ {
+ "color" : {
+ "color-space" : "srgb",
+ "components" : {
+ "alpha" : "1.000",
+ "blue" : "0x00",
+ "green" : "0x00",
+ "red" : "0x00"
+ }
+ },
+ "idiom" : "universal"
+ },
+ {
+ "appearances" : [
+ {
+ "appearance" : "luminosity",
+ "value" : "dark"
+ }
+ ],
+ "color" : {
+ "color-space" : "srgb",
+ "components" : {
+ "alpha" : "1.000",
+ "blue" : "0xFF",
+ "green" : "0xFF",
+ "red" : "0xFE"
+ }
+ },
+ "idiom" : "universal"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Resources/Colors.xcassets/blue00.colorset/Contents.json b/Resources/Colors.xcassets/blue00.colorset/Contents.json
new file mode 100644
index 0000000..5d58adb
--- /dev/null
+++ b/Resources/Colors.xcassets/blue00.colorset/Contents.json
@@ -0,0 +1,38 @@
+{
+ "colors" : [
+ {
+ "color" : {
+ "color-space" : "srgb",
+ "components" : {
+ "alpha" : "1.000",
+ "blue" : "0xFA",
+ "green" : "0xF7",
+ "red" : "0xF3"
+ }
+ },
+ "idiom" : "universal"
+ },
+ {
+ "appearances" : [
+ {
+ "appearance" : "luminosity",
+ "value" : "dark"
+ }
+ ],
+ "color" : {
+ "color-space" : "srgb",
+ "components" : {
+ "alpha" : "1.000",
+ "blue" : "1.000",
+ "green" : "1.000",
+ "red" : "1.000"
+ }
+ },
+ "idiom" : "universal"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Resources/Colors.xcassets/blue01.colorset/Contents.json b/Resources/Colors.xcassets/blue01.colorset/Contents.json
new file mode 100644
index 0000000..ac41082
--- /dev/null
+++ b/Resources/Colors.xcassets/blue01.colorset/Contents.json
@@ -0,0 +1,38 @@
+{
+ "colors" : [
+ {
+ "color" : {
+ "color-space" : "srgb",
+ "components" : {
+ "alpha" : "1.000",
+ "blue" : "0xF7",
+ "green" : "0xF2",
+ "red" : "0xED"
+ }
+ },
+ "idiom" : "universal"
+ },
+ {
+ "appearances" : [
+ {
+ "appearance" : "luminosity",
+ "value" : "dark"
+ }
+ ],
+ "color" : {
+ "color-space" : "srgb",
+ "components" : {
+ "alpha" : "1.000",
+ "blue" : "0xFF",
+ "green" : "0xFF",
+ "red" : "0xFE"
+ }
+ },
+ "idiom" : "universal"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Resources/Colors.xcassets/blue02.colorset/Contents.json b/Resources/Colors.xcassets/blue02.colorset/Contents.json
new file mode 100644
index 0000000..7e32c7e
--- /dev/null
+++ b/Resources/Colors.xcassets/blue02.colorset/Contents.json
@@ -0,0 +1,38 @@
+{
+ "colors" : [
+ {
+ "color" : {
+ "color-space" : "srgb",
+ "components" : {
+ "alpha" : "1.000",
+ "blue" : "0xEF",
+ "green" : "0xE5",
+ "red" : "0xDA"
+ }
+ },
+ "idiom" : "universal"
+ },
+ {
+ "appearances" : [
+ {
+ "appearance" : "luminosity",
+ "value" : "dark"
+ }
+ ],
+ "color" : {
+ "color-space" : "srgb",
+ "components" : {
+ "alpha" : "1.000",
+ "blue" : "0xFF",
+ "green" : "0xFF",
+ "red" : "0xFE"
+ }
+ },
+ "idiom" : "universal"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Resources/Colors.xcassets/blue03.colorset/Contents.json b/Resources/Colors.xcassets/blue03.colorset/Contents.json
new file mode 100644
index 0000000..9d80dc4
--- /dev/null
+++ b/Resources/Colors.xcassets/blue03.colorset/Contents.json
@@ -0,0 +1,38 @@
+{
+ "colors" : [
+ {
+ "color" : {
+ "color-space" : "srgb",
+ "components" : {
+ "alpha" : "1.000",
+ "blue" : "0xCC",
+ "green" : "0xAA",
+ "red" : "0x88"
+ }
+ },
+ "idiom" : "universal"
+ },
+ {
+ "appearances" : [
+ {
+ "appearance" : "luminosity",
+ "value" : "dark"
+ }
+ ],
+ "color" : {
+ "color-space" : "srgb",
+ "components" : {
+ "alpha" : "1.000",
+ "blue" : "0xFF",
+ "green" : "0xFF",
+ "red" : "0xFE"
+ }
+ },
+ "idiom" : "universal"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Resources/Colors.xcassets/blue04.colorset/Contents.json b/Resources/Colors.xcassets/blue04.colorset/Contents.json
new file mode 100644
index 0000000..f47d6f9
--- /dev/null
+++ b/Resources/Colors.xcassets/blue04.colorset/Contents.json
@@ -0,0 +1,38 @@
+{
+ "colors" : [
+ {
+ "color" : {
+ "color-space" : "srgb",
+ "components" : {
+ "alpha" : "1.000",
+ "blue" : "0xB8",
+ "green" : "0x99",
+ "red" : "0x7A"
+ }
+ },
+ "idiom" : "universal"
+ },
+ {
+ "appearances" : [
+ {
+ "appearance" : "luminosity",
+ "value" : "dark"
+ }
+ ],
+ "color" : {
+ "color-space" : "srgb",
+ "components" : {
+ "alpha" : "1.000",
+ "blue" : "0xFF",
+ "green" : "0xFF",
+ "red" : "0xFE"
+ }
+ },
+ "idiom" : "universal"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Resources/Colors.xcassets/blue05.colorset/Contents.json b/Resources/Colors.xcassets/blue05.colorset/Contents.json
new file mode 100644
index 0000000..d1c77f8
--- /dev/null
+++ b/Resources/Colors.xcassets/blue05.colorset/Contents.json
@@ -0,0 +1,38 @@
+{
+ "colors" : [
+ {
+ "color" : {
+ "color-space" : "srgb",
+ "components" : {
+ "alpha" : "1.000",
+ "blue" : "0xA3",
+ "green" : "0x88",
+ "red" : "0x6D"
+ }
+ },
+ "idiom" : "universal"
+ },
+ {
+ "appearances" : [
+ {
+ "appearance" : "luminosity",
+ "value" : "dark"
+ }
+ ],
+ "color" : {
+ "color-space" : "srgb",
+ "components" : {
+ "alpha" : "1.000",
+ "blue" : "0xFF",
+ "green" : "0xFF",
+ "red" : "0xFE"
+ }
+ },
+ "idiom" : "universal"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Resources/Colors.xcassets/blue06.colorset/Contents.json b/Resources/Colors.xcassets/blue06.colorset/Contents.json
new file mode 100644
index 0000000..fa61276
--- /dev/null
+++ b/Resources/Colors.xcassets/blue06.colorset/Contents.json
@@ -0,0 +1,38 @@
+{
+ "colors" : [
+ {
+ "color" : {
+ "color-space" : "srgb",
+ "components" : {
+ "alpha" : "1.000",
+ "blue" : "0x99",
+ "green" : "0x80",
+ "red" : "0x66"
+ }
+ },
+ "idiom" : "universal"
+ },
+ {
+ "appearances" : [
+ {
+ "appearance" : "luminosity",
+ "value" : "dark"
+ }
+ ],
+ "color" : {
+ "color-space" : "srgb",
+ "components" : {
+ "alpha" : "1.000",
+ "blue" : "0xFF",
+ "green" : "0xFF",
+ "red" : "0xFE"
+ }
+ },
+ "idiom" : "universal"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Resources/Colors.xcassets/blue07.colorset/Contents.json b/Resources/Colors.xcassets/blue07.colorset/Contents.json
new file mode 100644
index 0000000..fa61276
--- /dev/null
+++ b/Resources/Colors.xcassets/blue07.colorset/Contents.json
@@ -0,0 +1,38 @@
+{
+ "colors" : [
+ {
+ "color" : {
+ "color-space" : "srgb",
+ "components" : {
+ "alpha" : "1.000",
+ "blue" : "0x99",
+ "green" : "0x80",
+ "red" : "0x66"
+ }
+ },
+ "idiom" : "universal"
+ },
+ {
+ "appearances" : [
+ {
+ "appearance" : "luminosity",
+ "value" : "dark"
+ }
+ ],
+ "color" : {
+ "color-space" : "srgb",
+ "components" : {
+ "alpha" : "1.000",
+ "blue" : "0xFF",
+ "green" : "0xFF",
+ "red" : "0xFE"
+ }
+ },
+ "idiom" : "universal"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Resources/Colors.xcassets/blue08.colorset/Contents.json b/Resources/Colors.xcassets/blue08.colorset/Contents.json
new file mode 100644
index 0000000..45ffb79
--- /dev/null
+++ b/Resources/Colors.xcassets/blue08.colorset/Contents.json
@@ -0,0 +1,38 @@
+{
+ "colors" : [
+ {
+ "color" : {
+ "color-space" : "srgb",
+ "components" : {
+ "alpha" : "1.000",
+ "blue" : "0x5C",
+ "green" : "0x4C",
+ "red" : "0x3D"
+ }
+ },
+ "idiom" : "universal"
+ },
+ {
+ "appearances" : [
+ {
+ "appearance" : "luminosity",
+ "value" : "dark"
+ }
+ ],
+ "color" : {
+ "color-space" : "srgb",
+ "components" : {
+ "alpha" : "1.000",
+ "blue" : "0xFF",
+ "green" : "0xFF",
+ "red" : "0xFE"
+ }
+ },
+ "idiom" : "universal"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Resources/Colors.xcassets/blue09.colorset/Contents.json b/Resources/Colors.xcassets/blue09.colorset/Contents.json
new file mode 100644
index 0000000..515b45a
--- /dev/null
+++ b/Resources/Colors.xcassets/blue09.colorset/Contents.json
@@ -0,0 +1,38 @@
+{
+ "colors" : [
+ {
+ "color" : {
+ "color-space" : "srgb",
+ "components" : {
+ "alpha" : "1.000",
+ "blue" : "0x47",
+ "green" : "0x3B",
+ "red" : "0x30"
+ }
+ },
+ "idiom" : "universal"
+ },
+ {
+ "appearances" : [
+ {
+ "appearance" : "luminosity",
+ "value" : "dark"
+ }
+ ],
+ "color" : {
+ "color-space" : "srgb",
+ "components" : {
+ "alpha" : "1.000",
+ "blue" : "0xFF",
+ "green" : "0xFF",
+ "red" : "0xFE"
+ }
+ },
+ "idiom" : "universal"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Resources/Colors.xcassets/gray00.colorset/Contents.json b/Resources/Colors.xcassets/gray00.colorset/Contents.json
new file mode 100644
index 0000000..616f828
--- /dev/null
+++ b/Resources/Colors.xcassets/gray00.colorset/Contents.json
@@ -0,0 +1,38 @@
+{
+ "colors" : [
+ {
+ "color" : {
+ "color-space" : "srgb",
+ "components" : {
+ "alpha" : "1.000",
+ "blue" : "0xF2",
+ "green" : "0xF2",
+ "red" : "0xF2"
+ }
+ },
+ "idiom" : "universal"
+ },
+ {
+ "appearances" : [
+ {
+ "appearance" : "luminosity",
+ "value" : "dark"
+ }
+ ],
+ "color" : {
+ "color-space" : "srgb",
+ "components" : {
+ "alpha" : "1.000",
+ "blue" : "0xFF",
+ "green" : "0xFF",
+ "red" : "0xFE"
+ }
+ },
+ "idiom" : "universal"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Resources/Colors.xcassets/gray01.colorset/Contents.json b/Resources/Colors.xcassets/gray01.colorset/Contents.json
new file mode 100644
index 0000000..bb37089
--- /dev/null
+++ b/Resources/Colors.xcassets/gray01.colorset/Contents.json
@@ -0,0 +1,38 @@
+{
+ "colors" : [
+ {
+ "color" : {
+ "color-space" : "srgb",
+ "components" : {
+ "alpha" : "1.000",
+ "blue" : "0xEB",
+ "green" : "0xEB",
+ "red" : "0xEB"
+ }
+ },
+ "idiom" : "universal"
+ },
+ {
+ "appearances" : [
+ {
+ "appearance" : "luminosity",
+ "value" : "dark"
+ }
+ ],
+ "color" : {
+ "color-space" : "srgb",
+ "components" : {
+ "alpha" : "1.000",
+ "blue" : "0xFF",
+ "green" : "0xFF",
+ "red" : "0xFE"
+ }
+ },
+ "idiom" : "universal"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Resources/Colors.xcassets/gray02.colorset/Contents.json b/Resources/Colors.xcassets/gray02.colorset/Contents.json
new file mode 100644
index 0000000..4b319f2
--- /dev/null
+++ b/Resources/Colors.xcassets/gray02.colorset/Contents.json
@@ -0,0 +1,38 @@
+{
+ "colors" : [
+ {
+ "color" : {
+ "color-space" : "srgb",
+ "components" : {
+ "alpha" : "1.000",
+ "blue" : "0xD5",
+ "green" : "0xD5",
+ "red" : "0xD5"
+ }
+ },
+ "idiom" : "universal"
+ },
+ {
+ "appearances" : [
+ {
+ "appearance" : "luminosity",
+ "value" : "dark"
+ }
+ ],
+ "color" : {
+ "color-space" : "srgb",
+ "components" : {
+ "alpha" : "1.000",
+ "blue" : "0xFF",
+ "green" : "0xFF",
+ "red" : "0xFE"
+ }
+ },
+ "idiom" : "universal"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Resources/Colors.xcassets/gray03.colorset/Contents.json b/Resources/Colors.xcassets/gray03.colorset/Contents.json
new file mode 100644
index 0000000..c08da6e
--- /dev/null
+++ b/Resources/Colors.xcassets/gray03.colorset/Contents.json
@@ -0,0 +1,38 @@
+{
+ "colors" : [
+ {
+ "color" : {
+ "color-space" : "srgb",
+ "components" : {
+ "alpha" : "1.000",
+ "blue" : "0x78",
+ "green" : "0x78",
+ "red" : "0x78"
+ }
+ },
+ "idiom" : "universal"
+ },
+ {
+ "appearances" : [
+ {
+ "appearance" : "luminosity",
+ "value" : "dark"
+ }
+ ],
+ "color" : {
+ "color-space" : "srgb",
+ "components" : {
+ "alpha" : "1.000",
+ "blue" : "0xFF",
+ "green" : "0xFF",
+ "red" : "0xFE"
+ }
+ },
+ "idiom" : "universal"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Resources/Colors.xcassets/gray04.colorset/Contents.json b/Resources/Colors.xcassets/gray04.colorset/Contents.json
new file mode 100644
index 0000000..703da77
--- /dev/null
+++ b/Resources/Colors.xcassets/gray04.colorset/Contents.json
@@ -0,0 +1,38 @@
+{
+ "colors" : [
+ {
+ "color" : {
+ "color-space" : "srgb",
+ "components" : {
+ "alpha" : "1.000",
+ "blue" : "0x6C",
+ "green" : "0x6C",
+ "red" : "0x6C"
+ }
+ },
+ "idiom" : "universal"
+ },
+ {
+ "appearances" : [
+ {
+ "appearance" : "luminosity",
+ "value" : "dark"
+ }
+ ],
+ "color" : {
+ "color-space" : "srgb",
+ "components" : {
+ "alpha" : "1.000",
+ "blue" : "0xFF",
+ "green" : "0xFF",
+ "red" : "0xFE"
+ }
+ },
+ "idiom" : "universal"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Resources/Colors.xcassets/gray05.colorset/Contents.json b/Resources/Colors.xcassets/gray05.colorset/Contents.json
new file mode 100644
index 0000000..00c9a49
--- /dev/null
+++ b/Resources/Colors.xcassets/gray05.colorset/Contents.json
@@ -0,0 +1,38 @@
+{
+ "colors" : [
+ {
+ "color" : {
+ "color-space" : "srgb",
+ "components" : {
+ "alpha" : "1.000",
+ "blue" : "0x60",
+ "green" : "0x60",
+ "red" : "0x60"
+ }
+ },
+ "idiom" : "universal"
+ },
+ {
+ "appearances" : [
+ {
+ "appearance" : "luminosity",
+ "value" : "dark"
+ }
+ ],
+ "color" : {
+ "color-space" : "srgb",
+ "components" : {
+ "alpha" : "1.000",
+ "blue" : "0xFF",
+ "green" : "0xFF",
+ "red" : "0xFE"
+ }
+ },
+ "idiom" : "universal"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Resources/Colors.xcassets/gray06.colorset/Contents.json b/Resources/Colors.xcassets/gray06.colorset/Contents.json
new file mode 100644
index 0000000..2bd9fcf
--- /dev/null
+++ b/Resources/Colors.xcassets/gray06.colorset/Contents.json
@@ -0,0 +1,38 @@
+{
+ "colors" : [
+ {
+ "color" : {
+ "color-space" : "srgb",
+ "components" : {
+ "alpha" : "1.000",
+ "blue" : "0x5A",
+ "green" : "0x5A",
+ "red" : "0x5A"
+ }
+ },
+ "idiom" : "universal"
+ },
+ {
+ "appearances" : [
+ {
+ "appearance" : "luminosity",
+ "value" : "dark"
+ }
+ ],
+ "color" : {
+ "color-space" : "srgb",
+ "components" : {
+ "alpha" : "1.000",
+ "blue" : "0xFF",
+ "green" : "0xFF",
+ "red" : "0xFE"
+ }
+ },
+ "idiom" : "universal"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Resources/Colors.xcassets/gray07.colorset/Contents.json b/Resources/Colors.xcassets/gray07.colorset/Contents.json
new file mode 100644
index 0000000..c626884
--- /dev/null
+++ b/Resources/Colors.xcassets/gray07.colorset/Contents.json
@@ -0,0 +1,38 @@
+{
+ "colors" : [
+ {
+ "color" : {
+ "color-space" : "srgb",
+ "components" : {
+ "alpha" : "1.000",
+ "blue" : "0x48",
+ "green" : "0x48",
+ "red" : "0x48"
+ }
+ },
+ "idiom" : "universal"
+ },
+ {
+ "appearances" : [
+ {
+ "appearance" : "luminosity",
+ "value" : "dark"
+ }
+ ],
+ "color" : {
+ "color-space" : "srgb",
+ "components" : {
+ "alpha" : "1.000",
+ "blue" : "0xFF",
+ "green" : "0xFF",
+ "red" : "0xFE"
+ }
+ },
+ "idiom" : "universal"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Resources/Colors.xcassets/gray08.colorset/Contents.json b/Resources/Colors.xcassets/gray08.colorset/Contents.json
new file mode 100644
index 0000000..2767e0e
--- /dev/null
+++ b/Resources/Colors.xcassets/gray08.colorset/Contents.json
@@ -0,0 +1,38 @@
+{
+ "colors" : [
+ {
+ "color" : {
+ "color-space" : "srgb",
+ "components" : {
+ "alpha" : "1.000",
+ "blue" : "0x36",
+ "green" : "0x36",
+ "red" : "0x36"
+ }
+ },
+ "idiom" : "universal"
+ },
+ {
+ "appearances" : [
+ {
+ "appearance" : "luminosity",
+ "value" : "dark"
+ }
+ ],
+ "color" : {
+ "color-space" : "srgb",
+ "components" : {
+ "alpha" : "1.000",
+ "blue" : "0xFF",
+ "green" : "0xFF",
+ "red" : "0xFE"
+ }
+ },
+ "idiom" : "universal"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Resources/Colors.xcassets/gray09.colorset/Contents.json b/Resources/Colors.xcassets/gray09.colorset/Contents.json
new file mode 100644
index 0000000..69f05fa
--- /dev/null
+++ b/Resources/Colors.xcassets/gray09.colorset/Contents.json
@@ -0,0 +1,38 @@
+{
+ "colors" : [
+ {
+ "color" : {
+ "color-space" : "srgb",
+ "components" : {
+ "alpha" : "1.000",
+ "blue" : "0x2A",
+ "green" : "0x2A",
+ "red" : "0x2A"
+ }
+ },
+ "idiom" : "universal"
+ },
+ {
+ "appearances" : [
+ {
+ "appearance" : "luminosity",
+ "value" : "dark"
+ }
+ ],
+ "color" : {
+ "color-space" : "srgb",
+ "components" : {
+ "alpha" : "1.000",
+ "blue" : "0xFF",
+ "green" : "0xFF",
+ "red" : "0xFE"
+ }
+ },
+ "idiom" : "universal"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Resources/Colors.xcassets/purple00.colorset/Contents.json b/Resources/Colors.xcassets/purple00.colorset/Contents.json
new file mode 100644
index 0000000..84e81ca
--- /dev/null
+++ b/Resources/Colors.xcassets/purple00.colorset/Contents.json
@@ -0,0 +1,38 @@
+{
+ "colors" : [
+ {
+ "color" : {
+ "color-space" : "srgb",
+ "components" : {
+ "alpha" : "1.000",
+ "blue" : "0xFB",
+ "green" : "0xE7",
+ "red" : "0xF0"
+ }
+ },
+ "idiom" : "universal"
+ },
+ {
+ "appearances" : [
+ {
+ "appearance" : "luminosity",
+ "value" : "dark"
+ }
+ ],
+ "color" : {
+ "color-space" : "srgb",
+ "components" : {
+ "alpha" : "1.000",
+ "blue" : "0xFF",
+ "green" : "0xFF",
+ "red" : "0xFE"
+ }
+ },
+ "idiom" : "universal"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Resources/Colors.xcassets/purple01.colorset/Contents.json b/Resources/Colors.xcassets/purple01.colorset/Contents.json
new file mode 100644
index 0000000..212db49
--- /dev/null
+++ b/Resources/Colors.xcassets/purple01.colorset/Contents.json
@@ -0,0 +1,38 @@
+{
+ "colors" : [
+ {
+ "color" : {
+ "color-space" : "srgb",
+ "components" : {
+ "alpha" : "1.000",
+ "blue" : "0xF9",
+ "green" : "0xDB",
+ "red" : "0xE8"
+ }
+ },
+ "idiom" : "universal"
+ },
+ {
+ "appearances" : [
+ {
+ "appearance" : "luminosity",
+ "value" : "dark"
+ }
+ ],
+ "color" : {
+ "color-space" : "srgb",
+ "components" : {
+ "alpha" : "1.000",
+ "blue" : "0xFF",
+ "green" : "0xFF",
+ "red" : "0xFE"
+ }
+ },
+ "idiom" : "universal"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Resources/Colors.xcassets/purple02.colorset/Contents.json b/Resources/Colors.xcassets/purple02.colorset/Contents.json
new file mode 100644
index 0000000..79a1f78
--- /dev/null
+++ b/Resources/Colors.xcassets/purple02.colorset/Contents.json
@@ -0,0 +1,38 @@
+{
+ "colors" : [
+ {
+ "color" : {
+ "color-space" : "srgb",
+ "components" : {
+ "alpha" : "1.000",
+ "blue" : "0xF3",
+ "green" : "0xB4",
+ "red" : "0xCF"
+ }
+ },
+ "idiom" : "universal"
+ },
+ {
+ "appearances" : [
+ {
+ "appearance" : "luminosity",
+ "value" : "dark"
+ }
+ ],
+ "color" : {
+ "color-space" : "srgb",
+ "components" : {
+ "alpha" : "1.000",
+ "blue" : "0xFF",
+ "green" : "0xFF",
+ "red" : "0xFE"
+ }
+ },
+ "idiom" : "universal"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Resources/Colors.xcassets/purple03.colorset/Contents.json b/Resources/Colors.xcassets/purple03.colorset/Contents.json
new file mode 100644
index 0000000..837c03a
--- /dev/null
+++ b/Resources/Colors.xcassets/purple03.colorset/Contents.json
@@ -0,0 +1,38 @@
+{
+ "colors" : [
+ {
+ "color" : {
+ "color-space" : "srgb",
+ "components" : {
+ "alpha" : "1.000",
+ "blue" : "0xD8",
+ "green" : "0x0E",
+ "red" : "0x65"
+ }
+ },
+ "idiom" : "universal"
+ },
+ {
+ "appearances" : [
+ {
+ "appearance" : "luminosity",
+ "value" : "dark"
+ }
+ ],
+ "color" : {
+ "color-space" : "srgb",
+ "components" : {
+ "alpha" : "1.000",
+ "blue" : "0xFF",
+ "green" : "0xFF",
+ "red" : "0xFE"
+ }
+ },
+ "idiom" : "universal"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Resources/Colors.xcassets/purple04.colorset/Contents.json b/Resources/Colors.xcassets/purple04.colorset/Contents.json
new file mode 100644
index 0000000..468da82
--- /dev/null
+++ b/Resources/Colors.xcassets/purple04.colorset/Contents.json
@@ -0,0 +1,38 @@
+{
+ "colors" : [
+ {
+ "color" : {
+ "color-space" : "srgb",
+ "components" : {
+ "alpha" : "1.000",
+ "blue" : "0xC2",
+ "green" : "0x0D",
+ "red" : "0x5B"
+ }
+ },
+ "idiom" : "universal"
+ },
+ {
+ "appearances" : [
+ {
+ "appearance" : "luminosity",
+ "value" : "dark"
+ }
+ ],
+ "color" : {
+ "color-space" : "srgb",
+ "components" : {
+ "alpha" : "1.000",
+ "blue" : "0xFF",
+ "green" : "0xFF",
+ "red" : "0xFE"
+ }
+ },
+ "idiom" : "universal"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Resources/Colors.xcassets/purple05.colorset/Contents.json b/Resources/Colors.xcassets/purple05.colorset/Contents.json
new file mode 100644
index 0000000..4ca379f
--- /dev/null
+++ b/Resources/Colors.xcassets/purple05.colorset/Contents.json
@@ -0,0 +1,38 @@
+{
+ "colors" : [
+ {
+ "color" : {
+ "color-space" : "srgb",
+ "components" : {
+ "alpha" : "1.000",
+ "blue" : "0xAD",
+ "green" : "0x0B",
+ "red" : "0x51"
+ }
+ },
+ "idiom" : "universal"
+ },
+ {
+ "appearances" : [
+ {
+ "appearance" : "luminosity",
+ "value" : "dark"
+ }
+ ],
+ "color" : {
+ "color-space" : "srgb",
+ "components" : {
+ "alpha" : "1.000",
+ "blue" : "0xFF",
+ "green" : "0xFF",
+ "red" : "0xFE"
+ }
+ },
+ "idiom" : "universal"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Resources/Colors.xcassets/purple06.colorset/Contents.json b/Resources/Colors.xcassets/purple06.colorset/Contents.json
new file mode 100644
index 0000000..f989504
--- /dev/null
+++ b/Resources/Colors.xcassets/purple06.colorset/Contents.json
@@ -0,0 +1,38 @@
+{
+ "colors" : [
+ {
+ "color" : {
+ "color-space" : "srgb",
+ "components" : {
+ "alpha" : "1.000",
+ "blue" : "0xA2",
+ "green" : "0x0B",
+ "red" : "0x4C"
+ }
+ },
+ "idiom" : "universal"
+ },
+ {
+ "appearances" : [
+ {
+ "appearance" : "luminosity",
+ "value" : "dark"
+ }
+ ],
+ "color" : {
+ "color-space" : "srgb",
+ "components" : {
+ "alpha" : "1.000",
+ "blue" : "0xFF",
+ "green" : "0xFF",
+ "red" : "0xFE"
+ }
+ },
+ "idiom" : "universal"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Resources/Colors.xcassets/purple07.colorset/Contents.json b/Resources/Colors.xcassets/purple07.colorset/Contents.json
new file mode 100644
index 0000000..70de855
--- /dev/null
+++ b/Resources/Colors.xcassets/purple07.colorset/Contents.json
@@ -0,0 +1,38 @@
+{
+ "colors" : [
+ {
+ "color" : {
+ "color-space" : "srgb",
+ "components" : {
+ "alpha" : "1.000",
+ "blue" : "0x82",
+ "green" : "0x08",
+ "red" : "0x3D"
+ }
+ },
+ "idiom" : "universal"
+ },
+ {
+ "appearances" : [
+ {
+ "appearance" : "luminosity",
+ "value" : "dark"
+ }
+ ],
+ "color" : {
+ "color-space" : "srgb",
+ "components" : {
+ "alpha" : "1.000",
+ "blue" : "0xFF",
+ "green" : "0xFF",
+ "red" : "0xFE"
+ }
+ },
+ "idiom" : "universal"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Resources/Colors.xcassets/purple08.colorset/Contents.json b/Resources/Colors.xcassets/purple08.colorset/Contents.json
new file mode 100644
index 0000000..4898309
--- /dev/null
+++ b/Resources/Colors.xcassets/purple08.colorset/Contents.json
@@ -0,0 +1,38 @@
+{
+ "colors" : [
+ {
+ "color" : {
+ "color-space" : "srgb",
+ "components" : {
+ "alpha" : "1.000",
+ "blue" : "0x61",
+ "green" : "0x06",
+ "red" : "0x2D"
+ }
+ },
+ "idiom" : "universal"
+ },
+ {
+ "appearances" : [
+ {
+ "appearance" : "luminosity",
+ "value" : "dark"
+ }
+ ],
+ "color" : {
+ "color-space" : "srgb",
+ "components" : {
+ "alpha" : "1.000",
+ "blue" : "0xFF",
+ "green" : "0xFF",
+ "red" : "0xFE"
+ }
+ },
+ "idiom" : "universal"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Resources/Colors.xcassets/purple09.colorset/Contents.json b/Resources/Colors.xcassets/purple09.colorset/Contents.json
new file mode 100644
index 0000000..d220f1a
--- /dev/null
+++ b/Resources/Colors.xcassets/purple09.colorset/Contents.json
@@ -0,0 +1,38 @@
+{
+ "colors" : [
+ {
+ "color" : {
+ "color-space" : "srgb",
+ "components" : {
+ "alpha" : "1.000",
+ "blue" : "0x4C",
+ "green" : "0x05",
+ "red" : "0x23"
+ }
+ },
+ "idiom" : "universal"
+ },
+ {
+ "appearances" : [
+ {
+ "appearance" : "luminosity",
+ "value" : "dark"
+ }
+ ],
+ "color" : {
+ "color-space" : "srgb",
+ "components" : {
+ "alpha" : "1.000",
+ "blue" : "0xFF",
+ "green" : "0xFF",
+ "red" : "0xFE"
+ }
+ },
+ "idiom" : "universal"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Resources/Colors.xcassets/tag.colorset/Contents.json b/Resources/Colors.xcassets/tag.colorset/Contents.json
new file mode 100644
index 0000000..5586618
--- /dev/null
+++ b/Resources/Colors.xcassets/tag.colorset/Contents.json
@@ -0,0 +1,38 @@
+{
+ "colors" : [
+ {
+ "color" : {
+ "color-space" : "srgb",
+ "components" : {
+ "alpha" : "1.000",
+ "blue" : "0xD2",
+ "green" : "0xCD",
+ "red" : "0x47"
+ }
+ },
+ "idiom" : "universal"
+ },
+ {
+ "appearances" : [
+ {
+ "appearance" : "luminosity",
+ "value" : "dark"
+ }
+ ],
+ "color" : {
+ "color-space" : "srgb",
+ "components" : {
+ "alpha" : "1.000",
+ "blue" : "0xFF",
+ "green" : "0xFF",
+ "red" : "0xFE"
+ }
+ },
+ "idiom" : "universal"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Resources/Colors.xcassets/white.colorset/Contents.json b/Resources/Colors.xcassets/white.colorset/Contents.json
new file mode 100644
index 0000000..6e64977
--- /dev/null
+++ b/Resources/Colors.xcassets/white.colorset/Contents.json
@@ -0,0 +1,38 @@
+{
+ "colors" : [
+ {
+ "color" : {
+ "color-space" : "srgb",
+ "components" : {
+ "alpha" : "1.000",
+ "blue" : "0xFF",
+ "green" : "0xFF",
+ "red" : "0xFF"
+ }
+ },
+ "idiom" : "universal"
+ },
+ {
+ "appearances" : [
+ {
+ "appearance" : "luminosity",
+ "value" : "dark"
+ }
+ ],
+ "color" : {
+ "color-space" : "srgb",
+ "components" : {
+ "alpha" : "1.000",
+ "blue" : "0xFF",
+ "green" : "0xFF",
+ "red" : "0xFE"
+ }
+ },
+ "idiom" : "universal"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Sources/HomeView.swift b/Sources/HomeView.swift
new file mode 100644
index 0000000..e2ca09c
--- /dev/null
+++ b/Sources/HomeView.swift
@@ -0,0 +1,209 @@
+import SwiftUI
+
+struct Movie: Identifiable {
+ let id = UUID()
+ let title: String
+ let moviegoer: String
+ let imageName: String
+ let imageName2: String
+}
+
+struct MovieChartView: View {
+ let movies: [Movie] = [
+ Movie(title: "어쩔수가 없다", moviegoer: "누적관객수 20만", imageName: "어쩔수가 없다", imageName2: "f1 2"),
+ Movie(title: "극장판 귀멸의 ...", moviegoer: "누적관객수 10만", imageName: "무한성", imageName2: "f1 2"),
+ Movie(title: "F1 더 무비", moviegoer: "누적관객수 10만", imageName: "f1", imageName2: "f1 2"),
+ Movie(title: "얼굴", moviegoer: "누적관객수 10만", imageName: "얼굴", imageName2: "f1 2"),
+ Movie(title: "모노노케 히메", moviegoer: "누적관객수 10만", imageName: "모노노케 히메", imageName2: "f1 2")
+ ]
+
+ var body: some View {
+ ScrollView(.horizontal, showsIndicators: false) {
+ HStack(alignment: .top, spacing: 16) {
+ ForEach(movies) { movie in
+
+ NavigationLink(destination: Text("\(movie.title) 상세 페이지")) {
+
+ VStack(alignment: .leading, spacing: 8) {
+ Image(movie.imageName)
+ .resizable().scaledToFit().frame(width: 140, height: 210)
+
+ // MARK: - UI를 새 데이터에 맞게 수정
+ Text(movie.title)
+ .font(.system(size: 15, weight: .bold))
+ .foregroundStyle(.black)
+ .lineLimit(1)
+
+ Text(movie.moviegoer)
+ .font(.system(size: 13))
+ .foregroundStyle(.gray)
+ }
+ .frame(width: 140)
+ }
+ .buttonStyle(PlainButtonStyle())
+ }
+ }
+ .padding(.horizontal)
+ }
+ }
+
+}
+
+struct ComingSoonView: View {
+ var body: some View {
+ VStack {
+ Spacer()
+ Text("상영예정 영화 목록입니다.").font(.headline)
+ Spacer()
+ }
+ }
+}
+
+// MARK: - '홈' 탭이 선택되었을 때 보여줄 콘텐츠 뷰
+struct HomeContentView: View {
+ @State private var selectedMenu: String = "무비차트"
+ let menus = ["무비차트", "상영예정"]
+
+ var body: some View {
+ VStack(alignment: .leading, spacing: 20) {
+ HStack(spacing: 20) {
+ ForEach(menus, id: \.self) { menu in
+ Button(action: {
+ self.selectedMenu = menu
+ }) {
+ Text(menu)
+ .font(.system(size: 22, weight: .bold))
+ .foregroundStyle(selectedMenu == menu ? .black : .gray.opacity(0.5))
+ }
+ }
+ }
+ .padding(.horizontal)
+
+ if selectedMenu == "무비차트" {
+ MovieChartView() // (가로 스크롤 뷰가 여기에 포함되어 있습니다)
+ } else {
+ ComingSoonView()
+ }
+ }
+ .frame(maxWidth: .infinity, alignment: .leading)
+
+
+ }
+}
+
+
+struct Home: View {
+ @State private var selectedTab = "홈"
+ let tabs = ["홈", "이벤트", "스토어", "선호극장"]
+
+ var body: some View {
+
+ NavigationStack {
+ VStack(spacing: 0) {
+
+ HStack {
+ Image("megaboxLogo2")
+ .resizable().scaledToFit().frame(height: 30)
+ .padding(.leading, 16)
+ Spacer()
+ }
+ .padding(.vertical, 8)
+
+ HStack(spacing: 25) {
+ ForEach(tabs, id: \.self) { tab in
+ Text(tab)
+ .font(.system(size: 17))
+ .fontWeight(selectedTab == tab ? .bold : .regular)
+ .foregroundStyle(selectedTab == tab ? .black : .gray)
+ .onTapGesture {
+ withAnimation(.easeIn(duration: 0.2)) {
+ self.selectedTab = tab
+ }
+ }
+ }
+ Spacer()
+ }
+ .padding(.bottom, 15)
+ .padding(.leading, 16)
+
+ ZStack {
+ switch selectedTab {
+
+ case "홈":
+ ScrollView(.vertical, showsIndicators: false) {
+
+ VStack(spacing: 0) {
+
+ HomeContentView()
+
+ VStack {
+ HStack {
+ Text("알고보면 더 재밌는 무비피드")
+ .padding(.leading, 16)
+ .padding(.trailing, 109)
+
+ Button(action: {
+ print("오른쪽 화살표 버튼 클릭됨")
+ }) {
+ Image(systemName: "arrow.right")
+ .font(.system(size: 20, weight: .bold))
+ .padding()
+ .foregroundStyle(.black)
+ }
+ Spacer()
+ }
+
+ Image("무비피드")
+ .resizable()
+ .scaledToFit()
+ .frame(width: 408, height: 221)
+ }
+ .padding(.bottom, 44)
+
+ VStack {
+ HStack {
+ Image("모노노케 히메 2")
+ .padding(.leading, 16)
+ VStack {
+ Text("9월, 메가박스의 영화들(1) - 명작들의 재개봉’")
+ Text("<모노노케 히메>,<퍼펙트 블루>")
+ }
+ Spacer()
+ }
+ .padding(.bottom, 39)
+
+ HStack {
+ Image("얼굴 2")
+ .padding(.leading, 16)
+ VStack {
+ Text("메가박스 오리지널 티켓 Re.37 <얼굴>")
+ Text("영화 속 양극적인 감정의 대비")
+ }
+ Spacer()
+ }
+ }
+ .padding(.bottom, 50)
+ }
+ }
+
+ case "이벤트":
+ Text("이벤트 목록").font(.largeTitle)
+ case "스토어":
+ Text("스토어 상품들").font(.largeTitle)
+ case "선호극장":
+ Text("선호극장 정보").font(.largeTitle)
+ default:
+ EmptyView()
+ }
+ }
+ .frame(maxWidth: .infinity, maxHeight: .infinity, alignment: .top)
+
+ }
+ .navigationBarHidden(true)
+ }
+ }
+}
+
+#Preview {
+ Home()
+}
diff --git a/Sources/KeyChainHelper.swift b/Sources/KeyChainHelper.swift
new file mode 100644
index 0000000..4c00d9c
--- /dev/null
+++ b/Sources/KeyChainHelper.swift
@@ -0,0 +1,77 @@
+// KeychainHelper.swift
+
+import Foundation
+import Security
+
+struct KeychainHelper {
+
+ private static let service = "com.myapp.credentials"
+
+ // MARK: - Save
+
+ static func save(string: String, account: String) -> Bool {
+ guard let data = string.data(using: .utf8) else { return false }
+
+ let query: [String: Any] = [
+ kSecClass as String: kSecClassGenericPassword,
+ kSecAttrService as String: service,
+ kSecAttrAccount as String: account
+ ]
+
+ let attributes: [String: Any] = [
+ kSecValueData as String: data
+ ]
+
+ let status = SecItemUpdate(query as CFDictionary, attributes as CFDictionary)
+
+ if status == errSecItemNotFound {
+ let addQuery: [String: Any] = [
+ kSecClass as String: kSecClassGenericPassword,
+ kSecAttrService as String: service,
+ kSecAttrAccount as String: account,
+ kSecValueData as String: data,
+ kSecAttrAccessible as String: kSecAttrAccessibleWhenUnlocked // 접근성 설정
+ ]
+ let addStatus = SecItemAdd(addQuery as CFDictionary, nil)
+ return addStatus == errSecSuccess
+ }
+
+ return status == errSecSuccess
+ }
+
+ // MARK: - Read
+
+ static func read(account: String) -> String? {
+ let query: [String: Any] = [
+ kSecClass as String: kSecClassGenericPassword,
+ kSecAttrService as String: service,
+ kSecAttrAccount as String: account,
+ kSecReturnData as String: kCFBooleanTrue!, // 데이터 반환 요청
+ kSecMatchLimit as String: kSecMatchLimitOne // 하나의 항목만
+ ]
+
+ var dataTypeRef: AnyObject?
+ let status = SecItemCopyMatching(query as CFDictionary, &dataTypeRef)
+
+ if status == errSecSuccess {
+ if let data = dataTypeRef as? Data,
+ let string = String(data: data, encoding: .utf8) {
+ return string
+ }
+ }
+ return nil
+ }
+
+ // MARK: - Delete
+
+ static func delete(account: String) -> Bool {
+ let query: [String: Any] = [
+ kSecClass as String: kSecClassGenericPassword,
+ kSecAttrService as String: service,
+ kSecAttrAccount as String: account
+ ]
+
+ let status = SecItemDelete(query as CFDictionary)
+ return status == errSecSuccess || status == errSecItemNotFound
+ }
+}
diff --git a/Sources/LoginModel.swift b/Sources/LoginModel.swift
new file mode 100644
index 0000000..0956933
--- /dev/null
+++ b/Sources/LoginModel.swift
@@ -0,0 +1,14 @@
+//
+// LoginModel.swift
+// megabox
+//
+// Created by 문인성 on 9/25/25.
+//
+
+import Foundation
+
+struct LoginModel {
+ var id: String = ""
+ var pwd: String = ""
+}
+
diff --git a/Sources/LoginView.swift b/Sources/LoginView.swift
new file mode 100644
index 0000000..a3de0d8
--- /dev/null
+++ b/Sources/LoginView.swift
@@ -0,0 +1,99 @@
+// LoginView.swift
+
+import SwiftUI
+
+struct LoginView: View {
+
+ @StateObject private var viewModel: LoginViewModel
+
+ init(viewModel: LoginViewModel) {
+ _viewModel = StateObject(wrappedValue: viewModel)
+ }
+
+ @State private var showAlert: Bool = false
+
+ var body: some View {
+ VStack {
+ HStack {
+ Text("로그인")
+ .font(.semiBold24)
+ .padding(.top, 44)
+ }
+
+ Spacer()
+
+ VStack {
+ TextField("아이디", text: $viewModel.loginInfo.id)
+ .padding(.horizontal, 16)
+ Divider()
+ .padding(.horizontal, 16)
+
+ SecureField("비밀번호", text: $viewModel.loginInfo.pwd)
+ .padding(.horizontal, 16)
+ Divider()
+ .padding(.horizontal, 16)
+ .padding(.bottom, 74.98)
+
+
+ Button(action: {
+
+ viewModel.handleLogin()
+
+ if !viewModel.isLoggedIn {
+ showAlert = true
+ }
+
+ }) {
+ Text("로그인")
+ .font(.headline)
+ .fontWeight(.bold)
+ .foregroundStyle(.white)
+ .frame(maxWidth: .infinity)
+ .padding(.vertical, 9)
+ .background(Color.purple) // Color("purple03")
+ .cornerRadius(10)
+ }
+ .padding(.horizontal, 16.5)
+ .padding(.bottom, 17)
+
+ Text("회원가입")
+ .font(.medium13)
+ .foregroundStyle(Color.gray) // Color("gray04")
+ }
+
+ }
+
+ .alert("로그인 실패", isPresented: $showAlert) {
+ Button("확인", role: .cancel) {}
+ } message: {
+ Text("아이디 또는 비밀번호를 확인해주세요.")
+ }
+
+ HStack {
+ Image("naverLoginBtn")
+ Spacer()
+ Image("kakaoLoginBtn")
+ Spacer()
+ Image("appleLoginBtn")
+ }
+ .frame(maxWidth: .infinity)
+ .padding(.top, 35)
+ .padding(.horizontal, 87)
+ .padding(.bottom, 39)
+
+ HStack {
+ Image("umc")
+ .resizable()
+ .scaledToFit()
+ .frame(maxWidth: .infinity)
+ .padding(.horizontal, 16)
+ }
+
+ Spacer()
+
+ }
+}
+
+#Preview {
+ LoginView(viewModel: LoginViewModel())
+}
diff --git a/Sources/LoginViewModel.swift b/Sources/LoginViewModel.swift
new file mode 100644
index 0000000..e122bf3
--- /dev/null
+++ b/Sources/LoginViewModel.swift
@@ -0,0 +1,66 @@
+// LoginViewModel.swift
+// (이 코드로 파일 전체를 덮어쓰세요)
+
+import Foundation
+
+class LoginViewModel: ObservableObject {
+
+ @Published var loginInfo = LoginModel()
+ @Published var isLoggedIn: Bool = false
+ @Published var userName: String = "" // 마이페이지 표시용
+
+
+ private let idAccount = "userID"
+ private let pwdAccount = "userPassword"
+
+ init() {
+ checkAutoLogin()
+ }
+
+ func checkAutoLogin() {
+ guard let savedId = KeychainHelper.read(account: idAccount),
+ let savedPwd = KeychainHelper.read(account: pwdAccount) else {
+ print("No credentials found in Keychain.")
+ return
+ }
+
+ print("Auto login successful.")
+ self.userName = savedId // 마이페이지용 이름 설정 (체크리스트 3번)
+ self.isLoggedIn = true // 로그인 상태를 true로 변경
+ }
+
+ func handleLogin() {
+ let correctId = "swift"
+ let correctPwd = "1234"
+
+ if loginInfo.id == correctId && loginInfo.pwd == correctPwd {
+ let idSaved = KeychainHelper.save(string: loginInfo.id, account: idAccount)
+ let pwdSaved = KeychainHelper.save(string: loginInfo.pwd, account: pwdAccount)
+
+ if idSaved && pwdSaved {
+ print("Credentials saved to Keychain.")
+ self.userName = loginInfo.id
+ self.isLoggedIn = true
+ } else {
+ print("Failed to save credentials to Keychain.")
+ }
+
+ } else {
+ print("Login failed: Incorrect ID or PWD.")
+ }
+ }
+
+ func handleLogout() {
+ let idDeleted = KeychainHelper.delete(account: idAccount)
+ let pwdDeleted = KeychainHelper.delete(account: pwdAccount)
+
+ if idDeleted && pwdDeleted {
+ print("Credentials deleted from Keychain.")
+ } else {
+ print("Could not delete credentials from Keychain.")
+ }
+
+ self.isLoggedIn = false
+ self.userName = "" // 저장된 사용자 이름도 지웁니다.
+ }
+}
diff --git a/Sources/MainTabView.swift b/Sources/MainTabView.swift
new file mode 100644
index 0000000..4749cf0
--- /dev/null
+++ b/Sources/MainTabView.swift
@@ -0,0 +1,35 @@
+//
+// TabView.swift
+// megabox
+//
+// Created by 문인성 on 10/8/25.
+//
+
+import SwiftUI
+
+struct MainTabView: View {
+ var body: some View {
+ TabView {
+ Tab("홈" , systemImage: "house.fill") {
+ Home()
+ }
+
+ Tab("바로 예매" , systemImage: "play.laptopcomputer") {
+ LoginView(viewModel: LoginViewModel())
+ }
+
+ Tab("모바일 오더" , systemImage: "popcorn") {
+ LoginView(viewModel: LoginViewModel())
+ }
+
+ Tab("마이 페이지" , systemImage: "person") {
+ UserInformation()
+
+ }
+ }
+ }
+}
+
+#Preview {
+ MainTabView()
+}
diff --git a/Sources/MegaboxApp.swift b/Sources/MegaboxApp.swift
new file mode 100644
index 0000000..236b323
--- /dev/null
+++ b/Sources/MegaboxApp.swift
@@ -0,0 +1,28 @@
+import SwiftUI
+
+@main
+struct YourApp: App {
+
+ @StateObject private var viewModel = LoginViewModel()
+
+ @State private var isSplashFinished: Bool = false
+
+ var body: some Scene {
+ WindowGroup {
+
+ if !isSplashFinished {
+ SplashView(isSplashFinished: $isSplashFinished)
+
+ } else {
+
+ if viewModel.isLoggedIn {
+ MainTabView()
+ .environmentObject(viewModel)
+ } else {
+ // (checkAutoLogin()이 실패했다면)
+ LoginView(viewModel: viewModel)
+ }
+ }
+ }
+ }
+}
diff --git a/Sources/Movie.swift b/Sources/Movie.swift
new file mode 100644
index 0000000..24638d4
--- /dev/null
+++ b/Sources/Movie.swift
@@ -0,0 +1,15 @@
+//
+// Movie.swift
+// megabox
+//
+// Created by 문인성 on 10/9/25.
+//
+
+import Foundation
+
+struct movie: Identifiable {
+ let id = UUID()
+ let title: String
+ let moviegoer: String
+ let imageNmae2: String
+}
diff --git a/Sources/MovieDetailView.swift b/Sources/MovieDetailView.swift
new file mode 100644
index 0000000..c691185
--- /dev/null
+++ b/Sources/MovieDetailView.swift
@@ -0,0 +1,50 @@
+//
+// MovieDeatailView.swift
+// megabox
+//
+// Created by 문인성 on 10/9/25.
+//
+
+import SwiftUI
+
+struct MovieDetailView: View {
+ let movie: Movie
+
+ var body: some View {
+ ScrollView {
+ VStack(spacing: 20) {
+ Image(movie.imageName2)
+ .resizable()
+ .scaledToFit()
+ .frame(maxWidth: .infinity)
+
+ Text("F1 더 무비")
+ Text("F1: The Movie")
+ Text("""
+ 최고가 되지 못한 전설 VS 최고가 되고 싶은 루키
+ 한때 주목받는 유망주였지만 끔찍한 사고로 F1에서 우승하지 못하고
+ 한순간에 추락한 드라이버 ‘손; 헤이스'(브래드 피트).
+ 그의 오랜 동료인 ‘루벤 세르반테스'(하비에르 바르뎀)에게
+ 레이싱 복귀를 제안받으며 최하위 팀인 APGXP에 합류한다.
+ """)
+ Spacer()
+ }
+
+ }
+ .navigationTitle(movie.title)
+ .navigationBarTitleDisplayMode(.inline)
+ }
+}
+
+#Preview {
+ let sampleMovie = Movie(
+ title: "F1 더 무비",
+ moviegoer: "누적관객수 10만",
+ imageName: "f1",
+ imageName2: "f1 2"
+ )
+
+ NavigationStack {
+ MovieDetailView(movie: sampleMovie)
+ }
+}
diff --git a/Sources/Reservation.swift b/Sources/Reservation.swift
new file mode 100644
index 0000000..8f58f60
--- /dev/null
+++ b/Sources/Reservation.swift
@@ -0,0 +1,103 @@
+//
+// Untitled.swift
+// megabox
+//
+// Created by 문인성 on 10/9/25.
+//
+
+import SwiftUI
+
+struct Reservation: View {
+ private let imageNames: [String] = [
+ "poster1",
+ "poster2",
+ "poster3",
+ "poster4",
+ "poster5",
+ "poster6",
+ "poster7",
+ "poster8"
+ ]
+
+ var body: some View {
+ ZStack {
+ Rectangle().fill(Color("purple04"))
+ .frame(height: 125)
+ Text("영화별 예매")
+ .foregroundStyle(Color.white)
+ }
+
+ HStack {
+ ZStack {
+
+ RoundedRectangle(cornerRadius: 20)
+ .fill(Color.orange)
+ .frame(width: 50, height: 50)
+
+ Text("15")
+ .font(.bold24)
+ .multilineTextAlignment(.center)
+ .foregroundColor(.white)
+ }
+ .padding(.leading, 16)
+
+ HStack {
+ Text("어쩔 수가 없다")
+ .font(.bold18)
+ .padding(.leading, 37)
+ Spacer()
+ Text("전체 영화")
+ .padding(10)
+ .background(.white)
+ .cornerRadius(8)
+ .overlay(
+ RoundedRectangle(cornerRadius: 8)
+ .inset(by: 0.5)
+ .stroke(Color(red: 0.84, green: 0.84, blue: 0.84), lineWidth: 1)
+
+ )
+ }
+ .padding(.trailing, 16)
+
+ }
+ Spacer()
+
+ VStack(alignment: .leading, spacing: 10) {
+ ScrollView(.horizontal, showsIndicators: false) {
+ HStack(spacing: 15) {
+ ForEach(0..> 16) & 0xFF) / 255.0
+ let g = Double((rgb >> 8) & 0xFF) / 255.0
+ let b = Double((rgb >> 0) & 0xFF) / 255.0
+
+ self.init(red: r, green: g, blue: b)
+ }
+}
+
+
+#Preview {
+ UserInformation()
+ .environmentObject(LoginViewModel())
+}
diff --git a/Sources/UserInformationManagement.swift b/Sources/UserInformationManagement.swift
new file mode 100644
index 0000000..a88af3e
--- /dev/null
+++ b/Sources/UserInformationManagement.swift
@@ -0,0 +1,87 @@
+//
+// UserInformationMangement.swift
+// megabox
+//
+// Created by 문인성 on 9/28/25.
+//
+
+import SwiftUI
+
+struct UserInformationManagement: View {
+
+ @AppStorage("saved_id") private var savedId: String = ""
+ @AppStorage("saved_name") private var savedName: String = ""
+ @State private var currentName: String = ""
+
+ var body: some View {
+ VStack {
+ ZStack {
+ HStack {
+ Image(systemName: "arrow.left")
+ .resizable()
+ .scaledToFit()
+ .frame(width: 26, height: 22)
+
+ Spacer()
+ }
+
+ Text("회원정보 관리")
+ .font(.medium16)
+ }
+ .padding(.horizontal, 18)
+ .padding(.top, 44)
+ .padding(.bottom, 53)
+
+
+
+ Text("기본정보")
+ .font(.bold18)
+ .frame(maxWidth: .infinity, alignment: .leading)
+ .padding(.leading, 16)
+ .padding(.bottom, 26)
+
+
+ VStack(alignment: .leading) {
+ HStack {
+ Text(savedId)
+ .font(.medium18)
+ .padding(.horizontal, 16)
+ }
+
+
+ Divider()
+
+ HStack {
+ TextField(savedName, text: $currentName)
+ .foregroundStyle(.black)
+ .padding(.horizontal, 16)
+
+ Button(action: {
+ savedName = currentName
+ }) {
+ Text("변경")
+ .foregroundStyle(Color("gray03"))
+ .frame(width: 38, height: 20)
+ .padding(.horizontal, 11)
+ .padding(.vertical, 5)
+ .background(.white)
+ .cornerRadius(16)
+ .overlay(
+ RoundedRectangle(cornerRadius: 16)
+ .stroke(Color(Color("gray02")), lineWidth: 1)
+ )
+ }
+ }
+ Divider()
+ Spacer()
+ }
+ }
+
+
+ }
+}
+
+
+#Preview {
+ UserInformationManagement()
+}