๊ณต๋ถ€ ์—ฐ์Šต์žฅ :-)

TIL_20180102 ~ 20180105

|

2018.01.02

TIL
  • JSON step4 merge
  • JSON step5 ์ง„ํ–‰
    • JSON ํ”„๋ฆฐํŠธ ํ˜•ํƒœ ํ™•์ธ - JSONLint
    • JSON ์ค‘์ฒฉ๋ฐฐ์—ด๊ณผ ์–ด๋ ˆ์ด ํ˜•ํƒœ๋ฅผ ์–ด๋””์„œ๋ถ€ํ„ฐ ๊ฐ€์ ธ์™€์•ผํ•˜๋Š”์ง€ ์„ค๊ณ„

2018.01.03 ~ 04

TIL
  • JSON step5 PR
    • ์ถœ๋ ฅํ• ๋•Œ ๋‚˜์˜ค๋Š” optional ์ฒ˜๋ฆฌ : enum์˜ ์—ฐ๊ด€๊ฐ’
    • ์—ฐ๊ด€๊ฐ’์ด ๋‚˜์˜ค๋Š”๊ฑธ CustomStringConvertibleํ•ด์„œ ์—ฐ๊ด€๊ฐ’์„ ๋ฆฌํ„ดํ•˜๊ฒŒ ๋งŒ๋“ค๋ฉด String(describing:) ํ•ด์„œ ์ŠคํŠธ๋ง์œผ๋กœ ๊ทธ ๊ฐ’์ด ๋„˜์–ด์˜ด!
  • JSON๋ฏธ์…˜ ํ•˜๋ฉด์„œ ์ƒˆ๋กœ ์•Œ์•˜๋˜ ๊ฐœ๋…๋“ค, ์‚ฌ์šฉ๋งŒ ํ•˜๊ณ ๋„˜์–ด๊ฐ”๋˜ ๋‚ด์šฉ๋“ค ์ •๋ฆฌ
  • ๋”•์…”๋„ˆ๋ฆฌ์˜ ๋ฐธ๋ฅ˜ ๊ฐ’์€ ํ•ญ์ƒ ์˜ต์…”๋„!
  • github wiki ์‚ฌ์šฉ - ๋ฏธ์…˜, ํ”ผ๋“œ๋ฐฑ ๋‚ด์šฉ ์ •๋ฆฌ์šฉ

2018.01.05

