Code Monkey home page Code Monkey logo

perfectday's Introduction

Sangwon Shin ๐Ÿ‘‹

Hits

who am I?

  • ๐Ÿ‘ฏ I majored in Electronic Engineering
  • ๐Ÿ“ซ Konkuk University (2015.03 ~ 2021.08)

sangwon's github stats

sangwon's github stats

perfectday's People

Contributors

brandnew-one avatar

Watchers

 avatar

perfectday's Issues

์นธ๋ฐ˜ ๋ณด๋“œ

  • ์ด์Šˆ ์ƒํƒœ ์ •์˜
  • ์ด์Šˆ ์ƒํƒœ ๋ณ„ ์นธ๋ฐ˜ ๋ณด๋“œ ๊ตฌํ˜„ (ํƒญ๋ทฐ)
  • ์ด์Šˆ ์ƒํƒœ ๋ณ€ํ™”

Locaiton Auth ์„ค์ • ๊ด€๋ จ Tuist issue

image

ํ˜„์žฌ ์œ„์™€ ๊ฐ™์ด ํ”„๋กœ์ ํŠธ์˜ info.plist ํŒŒ์ผ์— ์ง์ ‘ ์œ„์น˜ ๊ด€๋ จ ๊ถŒํ•œ์„ ์„ค์ •ํ•˜๋ฉด ์ •์ƒ์ ์œผ๋กœ ๋™์ž‘ํ•˜์ง€๋งŒ Tuist๋ฅผ ์ด์šฉํ•ด์„œ info.plist์„ ๋งŒ๋“ค๋ฉด ์ •์ƒ์ ์œผ๋กœ ๋™์ž‘ํ•˜์ง€ ์•Š๋Š” ๋ฌธ์ œ์ ์ด ์žˆ๋‹ค.

var infoPlist: [String: InfoPlist.Value] = [
      "CFBundleShortVersionString": "1.0",
      "CFBundleVersion": "1",
//      "UIMainStoryboardFile": "",
      "UILaunchStoryboardName": "LaunchScreen",
      "Fonts provided by application": [
        "LINESeedKR-Rg.otf", "LINESeedKR-Th.otf"
      ]
    ]

    let locationAuth: [String: InfoPlist.Value] = [
      "Privacy - Location Always and When In Use Usage Description":
        "์œ„์น˜ ์•Œ๋ฆผ ์„œ๋น„์Šค๋ฅผ ์œ„ํ•ด์„œ๋Š” ์œ„์น˜ ์ •๋ณด ๋™์˜๊ฐ€ ํ•„์š”ํ•ด์š”",
      "Privacy - Location When In Use Usage Description":
        "ํ˜„์žฌ ์œ„์น˜๋ฅผ ์•Œ๊ธฐ ์œ„ํ•ด์„œ๋Š” ์œ„์น˜ ์ •๋ณด ๋™์˜๊ฐ€ ํ•„์š”ํ•ด์š”"
    ]

    locationAuth.forEach { infoPlist[$0] = $1 }

ํ˜„์žฌ ์œ„์™€ ๊ฐ™์ด ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๊ณ  ์•ฑ ํƒ€์ผ“์— tuist์—์„œ ์ œ๊ณตํ•˜๋Š” default plist ํŒŒ์ผ์— ์ถ”๊ฐ€ํ•ด์„œ info.plist ํŒŒ์ผ์„ ์ƒ์„ฑํ•ด์„œ ์‚ฌ์šฉํ•˜๋„๋ก ์„ค์ •ํ•˜๊ณ  ์žˆ๋‹ค.

info.plistํŒŒ์ผ๋กœ ์ •์ƒ์ ์œผ๋กœ ์ƒ์„ฑ๋˜๋Š” ๊ฒƒ ๊นŒ์ง€๋Š” ํ™•์ธํ–ˆ์œผ๋‚˜ ์œ„์น˜ ๊ถŒํ•œ์ด ํ•„์š”ํ•œ ํ™”๋ฉด์—์„œ ๊ด€๋ จ ๊ฐ’๋“ค์ด ์„ค์ •๋˜์ง€ ์•Š์•˜๋‹ค๋Š” ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.
(์˜คํƒ€ ๋ฌธ์ œ๋Š” ์•„๋‹™๋‹ˆ๋‹ค.ใ… ใ… )

