728x90 ๋ฐ์ํ ๐ iOS138 [Design Pattern] MVP ํจํด์ด๋? ์๋ ํ์ธ์ Foma๐ ์ ๋๋ค! ์ค๋์ Model - View - Presenter๋ก ์ด๋ค์ ธ์๋ M.V.P ๋์์ธ ํจํด์ ๋ํด์ ์์๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค. ์ง๊ธ๋ถํฐ ์์ธํ ์ดํด๋ณด๊ฒ ์ต๋๋ค. MVP๋? Model - View - Presenter ๋ก ์ด๋ค์ง ๋์์ธ ํจํด์ด๋ฉฐ MVC์์ Controller๊ฐ ํ๋ ์ญํ ์ Presenter๊ฐ ํ๋ค๊ณ ๋ณด๋ฉด ๋ฉ๋๋ค. "๊ทธ๋ฌ๋ฉด MVC ์ฐ๋ฉด ๋์ง ์ MVP๋ฅผ ์จ?" MVC๋ Model๊ณผ View๊ฐ ์๋ก ์ฐ๊ฒฐ๋์ด ์์ด ์์กด๊ด๊ณ๋ฅผ ๊ฐ๊ฒ ๋ฉ๋๋ค. ํ์ง๋ง MVP๋ Model๊ณผ View ๋ถ๋ฆฌ๋์ด ์๊ณ ์ค์ง Presenter๋ฅผ ํตํด์ ์ํ๋ ๋ณํ๋ฅผ ์๋ ค์ค ์ ์์ต๋๋ค. ์ด๋ ๊ฒ View์ ๋น์ง๋์ค ๋ก์ง์ด ์์ ํ ๋ถ๋ฆฌ๊ฐ ๋์ด ํ ์คํธ๊ฐ ์ฉ์ดํด์ง๋ค๋ ์ฅ์ ์ด ์์ต๋๋ค. ๋ทฐ๊ฐ ์ ๋ฐ์ดํธ ๋๋ ๊ณผ์ ์.. 2021. 8. 11. [iOS] ํธ์ฌ ์๋ฆผ ํญํ์ ๋ ํน์ ํ์ด์ง๋ก ์ด๋ํ๊ธฐ(How to handle Push Notification?) ์๋ ํ์ธ์ Foma๐ ์ ๋๋ค! ์ค๋์ ์ ์ ๊ฐ ํธ์ฌ ์๋ฆผ๋ฐ๋ฅผ ํญํ์ ๋ ํน์ ํ์ด์ง๋ก ์ด๋ํ๋ ๊ฒ์ ์ ๋ฆฌํด๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค. ๋ฐ๋ก ์์ํ ๊ฒ์~ Preview AppDelegate ๋จผ์ UserNotifications๋ฅผ import ํด์ค๋๋ค. import UserNotifications ์๋์ ๊ฐ์ด userNotificationCenter๋ฅผ ๋ง๋ค์ด์ฃผ์ธ์. let userNotificationCenter = UNUserNotificationCenter.current() didFinishLaunchingWithOptions ๋ฉ์๋์ ์์์ ๋ง๋ค์ด์ค userNotificationCenter์ ๋๋ฆฌ๊ฒ์ดํธ๋ฅผ self๋ก ํด์ค๋๋ค. application.registerForRemoteNotifications()๋ ์์ฑํด.. 2021. 8. 9. [iOS] iOS ์ฑ ์ถ์ํ๋ ๋ฒ ์์๋ณด๊ธฐ ์๋ ํ์ธ์ Foma๐ ์ ๋๋ค! ์ค๋์ ์ฑ์ ์ถ์ํ๋ ๋ฐฉ๋ฒ์ ๋ํด์ ์์๋ณด๊ฒ ์ต๋๋ค. ๋ฐ๋ก ์์ํ ๊ฒ์~ Xcode Xcode ์๋จ ํญ์์ Product-Archive๋ฅผ ๋๋ฌ์ค๋๋ค. (๋๋ฐ์ด์ค๋ ์ค์ ๋๋ฐ์ด์ค์ ์ฐ๊ฒฐ๋์ด ์๊ฑฐ๋ Any iOS Device๋ฅผ ์ ํํด์ฃผ์ธ์) Archive๊ฐ ๋ชจ๋ ๋๋ฌ๋ค๋ฉด Distribute App์ ๋๋ฌ์ ๋ฐฐํฌํด์ค๋๋ค. (Archive๋ ์ฑ ํฌ๊ธฐ์ ๋ฐ๋ผ ๋ค๋ฅด์ง๋ง ํ 10๋ถ ์ ๋ ์์๋๋ ๊ฒ ๊ฐ์ต๋๋ค.) ๋ฐฐํฌํ๋ ๋ฐฉ๋ฒ์ ๋ํด ๋ฌผ์ด๋ณด๋ค์. App Store Connect๋ฅผ ๋๋ฌ์ฃผ์ธ์. ์ฑ์คํ ์ด ์ปค๋ฅํธ์ Upload ํด์ฃผ์ธ์! ๋ฐฐํฌ ์ต์ ์ ์ ํํ๋๋ฐ ๋ ๊ฐ ๋ค ์ ํํด์ฃผ์ธ์! ์ฑ ๊ด๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ๋ํด์ ๋ฌผ์ด๋ณด๋ค์. Automatically manage signing์ ์ ํํด์ค๋๋ค. ์ฑ์ .. 2021. 7. 29. [iOS] UIKit์์ SwiftUI Preview ์ฌ์ฉํด๋ณด๊ธฐ ์๋ ํ์ธ์ Foma๐ ์ ๋๋ค! ์ผ๋ง ์ ์ ์ ํ๋ธ์์ ๋งํ๊ฒฝ iOS ๊ฐ๋ฐ๊ธฐ๋ฅผ ๋ณด๋ค๊ฐ (https://www.youtube.com/watch?v=W_1FoBtaV7A) UI๋ฅผ ๊ฐ๋ฐํ๋๋ฐ ์คํ ๋ฆฌ๋ณด๋์ ์ฝ๋๋ก ๊ตฌํํ๋ ์ฅ๋จ์ ์ ๋ชจ๋ ์ด์ฉํ ์ ์๋๊ฒ UIKit์์ Preview๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด๋ผ๊ณ ํ๋๋ผ๊ตฌ์. Preview๋ฅผ ์ฌ์ฉํ๋ฉด ์ฝ๋๋ก ํ๋ฉด์ ๊ตฌํํ๋๋ผ๋ ์ง๊ด์ ์ผ๋ก ํ๋ฉด์ ๋ณผ ์ ์๊ณ ๋ํ ์คํ ๋ฆฌ๋ณด๋๋ก ๊ฐ๋ฐํ ๋ ์๊ธฐ๋ ์ถฉ๋ ๋ฌธ์ ๋ฑ์ ์์ ์ค ์ ์๊ธฐ ๋๋ฌธ์ด์ฃ ! ๊ทธ๋์ ์ค๋์ UIKit์์ Preview๋ฅผ ์ด๋ป๊ฒ ์ ์ฉํ๋์ง์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค~ UIViewController + Extension ์๋์ ๊ฐ์ด ํ๋ฆฌ๋ทฐ ์ต์คํ ์ ์ ๋ง๋ค์ด์ค์ ์ด๋ค ๋ทฐ์ปจํธ๋กค๋ฌ์์๋ ์ธ ์ ์๊ฒ ๋ง๋ค์ด์ค๋๋ค. import Swif.. 2021. 7. 28. [iOS] TestFlight ํ ์คํธ ์ฌ์ฉ์ ์ด๋ํ๊ธฐ ์๋ ํ์ธ์ Foma๐ ์ ๋๋ค. ์ง๋ ๊ธ์์ ํ ์คํธ ํ๋ผ์ดํธ๋ฅผ ์ด๋ป๊ฒ ๋ฐฐํฌํ๋์ง์ ๋ํด์ ์์๋ณด์๋๋ฐ์. ํ ์คํธ ํ๋ผ์ดํธ ์ฌ์ฌ๋ฅผ ๊ฑฐ์น๊ณ ํ ๋ช์๊ฐ ๋ค? ํ ์คํธ๊ฐ ํต๊ณผ๋์์ต๋๋ค. ๊ทธ๋์ ์ค๋์ ํ ์คํธ ํ๋ผ์ดํธ์ ํ ์คํธ๋ฅผ ํ ์ฌ์ฉ์๋ฅผ ์ด๋ํ๋ ๋ฒ์ ๋ํด์ ์ ๋ฆฌํด๋ณด๋ ํ๊ฒ ์ต๋๋ค. App Store Connect ์ฑ์คํ ์ด ์ปค๋ฅํธ๋ก ์ด๋ํ์๋ฉด ํต๊ณผ๊ฐ ๋์๋ค๋ฉด ์๋์ ๊ฐ์ด "ํ ์คํธ ์ค๋น ์๋ฃ" ๋ผ๊ณ ์จ์ ธ์์๊ฑฐ์์. ํ ์คํธ ๊ธฐ๊ฐ์ 90์ผ์ด ์ฃผ์ด์ง๋ค์. ์ฌ์ฉ์๋ฅผ ์ถ๊ฐํ๊ธฐ ์ํด์ App Store Connect์ ์ฌ์ฉ์ ๋ฐ ์ก์ธ์ค๋ก ๊ฐ์ค๋๋ค. ์ ๊ท ์ฌ์ฉ์์ ์ ๋ณด๋ฅผ ์ ๋ ฅํด์ฃผ๊ณ ์ด๋๋ฅผ ๋๋ฌ์ค๋๋ค. ์ด๋๊ฐ ์ ์์ ์ผ๋ก ๋์๋ค๋ฉด ์๋์ ๊ฐ์ด ์ฌ์ฉ์์ ์ ๋ณด๊ฐ ์ถ๊ฐ๊ฐ ๋๊ณ ์ด๋ ์ฌ์ ์ก์ด๋ผ๋ ๋ฌธ๊ตฌ๊ฐ ๋ณด์ผ๊ฑฐ์์. ํด๋น ์ด๋ฉ์ผ๋ก ์ด๋ํ์ ์.. 2021. 7. 22. [iOS] TestFlight ๋ฑ๋กํ๋ ๋ฐฉ๋ฒ ์์๋ณด๊ธฐ ์๋ ํ์ธ์ Foma๐ ์ ๋๋ค! ์ค๋์ ์ฑ์ ์ถ์ํ๊ธฐ ์ ์ ํ ์คํธ ์ฌ์ฉ์์๊ฒ ์ฑ์ ๋ค์ด๋ก๋ ํ ์ ์๊ฒ ํ๋ ํ ์คํธํ๋ผ์ดํธ์ ๋ํด์ ์์๋ณด๊ฒ ์ต๋๋ค! ๋ฐ๋ก ์์ํ ๊ฒ์~ Xcode ํ ์คํธ๋ฅผ ์งํํ๊ณ ์ถ์ ํ๋ก์ ํธ๋ฅผ ์คํํด์ค๋๋ค. Any iOS Device(arm64)๋ก ๋ง์ถฐ์ฃผ์๊ณ Xcode ์์ชฝ ํญ์ Product - Archive๋ฅผ ๋๋ฌ์ฃผ์ธ์. (Archiveํ๋๋ฐ ๋ช๋ถ์ ๋ ์์๋ฉ๋๋ค..) ๋ฒ์ ๊ณผ ์ต์๋ฒ์ ์ด ์ ์ฉ๋๊ธฐ ๋๋ฌธ์ ์ ํ์ธํ๊ณ ์์นด์ด๋ธ๋ฅผ ํด์ฃผ์ธ์! ์์นด์ด๋ธ ์๋ฃ๋๋ฉด ์๋์ ๊ฐ์ ์๋ก์ด ์ฐฝ์ด ๋ฐํ ๋ฐ Distribute App์ ๋๋ฌ์ฃผ์ธ์. (No suitable application records were found. ๋ง์ฝ ์์ ๊ฐ์ ์ค๋ฅ๊ฐ ๋ด๋ค๋ฉด App Store Connect์ ํด๋น ์ฑ์ด ๋ฑ๋ก๋์ง.. 2021. 7. 21. [iOS] UI Test ๊ฐ๋จํ๊ฒ ์ฌ์ฉํด๋ณด๊ธฐ ์๋ ํ์ธ์ Foma๐ ์ ๋๋ค! ์ ๋ฒ ํฌ์คํ ์ Unit Test์ ๋ํด์ ๋ค๋ค๋๋ฐ์ ์ค๋์ UI๋ฅผ ํ ์คํธ ํ ์ ์๋ UI Test์ ๋ํด์ ์ ๋ฆฌ๋ฅผ ํด๋ณด๋ ค๊ณ ํฉ๋๋ค ๋ฐ๋ก ์์ํ ๊ฒ์~ UITest Bundle ๋ง๋ค๊ธฐ Project - General ํญ์ผ๋ก ์ด๋ํ์ ์ ์ผ์ชฝ ํ๋จ ๋ถ๋ถ์ +๋ฒํผ์ ๋๋ฌ์ฃผ์ธ์. ๊ทธ๋ฆฌ๊ณค ui๋ฅผ ๊ฒ์ํ๊ณ UI Testing Bundle์ ๋ง๋ค์ด์ฃผ์ธ์. Storyboard ์๋์ ๊ฐ์ด ํ์๊ฐ์ ํ๋ ๋ทฐ์ปจํธ๋กค๋ฌ๋ฅผ ๊ตฌ์ฑํ ๊ฑด๋ฐ์. ์ด๋ฉ์ผ ํ ์คํธํ๋,๋น๋ฐ๋ฒํธ ํ ์คํธํ๋,๋น๋ฐ๋ฒํธ ํ์ธ ํ ์คํธํ๋,ํ์๊ฐ์ ๋ฒํผ์ผ๋ก ๊ตฌ์ฑํด์ฃผ์์ต๋๋ค. SignupViewController IBOutlet์ ๋ชจ๋ ์ฐ๊ฒฐ์์ผ์ฃผ๊ณ signupButton์ ๋๋ ์ ๋ ๋น๋ฐ๋ฒํธ์ ํ์ธ ๋น๋ฐ๋ฒํธ๊ฐ ๋ค๋ฅด๋ค๋ฉด ๊ฒฝ๊ณ ์ฐฝ์ ๋์ฐ๋๋ก ํ์.. 2021. 7. 20. [iOS] Unit Test์ ๋ํด์ ๊ฐ๋จํ ์์๋ณด๊ธฐ ์๋ ํ์ธ์ Foma๐ ์ ๋๋ค! ์ค๋์ Xcode์์ ํ ์คํธ๋ฅผ ํ ์ ์๋ ์ ๋ํ ์คํธ์ ๋ํด์ ์์๋ณด๊ฒ ์ต๋๋ค. ์์ ๋ถํฐ ํ ์คํธ์ ๋ํ ์ค์์ฑ์ ์ ๋ง ๊ฐ์กฐ๋์๊ณ ์ ๋ ํด์ผ์ง...ํด์ผ์ง.. ํ๋ฉด์ ๋ฏธ๋ฃจ๋ค๊ฐ ์ด์ ์ผ ์ ๋๋ก ์ฌ์ฉํด๋ณด๊ณ ๊ณต๋ถํ ๊ฒ๋ค์ ์ ๋ฆฌํด๋ณด๋ ค๊ณ ํฉ๋๋ค. ๋ฐ๋ก ์์ํ ๊ฒ์~ Unit Test Bundle ๋ง๋ค๊ธฐ ๋จผ์ ์ ๋ํ ์คํธ๋ฅผ ๋ง๋๋ ๋ฐฉ๋ฒ์ ์๋์ ๊ฐ์ด ํ๋ก์ ํธ ์์ฑ์์ Include Tests ์ฒดํฌํด์ฃผ์๋ฉด ๋ฉ๋๋ค. ๋ง์ฝ์ ์ด๊ฑฐ ํ๋ก์ ํธ๋ฅผ ์ด๋ฏธ ๋ง๋ค์ด๋ฒ๋ ธ๋ค๋ฉด Project - General ํญ์ผ๋ก ์ด๋ํ์ ๋ค ์ผ์ชฝ ํ๋จ ๋ถ๋ถ์ + ๋ฒํผ์ ๋๋ฌ์ฃผ์ธ์. ๊ทธ ๋ค์ Unit์ ๊ฒ์ํ์๋ฉด Unit Testing Bundle์ด ์์๊ฑฐ์์ ์ด๊ฑธ ์ถ๊ฐํด์ค๋๋ค. Unit Test ํ์ผ ๋ง๋ค๊ธฐ UnitTest Exam.. 2021. 7. 19. [iOS/UI] ์ปฌ๋ ์ ๋ทฐ์ ์๋์ผ๋ก ํฌ๊ธฐ ์กฐ์ ํ๊ณ ์ผ์ชฝ ์ ๋ ฌํ๊ธฐ (CollectionViewCell Automaticsize & LeftAlign) ์๋ ํ์ธ์ Foma ๐ ์ ๋๋ค. ์ค๋์ ์ ์ ์ผ์ชฝ์ผ๋ก ์ ๋ ฌ์ํค๊ณ ์ ์์ ์๋ ํ ์คํธ์ ๋ฐ๋ผ์ ์๋์ผ๋ก ํฌ๊ธฐ๊ฐ ์กฐ์ ๋๋ ๊ฒ์ ์์๋ณด๋๋ก ํ ๊ฒ์! (์ผ๋ฐ์ ์ผ๋ก ์ปฌ๋ ์ ๋ทฐ์ ์ ๋ง๋ค๋ฉด ์๋์ ๊ฐ์ด ๋ ๊ฑฐ์์!) ์ค๋์ ์๋์ ๊ฐ์ด ๋ง๋ค์ด ๋ณด๊ฒ ์ต๋๋ค. ๋ฐ๋ก ์์ํ ๊ฒ์~ StoryBoard ์คํ ๋ฆฌ๋ณด๋๋ ์๋์ ๊ฐ์ด ์ค์ ํด์ฃผ์ธ์. CollectionViewCell ์ปฌ๋ ์ ๋ทฐ์ ์ ๋ ์ด๋ธ์ ์ฐ๊ฒฐํด์ค๋๋ค. class CollectionViewCell: UICollectionViewCell { @IBOutlet weak var label: UILabel! } ViewController ๋ทฐ์ปจํธ๋กค๋ฌ์ ์ปฌ๋ ์ ๋ทฐ๋ฅผ ์ฐ๊ฒฐํด์ค๋๋ค. @IBOutlet weak var collection: UICollectionView! ์ปฌ๋ ์ ๋ทฐ ๋๋ฆฌ๊ฒ์ดํธ.. 2021. 6. 29. [Design Pattern] ReactorKit์ด๋? ์๋ ํ์ธ์ Foma ๐ ์ ๋๋ค! ์ค๋์ RxSwift์ MVVM ๋์์ธ ํจํด์ ์ฌ์ฉํ ๋ ์์ฃผ ์ ์ฉํ๊ฒ ์ฐ์ด๋ ReactorKit์ ๋ํด์ ์ ๋ฆฌํ๋ ค๊ณ ํฉ๋๋ค! ๋ฐ๋ก ์์ํ ๊ฒ์~ ReactorKit์ด๋? ReactorKit ๊ณต์ ๊นํ๋ธ์์๋ ์ด๋ ๊ฒ ์๊ฐํ๊ณ ์์ต๋๋ค. ReactorKit์ ๋ฐ์ํ ๋ฐ ๋จ๋ฐฉํฅ Swift ์ ํ๋ฆฌ์ผ์ด์ ์ํคํ ์ฒ๋ฅผ์ํ ํ๋ ์ ์ํฌ์ ๋๋ค. ๊ฐ๋จํ๊ฒ ์ค๋ช ๋๋ฆฌ๋ฉด ReactorKit์ ์๋์ ๊ฐ์ด Reactor์ View๋ฅผ ์ฐ๊ฒฐํด์ฃผ๋๋ฐ ์ฐ๊ฒฐํ๋ ๋ฐฉ์์ Action๊ณผ State๋ก ๋๋ ๊ฒ์ ๋๋ค. ViewModel ์ญํ ์ Reactor๊ฐ ํ๋๋ฐ ์ด ViewModel์์ ์ผ์ด๋๋ ๋ฐ์ํ ์ด๋ฒคํธ๋ค์ ์ก์ ๊ณผ ์ํ๋ก ๋๋ ๊ฒ์ด์ฃ ! ReactorKit์ ์ฐ๋ฉด ๋ญ๊ฐ ์ข์๋ฐ? 1. ํ ์คํธํ๊ธฐ ์ฝ๋ค. ๋ทฐ์์.. 2021. 6. 17. [iOS] ํค๋ณด๋๊ฐ ํ ์คํธํ๋๋ฅผ ๊ฐ๋ฆด๋ ํด๊ฒฐ๋ฒ(When the keyboard covers text field) ์๋ ํ์ธ์ Foma ๐ ์ ๋๋ค! ์ค๋์ ํ ์คํธํ๋๋ฅผ ๋ง๋ค๋ค๋ณด๋ฉด ์ ๋ง ์์ฃผ ๋ง๋๋ ํค๋ณด๋ ๋ฌธ์ ์ ๋ํด์ ๋ค๋ค๋ณด๋ ค๊ณ ํด์. ์๋ฎฌ๋ ์ดํฐ๋ก ๊ฐ๋ฐํ๋ค๋ณด๋ฉด ํค๋ณด๋์ ์์น๋ฅผ ๊ณ ๋ คํ์ง ์๊ณ ์ง๋ค๊ฐ ํค๋ณด๋๊ฐ ์ฌ๋ผ์ค๋ ์๊ฐ ํค๋ณด๋ ์๋์ ์๋ ํ ์คํธํ๋๋ ๋ฒํผ๋ค์ด ๊ฐ๋ ค์ง๊ณค ํ๋๋ฐ์. ์ค๋์ ์ด๊ฒ์ ๋ํ ํด๊ฒฐ๋ฒ์ ์ ๋ฆฌํ๋๋ก ํ๊ฒ ์ต๋๋ค. ๋ฐ๋ก ์์ํ ๊ฒ์! Preview Storyboard ์๋ ํ๋ฉด๊ณผ ๊ฐ์ด ํ ์คํธํ๋์ ๋ฒํผ์ด ๋น๊ต์ ์๋์ ์๋๋ก ๋ง๋ค์ด ์ฃผ๊ฒ ์ต๋๋ค. View์๋ Tap Gesture Recognizer๋ฅผ ๋ฌ์๋๊ฒ ์ต๋๋ค. ViewController ์คํ ๋ฆฌ๋ณด๋์์ ๋ง๋ค์ด์ค ํ ์คํธํ๋์ ๋ฒํผ์ ์ฐ๊ฒฐํด์ค๋๋ค. @IBOutlet weak var textField: UITextField! @IBOutlet weak va.. 2021. 6. 16. [iOS] ๊ฑด๊ฐ ๋ฐ์ดํฐ ์ฌ์ฉํด๋ณด๊ธฐ(feat.HealthKit) ์๋ ํ์ธ์ Foma ๐ ์ ๋๋ค! ์ค๋์ ๋ด ์์ดํฐ์ ์๋ ๋์ ๊ฑด๊ฐ ์ ๋ณด๋ฅผ ๊ฐ์ ธ์๋ณด๊ณ ๋ ๊ธฐ๋กํด๋ณด๋ ๊ฒ์ ์ ๋ฆฌํด๋ณด๋ ค๊ณ ํฉ๋๋ค! ๋ฐ๋ก ์์ํ ๊ฒ์~ Info.plist ์๋์ ๊ฐ์ด ๋ ์์ฒญ์ ๋ฃ์ด์ค๋๋ค. NSHealthShareUsageDescription ๋ ์๋ก์ด ๊ฑด๊ฐ ๋ฐ์ดํฐ๋ฅผ ๋ฃ์ ๋ NSHealthUpdateUsageDescription ๋ ๊ธฐ์กด์ ๊ฑด๊ฐ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์์ฌ ๋ ํ์ํด์. NSHealthShareUsageDescription ๊ฑด๊ฐ ๋ฐ์ดํฐ๋ฅผ ์ธ๋ ํ์ํด์. NSHealthUpdateUsageDescription ๊ฑด๊ฐ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์์ค๋๋ฐ ํ์ํด์. Signing & Capability ์ฑ์ Targets์ Signing & Capbility์์ ์๋์ ๊ฐ์ด HealthKit์ ์ถ๊ฐํด์ฃผ์ธ์! ๋ฐ.. 2021. 6. 8. ์ด์ 1 2 3 4 5 6 ยทยทยท 12 ๋ค์ 728x90 ๋ฐ์ํ