TIL
  • JSON step6 ํ”ผ๋“œ๋ฐฑ ์ฒ˜๋ฆฌ
    • try! ํ•˜๋Š” ๋ถ€๋ถ„ ์—๋Ÿฌ/ํ๋ฆ„์ œ์–ด ์ฒ˜๋ฆฌ : ํŒŒ์ผ ์•ˆ์˜ ๋‚ด์šฉ์ด ๋ฌธ๋ฒ•์— ๋งž์ง€ ์•Š๊ฑฐ๋‚˜ ๋นˆ ํŒŒ์ผ(๊ธ€์”จ๊ฐ€ ์—†๋Š” ํŒŒ์ผ)์ด๋ฉด GrammarChecker์—์„œ ๊ฑธ๋Ÿฌ์ ธ์„œ ํ๋ฆ„ ์ œ์–ด๊ฐ€ ๋  ์ค„ ์•Œ์•˜๋Š”๋ฐ, ํŒŒ์ผ์ด ์—†์„๋•Œ์˜ ํ๋ฆ„์ œ์–ด๊ฐ€ ๋ฌธ์ œ์˜€๋‹ค.
    • filepath๋ฅผ Bundle๊ณผ FileManager์—์„œ ์ฝ์–ด์˜ค๋Š”๊ฒƒ ์ฐจ์ด - ๋ฒˆ๋“ค๊ณผ ํŒŒ์ผ๋งค๋‹ˆ์ €์˜ ์ฐจ์ด
    • ๊ฐ์ฒด์˜ ์˜์กด์„ฑ (commandLine / askUserInput) : askUserInput() ํ•จ์ˆ˜์—์„œ CommandLine๊ฐ์ฒด ๋‚ด์˜ ๋ฉ”์„œ๋“œ๋ฅผ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ตฌ์กฐ๋Š” askUserInput์„ ์žฌ์‚ฌ์šฉ ํ•  ์ˆ˜ ์—†๊ณ , ํ…Œ์ŠคํŠธ๋„ ํ•  ์ˆ˜ ์—†๋Š” ๊ตฌ์กฐ์ž„.
      • CommandLine ๋‚ด์˜ ๋ฉ”์„œ๋“œ์˜ ๋ฆฌํ„ด๊ฐ’์„ askUserInput์˜ ์ธ์ž๋กœ ๋„˜๊ธฐ๋Š” ๊ตฌ์กฐ๊ฐ€ ๋” ์ข‹์€๊ตฌ์กฐ!
      • ํ•ญ์ƒ ์–ด๋–ค ๋ฉ”์„œ๋“œ๊ฐ€ ๋‹ค๋ฅธ ๊ฐ์ฒด์—๊ฒŒ ์˜์กดํ•˜๋Š” ํ๋ฆ„์„ ๊ฒฝ๊ณ„ํ•ด์•ผํ•œ๋‹ค!
  • JSON step6
  • ํ๋ฆ„์ œ์–ดํ•˜๋‹ค๊ฐ€ ์ˆ˜์ •ํ•˜๋‹ค๊ฐ€ debug๋ถ€๋ถ„์—์„œ ์ œ๋Œ€๋กœ ๋“ค์–ด๊ฐ€์ง€๊ฐ€ ์•Š์•˜๋‹ค. ์–ด๋””์„œ ์—๋Ÿฌ๊ฐ€๋‚œ๊ฑด์ง€๋„ ๋ชจ๋ฅธ์ฑ„ ํ”„๋ฆฐํŠธ๋ฅผ ํ•˜๋‚˜์”ฉ ์ฐ์œผ๋ฉด์„œ ๋”ฐ๋ผ๊ฐ€๋‹ค๊ฐ€โ€ฆใ… ใ… ๊ฒฐ๊ตญ grammar, input, resultData๊นŒ์ง€ ๊ฐ€์„œ ํ”„๋ฆฐํŠธ๋ฅผ ์ฐ์–ด๋ดค๋‹ค!!!!!!!!!!!!!!!!1 ๊ทธ๋Ÿฌ๋‹ค๊ฐ€ input.jsonํŒŒ์ผ์„ ์—ด์—ˆ๋Š”๋ฐ ์—”ํ„ฐ๊ฐ€ ๋“ค์–ด๊ฐ€์žˆ์—ˆ๋‹ค. ์ด์ƒํ–ˆ๋‹ค!!!!!!!!!! ๋„ˆ๋ฌด์ด์ƒํ•ด์„œ ํ…์ŠคํŠธํŽธ์ง‘๊ธฐ์—์„œ jsonํŒจํ„ด์„ ์จ๋ณด๊ณ  ์ €์žฅํ–ˆ๋Š”๋ฐ!!!!!!!!!!!! ๊ฒฐ๊ตญ ์•„ํ†ฐ์ด ๊ธ€์„ ์ €์žฅํ•˜๋ฉด์„œ ์—”ํ„ฐ๋ฅผ ๋„ฃ์–ด์„œ ์ €์žฅ์„ํ–ˆ๋˜๊ฒƒ์ด์•ผ!!!!!!!!!!!!!!!!๊ทธ๋ž˜์„œ ์•ˆ๋๋˜๊ฒƒ์ด๋‹ค!!!!!!!!!!! ใ… ใ… ใ… ใ… ใ… ใ… ใ… ใ… ใ… ใ… ใ… ใ… ใ… ใ… ใ… ใ… ใ… ใ… ใ… ใ… ใ… ใ… ใ… ใ… ใ… ใ… ใ… ใ… ๋ฉ˜๋ถ•
  • ๊ทธ๋ž˜์„œ ๊ฒฐ๊ตญ ๊ณ ๋ฏผํ•˜๋‹ค๊ฐ€ (ํ”ผ๋“œ๋ฐฑ ์ฒ˜๋ฆฌํ•˜๋‹ค๊ฐ€ ์•ˆ๋ผ์„œ ์ฝ”๋“œ๊ฐ€ ์ž˜๋ชป๋œ์ค„์•Œ๊ณ  step6 PR๋ณด๋‚ธ ์ฝ”๋“œ ๋ณต๋ถ™ํ•จ) ์ˆ˜์ •ํ•˜๋‹ค ๋งŒ ์ƒˆ์ฝ”๋“œ๋กœ ๋Œ์•„๊ฐˆ๊นŒ, ์•„๋‹ˆ๋ฉด ๋Œ์•„๊ฐ€๊ธฐ๋Š” ํ–ˆ์—ˆ๋˜ ํ”ผ๋“œ๋ฐฑ ๋‹น์‹œ์˜ ์ฝ”๋“œ๋กœ ๋Œ์•„๊ฐˆ๊นŒ ๊ณ ๋ฏผํ•˜๋‹ค๊ฐ€ ๊ทธ๋ƒฅ ์ˆ˜์ •ํ•˜๋‹ค ๋งŒ ์ฝ”๋“œ๋กœ ๋Œ์•„๊ฐ”๋‹ค. (git reset โ€“hard ์˜ต์…˜์”€โ€ฆ)
    • ์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€๋ฅผ ์ž˜์“ฐ์ž ์ปค๋ฐ‹๋ฉ”์‹œ์ง€๋ฅผ ๊ตฌ์ฒด์ ์œผ๋กœ์“ฐ์ž!!

์งˆ๋ฌธ๊ฑฐ๋ฆฌ

  • guard ์˜ต์…”๋„์ฒด์ด๋‹. case1๊ณผ case2์˜ ์ฐจ์ด! ```swift // case 1

let userInput = inputView.askUserInput(message: โ€œ๋ถ„์„ํ•  JSON ๋ฌธ์ž์—ด์„ ์ž…๋ ฅํ•˜์„ธ์š”.โ€) guard userInput != nil else { throw GrammarChecker.FormatError.invalidInput } commandLineInput = (input: userInput, output: โ€œโ€) // userInput์ด ๊ณ„์† String?์œผ๋กœ ์ธ์‹

// case 2 let userInput = inputView.askUserInput(message: โ€œ๋ถ„์„ํ•  JSON ๋ฌธ์ž์—ด์„ ์ž…๋ ฅํ•˜์„ธ์š”.โ€) guard let inputString = userInput else { throw GrammarChecker.FormatError.invalidInput } commandLineInput = (input: inputString, output: โ€œโ€) //inputString์ด String์œผ๋กœ ์ธ์‹!

```

Comments