Location ๊ธฐ๋ฐ˜ Local Notificaiton

  • ์œ„์น˜ ๊ถŒํ•œ์ด ์—†๋Š” ๊ฒฝ์šฐ, ์œ„์น˜ ๊ธฐ๋Šฅ ๋น„ํ™œ์„ฑํ™”
  • ์ดˆ๊ธฐ์— ํ˜„์žฌ ์‚ฌ์šฉ์ž ์œ„์น˜ ๊ธฐ๋ฐ˜ ์ง€๋„ ํ™œ์„ฑํ™”, ํƒญ์‹œ sheet๋กœ ์ง€๋„ ์„ค์ • ๊ธฐ๋Šฅ
  • center marker๋ฅผ ํ†ตํ•œ ์ฃผ์†Œ ํ‘œ์‹œ
  • ์ฃผ์†Œ ์ž…๋ ฅ์„ ํ†ตํ•œ ์œ„์น˜ ์ด๋™ ๊ธฐ๋Šฅ

Tuist + SPM Realm ์—๋Ÿฌ

Tuist + SPM ์—๋Ÿฌ

Realm์„ Tuist์—์„œ ์ œ๊ณตํ•˜๋Š” SPM์œผ๋กœ ๋””ํŽœ๋˜์‹œ๋ฅผ ์ถ”๊ฐ€ํ•ด์„œ ์‚ฌ์šฉํ•˜๋ฉด Realm์„ ์‚ฌ์šฉํ•˜๋Š”๋ฐ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค.

Tuist๋Š” Swift ํŒจํ‚ค์ง€๋ฅผ ํŒจํ‚ค์ง€ ํ˜•ํƒœ๋กœ ๊ฐ€์ ธ์˜ค๋Š”๊ฒŒ ์•„๋‹Œ ๋ณ„๋„์˜ ํ”„๋กœ์ ํŠธ๋กœ ๋งŒ๋“ค์–ด์„œ ์‚ฌ์šฉํ•˜๋Š”๋ฐ ์ด๋•Œ object-c๋กœ ๊ตฌํ˜„๋œ ๋ชจ๋“ˆ๋“ค์„
๋งŒ๋“ค์–ด ์ฃผ์ง€ ๋ชปํ•˜๋Š” ๋ฌธ์ œ์ ์ด ์žˆ๋‹ค๊ณ  ํ•œ๋‹ค.

Carthage๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ๋‹ค๋Š” ๊ธ€์ด ์žˆ์–ด ์‹œ๋„ ํ–ˆ์œผ๋‚˜ ์‹คํŒจํ•˜๊ณ  ์šฐ์„ ์€ Xcode์—์„œ ์ง€์›ํ•˜๋Š” SPM ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉํ•ด์„œ ๊ธ‰ํ•œ๋Œ€๋กœ ํ•ด๊ฒฐํ–ˆ๋‹ค.

Tuist ๊ณต์‹๋ฌธ์„œ์—์„œ๋Š” Xcode SPM์„ ์‚ฌ์šฉํ•  ์‹œ ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ ์‹œ ์บ์‹ฑ ๋ฐ ํŒจํ‚ค์ง€ ํ•ด๊ฒฐ๊ณผ ๊ฐ™์€ ์ค‘์š”ํ•œ ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ์ง€์›์ด ์†์‹ค๋œ๋‹ค๊ณ  ํ•˜๋Š”๋ฐ ์ถ”๊ฐ€์ ์œผ๋กœ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ์ฐพ๊ธดํ•ด์•ผํ• ๊ฒƒ ๊ฐ™๋‹ค.

Pacakge.resolved

