15 Oct 2018
|
Project
๋งํธ์ฌ๋๋ - ํด๋ฌด์ผ ์๋ฆฌ๋ฏธ
๋ํ๋งํธ ํด๋ฌด์ผ์ ๋งค๋ฒ ๊ฒ์ํ๊ธฐ ๊ท์ฐฎ์ ์ฌ๋๋ค์ ์ํ ์ฑ
์ฃผ์๊ธฐ๋ฅ
- ๋ํ๋งํธ ํด๋ฌด์ผ ๊ฒ์, ํด๋ฌด์ผ ์ ๋ณด ์ ๊ณต
- ๋งํธ ์ ํ๋ฒํธ, ์์
์๊ฐ, ํํ์ด์ง, ์์น(์ง๋)์ ๋ณด ์ ๊ณต
- ๋งํธ ์ฆ๊ฒจ์ฐพ๊ธฐ ์ถ๊ฐ ๊ธฐ๋ฅ
- ์์ ฏ ์๋น์ค: ์ฆ๊ฒจ์ฐพ๋ ๋งํธ์ ํด๋ฌด์ผ ์์ ฏ ํ์
- ํธ์ ์๋น์ค: ์ฆ๊ฒจ์ฐพ๋ ๋งํธ์ ํด๋ฌด์ผ ํ๋ฃจ ์ ๋ ํธ์ ์๋ฆผ
์คํฌ๋ฆฐ์ท
๋ฌธ์
E-mail: jinios.dev@gmail.com
14 Oct 2018
|
iOS
NotificationQueue
NotificationCenter
๋
ธํฐํผ์ผ์ด์
์ด ์๋ฆฌ์ผํ์์ ์ฒ๋ฆฌ๊ฐ๋๋๊ฑด๊ฐ!?๋ผ๋ ๊ถ๊ธ์ฆ์ ์ฐพ์๋ณธ ํ ๊ฐ๋จํ ์ ๋ฆฌ
class NotificationQueue : NSObject
- Notification๋ค์ NotificationQueue์ ์์นํจ (FIFO)
- NotificationCenter์ ์ํด ํฌ์คํ
๋๋ notification๋ค์ ๋๊ธฐ์ ์ผ๋ก ์ ๋ฌ๋๋ค.
- ์ฆ, ์์ (ํ์ฌ์)๋
ธํฐ๊ฐ run loop์ ๋น ์ ธ๋๊ฐ๊ฑฐ๋ run loop์ด ํ๊ฐํด์ง๊ธฐ์ ๊น์ง ๋๋ ์ด ๋ ์ ์๋ค.
- ์ค๋ณต๋๋ ๋
ธํฐ๋ค์ ์ฌ๋ฌ ๋
ธํฐ๊ฐ ํฌ์คํ
๋๋๋ผ๋ ํฉ์ณ์ง ์ ์๋ค. (ํ๋์ ๋
ธํฐ๋ง ๋ณด๋ด๊ธฐ ์ํด)
- ๋ชจ๋ ์ค๋ ๋๋ ๊ธฐ๋ณธ ๋
ธํฐํผ์ผ์ด์
ํ๋ฅผ ๊ฐ์ง๊ณ ์์ผ๋ฉฐ, ๊ทธ๊ฒ์ default notification center(
NotificationCenter.default
)์ ์ฐ๊ด๋์ด์๋ค.
- ์ปค์คํ
๋
ธํฐํผ์ผ์ด์
ํ๋ฅผ ๋ง๋ค์ด์ ์ฌ์ฉํ ์ ์์ผ๋ฉฐ ์ผํฐ์ ์ค๋ ๋๋ง๋ค ์ฌ๋ฌ ํ๋ฅผ ๊ฐ์ง ์ ์๋ค.
- ๋
ธํฐํผ์ผ์ด์
์ด ๋๊ธฐ์ ์ผ๋ก ๋์ํ๋ค๋๊ฒ์ ์ฑ์ด ๋ฐ์ ์ํ์ด๊ฑฐ๋ ์ฌ๋ฌ ๋
ธํฐ๋ค ๋ฐ๋ณต๋ ๋ ์ฑ์ ๋๋ฆฌ๊ฒ ๋ง๋ค๊ฑฐ๋ ๋ฉ์ถ๊ฒ ๋ง๋ค ์ ์๋ ๋ฌธ์ ์ ์์ง๊ฐ ์๋ค.
- ์ด๋ NotificationQueue๋ง๋ค์ด์ ์ฌ์ฉํ๋ฉด ๋น๋๊ธฐ์ ์ผ๋ก ๋์์ํฌ ์ ์๊ณ , ์ด๋ฐ ๋ฌธ์ ๋ฅผ ์ํํ ์ ์๋ค.
- ์์
let notification = Notification(name: Notification.Name("MyValueChanged"))
NotificationQueue.default.enqueue(notification, postingStyle: .whenIdle, coalesceMask: .none, forModes: nil)
์ถ์ฒ
08 Oct 2018
|
TIL
2018.10.08
- ํ
์คํธ๋น๋ํ ๋ ์ธ๋ถ ํ๋ ์์ํฌ๋ฅผ ๋ชป์ฐพ์์ ๋น๋๋์ง ์๋ ๋ฌธ์ ํด๊ฒฐํ ๋ ์ฐพ๋ ๊ฒฝ๋ก ๋ฃ์ด์ฃผ๋ ๋ฐฉ๋ฒ!
- ํ์ด์ด๋ฒ ์ด์ค ๊ตฌ๋
๋ณด๋ด๊ธฐ / ๋จ์ผ๊ธฐ๊ธฐ๋ณด๋ด๊ธฐ ์ฑ๊ณต
- https://stackoverflow.com/a/45268025
- ํ์ด์ด๋ฒ ์ด์ค Messaging๊ฐ์ฒด์ fcmtoken์ ์ ์ ๊ฐ notification์ ํ์ฉํ๋ ์ํ๋ ์๊ด์์ด ๋ฐํ.
- DataStorage๋ฅผ ์ด์ฉํ๊ณ , ํ์ด์ด๋ฒ ์ด์ค์ ์ ์ฅ๊ณผ ๊ตฌ๋
์ ์ฑ์ ๋๊ฑฐ๋ ๋ฐฑ๊ทธ๋ผ์ด๋๋ก ๊ฐ์๋๋ง ํจ!
- favorites์ ํ์ํ๋ ์์ ์ฑํฌ๋ฅผ ๋ง์ถ๊ณ ์ฑ์ต์คํ
์
์์๋ ๋ง์ถ๊ธฐ์ํด(fetch๊ฐ ๋น๋๊ธฐ์) ๋ด๋ถ ์ ์ฅ์๋ฅผ ์ฌ์ฉํ๋ฉฐ, ์ฑ์ ์ฃผ๊ธฐ๋ฅผ ๊ด๋ฆฌํ๋ AppDelegate์์๋ง FavoriteAPI๋ฅผ ํตํด ํ์ด์ด๋ฒ ์ด์ค์ ์ฆ๊ฒจ์ฐพ๊ธฐ ์ ๋ณด๋ฅผ ์ ์ฅํ๋ค. (fetch๋ ์์ง ์ฌ์ฉํ๊ณ ์์ง์์)
- ๋ฐ์น ์คํฌ๋ฆฐ ์ ์ฅ
2018.10.09
์ค๋ฒ๋ผ์ด๋ ๋ฐฉ์ง(Preventing Overrides)
final๋ก ํ์ํ์ฌ ์ค๋ฒ๋ผ์ด๋๋ก๋ถํฐ ๋ฉ์๋, ์์ฑ ๋๋ ์๋ธ์คํฌ๋ฆฝํธ๋ฅผ ๋ง์ ์ ์์. ๋ฉ์๋, ์์ฑ ๋๋ ์๋ธ์คํฌ๋ฆฝํธ์ final var, final func, final class func๊ทธ๋ฆฌ๊ณ final subscript๊ฐ์ ์๊ฐ ํค์๋ ์์ final ์์์ด๋ฅผ ์์ฑํ์ฌ ์ํํจ.
์๋ธํด๋์ค ์์์ final ๋ฉ์๋, ์์ฑ ๋๋ ์๋ธ์คํฌ๋ฆฝํธ๋ฅผ ์ค๋ฒ๋ผ์ด๋ํ๋ ค๋ ์๋๋ ์ปดํ์ผ ํ์์๋ฌ๋ก ๋ณด๊ณ ๋จ. ๋ฉ์๋, ์์ฑ ๋๋ ์๋ธ์คํฌ๋ฆฝํธ๋ ํ์ฅ ์ ์์์ final๋ก์ ํ์ํ์ฌ ํด๋์ค์ ์ถ๊ฐํ ์ ์์.
ํด๋์ค ์ ์์์ class ํค์๋ ์์ final ์์์ด๋ฅผ ์ฐ๋๋ก ํ์ฌ final๋ก์ ๋ชจ๋ ํด๋์ค๋ฅผ ํ์ํ ์ ์์(final class). final ํด๋์ค๋ฅผ ์๋ธํด๋์ค๋ก ํ๋ ค๋ ์๋๋ ์ปดํ์ผ ํ์์๋ฌ๋ก ๋ณด๊ณ ๋ ๊ฒ์.
2018.10.10
- ๋ฉ์ผ result์๋ฐ๋ผ์ alert ํผ๋๋ฐฑ ๊ณ ์นจ
- ์ด์ ์๋ ๋ฉ์ผ ์ปจํธ๋กค๋ฌ๊ฐ ์ผ์ง๊ธฐ๋ง ํ๋ฉด ๋๋ฉด์ ๊ฐ์ฌํฉ๋๋ค ์๋ฆผ์ ์คฌ๋๋ฐ ์ทจ์ํ๊ฑฐ๋ ์์์ ์ฅํ๊ฑฐ๋ ๋ฉ์ผ์ ์๋ณด๋ด๋ ๊ฐ์ฌํ๋ค๊ณ ํด์โฆ.
- url๋
ธ์ถ๋์ด์๋ ๊ฒ ๋ชจ๋ keyInfo.plistํ์ผ๋ก ์จ๊น
- stringํํ๋ก ์จ์๋ ๋ฌธ์์ด๋ค programdescription enum์ผ๋ก ์จ๊น
2018.10.11
- ๋ผ์ด์ ์ค ๊ฐ๋จํ์
- Bundle display name ์์ ํด์ ๋๋ฐ์ด์ค์คํฌ๋ฆฐ์ ํ์๋ (์ฑ์ค์นํ ์ฑ ์์ด์ฝ ๋ฐ์)์ด๋ฆ ์์ ํ ์ ์์.
- appstore connect ์ฌ์ดํธ์์ ์ฑ ๋ฑ๋ก์ ํ๋ ค๊ณ ํ๋๋ฐ ๋งํธ ์ฌ๋๋ ์ด ์ฌ์ฉ์ค์ด์๋คโฆ์ถฉ๊ฒฉ๊ณผ ๊ณตํฌ(์๋ง๋ ์ฑ ์ถ์๋ ์ํ๊ณ ์ฑ์คํ ์ด์ปค๋ฅํธ์ ๋ฑ๋ก๋งํด๋์๋ฏ)
2018.10.12
- ํ
์คํธํ๋ผ์ดํธ ๋ฐฐํฌ
- ์ฑ ์ด๋ฆ (ํํ๋ฉด์ ๋ณด์ด๋ bundle display name) ์ง์ญํํ๊ธฐ
- ํฌ๋ฐ์ด์ต์คํ
์
์ด ์๋ด๋๋ฐ ์๋ง๋ ์ฑ ๊ทธ๋ฃน ํ์ฑํ ์๊ฐ์ด ์กฐ๊ธ ๊ฑธ๋ ค์ ๊ทธ๋ฐ๋ฏโฆ?
- ์ฒ์ ์ฑ ๋ค์ด ๋ฐ์์๋๋ ์๋จ๊ณ ์์ ฏ ์์ฒด๋ ์คํ์ด ๋์ง๋ง 8์๊ฐ? ์ ๋ ์ง๋๋๊น ๋ธ
2018.10.13
- gitflow ์ฌ์ฉ๋ฒ
- Privacy policy generator๋ก ๊ฐ์ธ์ ๋ณด ์ทจ๊ธ๋ฐฉ์นจ ๋ง๋ฆ
- ๋ฆด๋ฆฌ์ฆ1.0 ๋ธ๋์น ๋ฐ์ ๋ฆด๋ฆฌ์ฆ ์ ๋ฒ๊ทธ ํฝ์ค ์์
- ์์ ฏ๋ ๋ก์ปฌ๋ผ์ด์ฆ ์ด๋ฆ ๋จ๊ฒ ์์ ํ๊ธฐ
- ํ
์ด๋ธ๋ทฐ ์
๋ ์
์คํ์ผ ์์ ๊ธฐ
- URLSession ๋คํธ์ํฌ ํ์์์ ์ค์
- release 1.0์์ ์์ ํ ์ฌํญ
- ๋คํธ์ํฌ ์๋ฌ์ฒ๋ฆฌ: ํ์์์ 3~5์ด
- ๋ฆฌํฉํ ๋ง: ๋ฆฌ์ณ๋น๋ฆฌํฐ๋ ๋ก๋ฉ์ธ๋์ผ์ดํฐ
- ๊ฐ์ธ์ ๋ณด์ทจ๊ธ๋ฐฉ์นจ
- ๋ผ์ด์ ์ค ํ
์คํธํ์ผ ์์ ํ๊ณ ์
๋ก๋
2018.10.14
- ๋ฆด๋ฆฌ์ฆ 1.0 ๋น๋2
- ํธ์ ํ
์คํธํ ๊ตฌ๋
/ ๊ตฌ๋
์ทจ์ ์์
์ด ์ ๋๋ก ์๋๊ณ ์๋ ํ๊ณ ์๋ ๋ฐฉ๋ฒ์ด ์ฐ๋ ๊ธฐ๋ฐ์ดํฐ๊ฐ ๋จ๋ ๋ฐฉ๋ฒ์ด๋ผ ์์
- ์ฌ์ฉ์๊ฐ favorite์ toggleํ ๋๋ง๋ค ๊ตฌ๋
์ ๋ฃ์๋ค ๋นผ๋ ๋ฐฉ๋ฒ์ผ๋ก ์์ ํจ
- ๋น๋๊ธฐ ์๋ฆฌ์ผํ ๋ฑ๋ฑ๋ฑ์ ๋ฐฉ๋ฒ์ ์ฌ์ฉํด๋ณด๋ คํ์ผ๋ ๋ํ๋์ ๋ฌธ์ ๋ก FavoriteAPI๊ฐ์ฒด๋ฅผ ์ฌ๊ธฐ์ ๊ธฐ์ ์ธ ์ ์๊ธฐ๋๋ฌธ์โฆ.ใ
_ใ
๋
ธํฐํผ์ผ์ด์
์ผํฐ๋ก ์์ ํจ. ํ
์คํธํด๋ณด๋ ์ฆ๊ฒจ์ฐพ๊ธฐ๋ฅผ ๋ง ๊ป๋ค์ผฐ๋คํด๋ ์์๋๋ก ์ฒ๋ฆฌ๊ฐ ๋๋ค. ๋
ธํฐํผ์ผ์ด์
์ด ์๋ฆฌ์ผํ์์ ์ฒ๋ฆฌ๊ฐ๋๋๊ฑด๊ฐ!?(์ ๋ฆฌ)
2018.10.15
- ๋ฆด๋ฆฌ์ฆ 1.0 ๋น๋ 3 / ๋น๋ 4 ๋๋ฒ ์ฌ๋ฆผ
- ๋๋ฒ ์ฌ๋ฆฌ๊ณ ์ฑ ์ฌ์ฌ๋ฅผ ์ํด ์ ์ถํจ!!
- ๋ฉ์ธํ๋ฉด์ ์ฆ๊ฒจ์ฐพ๊ธฐ ์ ๋ณด๊ฐ ์์ด์ ์๋ฌด๊ฒ๋ ์๋ฐ๋ โ์ฆ๊ฒจ์ฐพ๋ ๋งํธ๋ฅผ ํ์ธํด์ฃผ์ธ์โ ๋ฌธ๊ตฌ๋ฅผ ๋ผ๋ฒจ์์ ๋ฒํผ์ผ๋ก ์์
- (๊ทธ ๋ฌธ๊ตฌ๋ฅผ ๋๋ฅด๋ฉด ๋ญ๊ฐ ์ก์
์ด๋์ฌ๊ฑฐ๊ฐ๋ค๋ ์๊ฒฌ์ด ๋ง์์)
- ๋ฌธ์๋ฉ์ผ์ ์ ์ ์ ๋๋ฐ์ด์คํ ํฐ ๋ฃ์(๋ฌธ์๊ฐ ์ค๋ฉด ๋๋น์์ ์ฐพ์์ ๋ณผ ์ ์๋๋ก)
- ํธ์ ๋ฐฉ์์ ๋ฐ๊ฟ
- ๊ตฌ๋
์ ๊ฐ๋ฐ์๊ฐ ํ์ธํ๊ธฐ๋ ๋ถํธํ๊ณ , DB์์ ์ฑํฌ๋ ๋ง์ง ์๋๋ค. (์ฌ์ฉ์์ ํ๋ฉด์์ ๋ณผ ์ ์๋ ์ฆ๊ฒจ์ฐพ๊ธฐ ์ถ๊ฐํด๋์ ๋งํธ์ ํธ์ ๊ตฌ๋
์ ๋ค์ด๊ฐ์๋ ๋งํธ๊ฐ ๋ฌ๋ผ์ ํ๋ฉด์ ์๋ ๋งํธ์ ๋ํ ํธ์๊ฐ ์ฌ ์๋์๊ณ , ํ๋ฉด์ ํ์๋์๋๋ฐ ํธ์๊ฐ ์์ฌ์๋์์โฆ)
- ๊ตฌ๋
๋ฐฉ์์ด ์๋ ํ๋ฒ DB์์ ์ฅํด๋์
[ํ ํฐ:[์ฆ๊ฒจ์ฐพ๊ธฐ]]
๋๋ก ํธ์๋ฅผ ๋ณด๋ด๊ธฐ๋ก ํจ