๊ธฐ์กด์˜ ํ˜‘์—…์ด๋‚˜ ํšŒ์‚ฌ์—์„œ๋Š” Cocoapod์„ ์ด์šฉํ•ด ์™ธ๋ถ€ ๋””ํŽœ๋˜์‹œ๋ฅผ ๊ด€๋ฆฌํ–ˆ์—ˆ๋Š”๋ฐ Xcode SPM์„ ํ†ตํ•ด์„œ ์™ธ๋ถ€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ถ”๊ฐ€ํ•˜๋‹ˆ .Pacakge.resolved ๋ผ๋Š” ํŒŒ์ผ์ด ์ƒ๊ฒผ๋Š”๋ฐ ์ด ํŒŒ์ผ ์—ญ์‹œ ํ˜•์ƒ๊ด€๋ฆฌ๋ฅผ ํ•ด์•ผํ•˜๋Š”๊ฐ€? ์— ๋Œ€ํ•œ ์˜๋ฌธ์ด ์ƒ๊ฒผ๋‹ค.

ํ•ด๋‹น ํŒŒ์ผ์€ Podfile.lock๊ณผ ์œ ์‚ฌํ•˜๊ฒŒ ์™ธ๋ถ€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋“ค์˜ ๋ฒ„์ „ ์ •๋ณด๋ฅผ ๋‹ด๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ํ˜‘์—… ์‹œ ๋ฒ„์ „ํ†ต์ผ์„ ์œ„ํ•ด์„œ ํ•„์š”ํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•ด์„œ .git์— ์ถ”๊ฐ€ํ–ˆ๋‹ค.

ํ”„๋กœ์ ํŠธ ํŒŒ์ผ์•ˆ์— ์ˆจ๊ฒจ์ ธ ์žˆ๋Š” ๊ฒƒ์„ ํ™•์ธํ–ˆ๋‹ค.

Calendar ๊ธฐ๋ฐ˜ Local Notification Setting

  • Notification ๊ถŒํ•œ ์„ค์ •
  • Noti ๊ถŒํ•œ์— ๋”ฐ๋ฅธ ์ด์Šˆ ์ƒ์„ฑ ๋งˆ๊ฐ์ผ ์„ค์ • ๊ธฐ๋Šฅ

Notification ๊ถŒํ•œ ์„ค์ •์„ ํ•˜์ง€ ์•Š์œผ๋ฉด ๋งˆ๊ฐ์ผ ํ™œ์„ฑํ™œ ์‹œํ‚ฌ ์ˆ˜ ์—†๋„๋ก ๋ง‰๋Š” ๋ฐฉํ–ฅ์œผ๋กœ ๊ตฌํ˜„ ์˜ˆ์ •

์ด๋ฏธ์ง€, ์ปฌ๋Ÿฌ ์—์…‹ ๋ฐ ํฐํŠธ ์„ค์ •ํ•˜๊ธฐ

์ด๋ฏธ์ง€, ์ปฌ๋Ÿฌ ์—์…‹ ์„ค์ • #4

  • Tuist๋ฅผ ํ†ตํ•ด์„œ ์—์…‹ ์„ค์ • ํ…Œ์ŠคํŠธ ํ•„์š”
  • ๋ผ์ดํŠธ ๋ชจ๋“œ, ๋‹คํฌ ๋ชจ๋“œ ์„ค์ •
  • ํฐํŠธ ํ”„๋กœ์ ํŠธ์— ํ…Œ์ŠคํŠธ ์šฉ์œผ๋กœ ์„ค์ • (์ถ”ํ›„ fix)

๊ธฐํš ๋ฐ ์™€์ด์–ด ํ”„๋ ˆ์ž„ ์ƒ์„ฑ

์ปจ์…‰

  • JIRA ์Šคํƒ€์ผ์˜ ํ”Œ๋ž˜๋„ˆ ์ œ์ž‘
  • ์›”๋‹จ์œ„, ์ฃผ๋‹จ์œ„ ๋ฐฑ๋กœ๊ทธ ์ƒ์„ฑ ๋ฐ ๊ด€๋ฆฌ
  • Daily ์นธ๋ฐ˜ ๋ณด๋“œ ์ƒ์„ฑ ๋ฐ ๊ด€๋ฆฌ
  • ์œ„์น˜ ๊ธฐ๋ฐ˜, ์‹œ๊ฐ„ ๊ธฐ๋ฐ˜์˜ ์ด์Šˆ ์•Œ๋ฆผ ์ƒ์„ฑ
  • ์›”,์ฃผ,์ผ ๋ณ„ ์„ฑ์ทจ๋„ ํ‰๊ฐ€ ๋ฐ ์ฃผ ๋‹จ์œ„ ์Šคํ”„๋ฆฐํŠธ์— ๋Œ€ํ•œ ํšŒ๊ณ  ์ž‘์„ฑ -> (๊ฐœ์ธ์ ์ธ ํ‰๊ฐ€, ์ •๋Ÿ‰์  ํ‰๊ฐ€)

์ฐจํ›„ ๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ์„ ํ†ตํ•ด ์œ ์ €๋ณ„ ์ผ์ • ๋ฐ ์ ์ˆ˜ ํ™•์ธ(๊ฒ€ํ†  ํ•„์š”)

TODO

  • 1์ฐจ ๊ธฐํš์•ˆ ์ž‘์„ฑ -> Wiki ์ž‘์„ฑ
  • ์™€์ด์–ด ํ”„๋ ˆ์ž„ ์ƒ์„ฑ
    ์ดํ›„ ๊ณต์ˆ˜์‚ฐ์ • ํ•„์š” (6์›” ์ด๋‚ด 1์ฐจ ์ž‘์—… ๋ฐ ๋ฐฐํฌ์™„๋ฃŒ)

๊ณ ๋ ค์‚ฌํ•ญ

  • ๋””์ž์ธ
  • ๋‹ค๊ตญ์–ด ์ฒ˜๋ฆฌ

๋‹ค๊ตญ์–ด ์ฒ˜๋ฆฌ String Resource

  • ๊ตฌ๊ธ€ ์‹œํŠธ๋ฅผ ์ด์šฉํ•œ ๋‹ค๊ตญ์–ด ์ฒ˜๋ฆฌ ๊ด€๋ฆฌ
  • ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ด์šฉํ•ด ๊ตฌ๊ธ€ ์‹œํŠธ ์•ฑ ์Šคํฌ๋ฆฝํŠธ ์‹คํ–‰ ํ›„ ๊ตฌ๊ธ€ ๋“œ๋ผ์ด๋ธŒ์— ์ƒ์„ฑ๋œ .String ํŒŒ์ผ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ
  • ํ•ด๋‹น ๋‚ด์šฉ์„ ๊ธฐ๋ฐ˜์œผ๋กœ Extension swiftํŒŒ์ผ ์ƒ์„ฑ

์™€์ด์–ด ํ”„๋ ˆ์ž„

Perfect Day

์™œ ๋‚ด๊ฐ€ ์›ํ•˜๋Š” ์™„๋ฒฝํ•œ ์ผ์ •๊ด€๋ฆฌ ์•ฑ์€ ์—†์„๊นŒ? Jira์ฒ˜๋Ÿผ ์นธ๋ฐ˜์œผ๋กœ Task๋ฅผ ํ•œ๋ˆˆ์— ๋ณด๊ณ  ์ด์Šˆ๋ฅผ ํ•˜๋‚˜์”ฉ ์ฒ˜๋ฆฌ ํ•ด๋‚˜๊ฐ€๋Š” ๋ฉ‹์žˆ๋Š” ์ผ์ •๊ด€๋ฆฌ์•ฑ์ด ํ•„์š”ํ•ด!

Brainstorming

  • ์ฃผ์š” ๊ธฐ๋Šฅ
    • TODO, IN PROGRESS, DONE, SUSPEND ๊ตฌ๋ถ„์„ ํ†ตํ•œ ์ด์Šˆ ์ถ”์  ๋ฐ ๊ด€๋ฆฌ [ v ]
    • Custom tag๋ฅผ ์ด์šฉํ•œ ์ด์Šˆ ๊ตฌ๋ถ„ ๊ธฐ๋Šฅ [ v ]
    • ์ผ๋‹จ์œ„ ๋ณด๋“œ ์ฃผ๋‹จ์œ„ ๋ณด๋“œ ๋ฐ˜์˜๋˜๋„๋ก ์„ค์ • (์ฃผ๋‹จ์œ„ <- ์ผ๋‹จ์œ„) [ ์ถ”ํ›„ ]
    • ๋ฐฑ๋กœ๊ทธ๋ฅผ ์ด์šฉํ•ด ์ด์Šˆ ์ƒ์„ฑ [ v ]
    • ์ด์Šˆ๋ณ„ ์„ค์ •ํ•œ ์œ„์น˜, ์‹œ๊ฐ„ ๊ธฐ๋ฐ˜ ์•Œ๋ฆผ [ v ]
    • ์ฃผ๋‹จ์œ„ ํšŒ๊ณ  ์ž‘์„ฑ ๋ฐ ์•„์นด์ด๋น™ + ์ฃผ๋‹จ์œ„ ์ ์ˆ˜ [ ์ถ”ํ›„ ]
  • ๋ถ€๊ฐ€๊ธฐ๋Šฅ
    • ๋‹ค๊ตญ์–ด ์ง€์› (ํ•œ๊ตญ์–ด, ์˜์–ด)
    • ๋‹คํฌ๋ชจ๋“œ ์ง€์›(=๋‹คํฌ ๋ชจ๋“œ defalut)
    • ์œ„์ ฏ - (๋ณด๋“œ ํ˜•ํƒœ ์ผ์ •)

์ ์šฉํ•˜๊ณ  ์‹ถ์€ ๊ธฐ์ˆ 

  • SwiftUI + CleanArchitecture โ†’ TCA
  • Tuist ๊ณต๋ถ€ ๋ฐ ์ ์šฉ
  • Github Action, Fastlane

์™€์ด์–ด ํ”„๋ ˆ์ž„ #2

PerfectDay แ„‹แ…ชแ„‹แ…ตแ„‹แ…ฅ แ„‘แ…ณแ„…แ…ฆแ„‹แ…ตแ†ท-1

PerfectDay แ„‹แ…ชแ„‹แ…ตแ„‹แ…ฅ แ„‘แ…ณแ„…แ…ฆแ„‹แ…ตแ†ท-2

๋ฐฑ๋กœ๊ทธ

  • ์ด์Šˆ ์ƒ์„ฑ ํ…œํ”Œ๋ฆฟ ์ •์˜
  • ์ด์Šˆ Entity, DTO ์ •์˜
  • ์ด์Šˆ ์ƒ์„ฑ ๋ทฐ
  • ์ƒ์„ฑ๋œ ๋ฐฑ๋กœ๊ทธ ๋ฆฌ์ŠคํŠธ ๋ทฐ

์ด์Šˆ ์ƒ์„ฑ ์‹œ ํ˜„์žฌ ์œ„์น˜, ๋‚ ์งœ๋Š” ์ถ”ํ›„์— ๋‹ค๋ฅธ ์—ํ”ฝ์œผ๋กœ ์ƒ์„ฑํ•ด์„œ ์ฒ˜๋ฆฌํ•˜๊ธฐ

Issue CRUD

#19 , #18 ์™„๋ฃŒ ์ดํ›„

  • Issue CRUD ๊ตฌํ˜„

์•ฑ ๋””์ž์ธ

  • ์•ฑ ์ปฌ๋Ÿฌ ์„ค์ •ํ•˜๊ธฐ - ๋‹คํฌ๋ชจ๋“œ
  • ์•ฑ ์ปฌ๋Ÿฌ ์„ค์ •ํ•˜๊ธฐ - ๋ผ์ดํŠธ๋ชจ๋“œ
  • ์•ฑ ์•„์ด์ฝ˜ ์„ค์ •ํ•˜๊ธฐ
  • ์•ฑ ์ด๋ฏธ์ง€ ์—์…‹ ์„ค์ •ํ•˜๊ธฐ

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.