๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
728x90
๋ฐ˜์‘ํ˜•
[Swift] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์œ„ํด๋ฆฌ ์ฑŒ๋ฆฐ์ง€ 6์ฃผ์ฐจ ๋ณต์„œ ์ •๋ ฌํ•˜๊ธฐ Problem ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - 6์ฃผ์ฐจ ๋ณต์„œ ์„ ์ˆ˜๋“ค์˜ ๋ชธ๋ฌด๊ฒŒ weights์™€, ๋ณต์„œ ์„ ์ˆ˜๋“ค์˜ ์ „์ ์„ ๋‚˜ํƒ€๋‚ด๋Š” head2head๊ฐ€ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค. ๋ณต์„œ ์„ ์ˆ˜๋“ค์˜ ๋ฒˆํ˜ธ๋ฅผ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ˆœ์„œ๋กœ ์ •๋ ฌํ•œ ํ›„ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด์ฃผ์„ธ์š” programmers.co.kr Solution 1. ๋ณต์„œ๊ฐ€ ์ด๊ธฐ๊ณ  ์ง„ ์ „์ ๊ณผ ๋ชธ๋ฌด๊ฒŒ๊ฐ€ ๋” ๋งŽ์ด ๋‚˜๊ฐ€๋Š” ์„ ์ˆ˜๋ฅผ ์ด๊ธด ํšŸ์ˆ˜๋ฅผ ์„ธ์ค€๋‹ค. N์€ ์‹ธ์šฐ์ง€ ์•Š์•˜์„ ๊ฒฝ์šฐ์ด๋ฏ€๋กœ ์ƒ๋žตํ•ด์ฃผ๊ณ  W์ผ ๊ฒฝ์šฐ๋‚˜ L์ผ ๊ฒฝ์šฐ๋งŒ ์„ธ์ค๋‹ˆ๋‹ค. ๊ทธ ์ค‘ ๋งŒ์•ฝ ๋ชธ๋ฌด๊ฒŒ๊ฐ€ ๋” ์ ๋‹ค๋ฉด count๋ฅผ +1 ํ•ด์ค๋‹ˆ๋‹ค. func setFightsHistory(moreWeightsWinCount:inout [Int],_ head2head:[String],weights:[Int]) -> [[String.. 2021. 9. 6.
[Swift] 2019 KAKAO BLIND RECRUITMENT ๋งค์นญ ์ ์ˆ˜ Problem ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ๋งค์นญ ์ ์ˆ˜ ๋งค์นญ ์ ์ˆ˜ ํ”„๋ Œ์ฆˆ ๋Œ€ํ•™๊ต ์กฐ๊ต์˜€๋˜ ์ œ์ด์ง€๋Š” ํ—ˆ๋“œ๋ ›์ผ๋งŒ ์‹œํ‚ค๋Š” ๋„ค์˜ค ํ•™๊ณผ์žฅ๋‹˜์˜ ๋งˆ์ˆ˜์—์„œ ๋ฒ—์–ด๋‚˜, ์นด์นด์˜ค์— ์ž…์‚ฌํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค. ํ‰์†Œ์— ๊ด€์‹ฌ์žˆ์–ดํ•˜๋˜ ๊ฒ€์ƒ‰์— ๋งˆ์นจ ๊ฒฐ์›์ด ๋ฐœ์ƒํ•˜์—ฌ, ๊ฒ€์ƒ‰๊ฐœ๋ฐœํŒ€ programmers.co.kr Solution 1. ํŽ˜์ด์ง€์— ํ•„์š”ํ•œ ์ •๋ณด๋ฅผ ๋‹ด๋Š” ๊ฐ์ฒด๋ฅผ ๋งŒ๋“ค์–ด์ค€๋‹ค. ๋ช‡๋ฒˆ์งธ ์ธ๋ฑ์Šค์ธ์ง€,์ž์‹ ์˜ url,์ด ์ ์ˆ˜,์™ธ๋ถ€ ๋งํฌ๋ฅผ ํ”„๋กœํผํ‹ฐ๋กœ ์„ค์ •ํ•ด์ค๋‹ˆ๋‹ค. struct Page { var index:Int, url:String,score:Double,externalLinks:[String] } 2. " Int { for pageInfo in pageInfos { for link in pageInfo.externalLinks { if let index = p.. 2021. 9. 4.
[Swift] 2020 KAKAO INTERNSHIP ๊ฒฝ์ฃผ๋กœ ๊ฑด์„ค Problem ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ๊ฒฝ์ฃผ๋กœ ๊ฑด์„ค [[0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0],[0,0,0,0,0,1,0,0],[0,0,0,0,1,0,0,0],[0,0,0,1,0,0,0,1],[0,0,1,0,0,0,1,0],[0,1,0,0,0,1,0,0],[1,0,0,0,0,0,0,0]] 3800 [[0,0,1,0],[0,0,0,0],[0,1,0,1],[1,0,0,0]] 2100 [[0,0,0,0,0,0],[0,1,1,1,1,0],[0,0,1,0,0,0],[1,0,0,1,0,1],[ programmers.co.kr Solution ํ•ด๋‹น ๋ฌธ์ œ๋Š” DFS๋กœ ํ’€์–ด์•ผ ํ•˜๋Š” ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. 1. ์ž๋™์ฐจ์™€ ์ƒํ•˜์ขŒ์šฐ ๋ฐฉํ–ฅ ๋ชจ๋ธ์„ ๋งŒ๋“ค์–ด์ค€๋‹ค. (ํ•„์ˆ˜๋Š” ์•„๋‹˜) ์ž๋™์ฐจ์— ํ•„์š”ํ•œ x,y,price,prev์™€ ์ƒ.. 2021. 8. 31.
[iOS/Framework] Quick/Nimble์ด ๋ญ˜๊นŒ? (feat. ์‚ฌ์šฉ๋ฒ•) ์•ˆ๋…•ํ•˜์„ธ์š” Foma ๐Ÿ’ป ์ž…๋‹ˆ๋‹ค! ํ…Œ์ŠคํŠธ ์ฃผ๋„ ๊ฐœ๋ฐœ์„ ์ฐพ์•„๋ณด๋‹ค๊ฐ€ ์šฐ์—ฐํžˆ ๋งŽ์€ ๊ฐœ๋ฐœ์ž๋ถ„๋“ค์ด Quick๊ณผ Nimble์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์˜ค๋Š˜์€ Quick๊ณผ Nimble์ด ์–ด๋–ค ๊ฒƒ์ด๊ณ  ์–ด๋–ป๊ฒŒ ์‚ฌ์šฉํ•˜๋Š”์ง€ ์•Œ์•„๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๋ฐ”๋กœ ์‹œ์ž‘ํ• ๊ฒŒ์š”~ Quick ๋จผ์ € Quick์€ ์•„๋ž˜์™€ ๊ฐ™์ด ์ž์‹ ๋“ค์„ ์†Œ๊ฐœํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. RSpec, Specta,Ginkgo์—์„œ ์˜๊ฐ์„ ๋ฐ›์€ Swift ๋ฐ Objective-C๋ฅผ ์œ„ํ•œ ํ–‰๋™ ์ค‘์‹ฌ ๊ฐœ๋ฐœ ํ”„๋ ˆ์ž„์›Œํฌ์ž…๋‹ˆ๋‹ค. ์ฆ‰ iOS ์ „์šฉ BDD ํ”„๋ ˆ์ž„์›Œํฌ๋ผ๋Š” ๊ฒƒ์ด์ฃ . ์ •๋ง ๋†€๋ž๊ฒŒ๋„ ํ•œ๊ตญ์–ด ๋ฒ„์ „์œผ๋กœ ๋ฌธ์„œ๊ฐ€ ์ œ๊ณต๋˜์–ด ์žˆ์–ด ๊ตฌ์ฒด์ ์œผ๋กœ ๊ถ๊ธˆํ•˜์‹  ๋ถ„๋“ค์€ ์—ฌ๊ธฐ์—์„œ ์ฝ์–ด๋ณด์‹œ๊ธธ ๋ฐ”๋ž๋‹ˆ๋‹ค. GitHub - Quick/Quick: The Swift (and Objective-C) te.. 2021. 8. 31.
[CS] BDD(Behavior-Driven-Development)๋ž€? ์•ˆ๋…•ํ•˜์„ธ์š” Foma ๐Ÿ’ป ์ž…๋‹ˆ๋‹ค! ์š”์ฆ˜ ์ง„ํ–‰ํ•˜๊ณ  ์žˆ๋Š” ํ”„๋กœ์ ํŠธ๋ฅผ ํ…Œ์ŠคํŠธ ์ฃผ๋„ ๊ฐœ๋ฐœํ•˜๋ ค๊ณ  ํ•˜๋‹ค๊ฐ€ ์ข‹์€ ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์ฐพ๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. Quick/Nimble ์ด๋ผ๋Š” ํ”„๋ ˆ์ž„์›Œํฌ์˜€๋Š”๋ฐ์š”. ์—ฌ๊ธฐ์„œ Quick์€ BDD ํ”„๋ ˆ์ž„์›Œํฌ๋ผ๊ณ  ์†Œ๊ฐœํ•˜๋”๋ผ๊ตฌ์š”. ๊ทธ๋ž˜์„œ BDD๊ฐ€ ๋ญ๊ณ  TDD์™€๋Š” ๋ฌด์—‡์ด ๋‹ค๋ฅธ์ง€ ์ •๋ฆฌํ•ด๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๋ฐ”๋กœ ์‹œ์ž‘ํ• ๊ฒŒ์š”~ BDD๋ž€? TDD์—์„œ ํŒŒ์ƒ๋œ ๊ฐœ๋ฐœ ๋ฐฉ๋ฒ•๋ก ์œผ๋กœ ๊ฐœ๋ฐœ์ž์™€ ๋น„๊ฐœ๋ฐœ์ž๊ฐ„์˜ ํ˜‘์—… ๊ณผ์ •์„ ๋…น์—ฌ๋‚ธ ๋ฐฉ๋ฒ•์ด๋‹ค. ์‚ฌ์šฉ์ž์˜ ํ–‰์œ„๋ฅผ ์ž‘์„ฑํ•˜๊ณ  ๊ฒฐ๊ณผ ๊ฒ€์ฆ์„ ์ง„ํ–‰ํ•˜๋ฉฐ BDD๋กœ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•จ์— ๋”ฐ๋ผ ์„ค๊ณ„ ์—ญ์‹œ ํ–‰์œ„์˜ ์ค‘์‹ฌ์ด ๋˜๋Š” ๋„๋ฉ”์ธ ๊ธฐ๋ฐ˜ ์„ค๊ณ„๊ฐ€ ๋œ๋‹ค. ์ฆ‰, ์‚ฌ์šฉ์ž์˜ ํ–‰์œ„๋ฅผ ๋ฏธ๋ฆฌ ์˜ˆ์ƒํ•˜๊ณ  ๊ฒฐ๊ณผ๋ฅผ ํ…Œ์ŠคํŠธ ํ•ด๋ณด๋Š” ๊ฐœ๋ฐœ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. BDD์˜ ๊ฐœ๋ฐœ ์ ˆ์ฐจ BDD๋Š” ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ด ์—ฐ๊ตฌํ•œ ๋์— ์ •ํ˜•ํ™”๋œ ํ˜•์‹์ด ๋งŒ๋“ค์–ด.. 2021. 8. 31.
[Swift] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์œ„ํด๋ฆฌ ์ฑŒ๋ฆฐ์ง€ 5์ฃผ์ฐจ ๋ชจ์Œ ์‚ฌ์ „ Problem ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - 5์ฃผ์ฐจ ์‚ฌ์ „์— ์•ŒํŒŒ๋ฒณ ๋ชจ์Œ 'A', 'E', 'I', 'O', 'U'๋งŒ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š”, ๊ธธ์ด 5 ์ดํ•˜์˜ ๋ชจ๋“  ๋‹จ์–ด๊ฐ€ ์ˆ˜๋ก๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ์ „์—์„œ ์ฒซ ๋ฒˆ์งธ ๋‹จ์–ด๋Š” "A"์ด๊ณ , ๊ทธ๋‹ค์Œ์€ "AA"์ด๋ฉฐ, ๋งˆ์ง€๋ง‰ ๋‹จ์–ด๋Š” "UUUUU"์ž…๋‹ˆ programmers.co.kr Solution 1. ๋ชจ์Œ ์ˆœ์„œ์™€ ์ธ๋ฑ์Šค๋ณ„ ์นด์šดํŠธ ์–ด๋ ˆ์ด๋ฅผ ๋งŒ๋“ ๋‹ค. ์ธ๋ฑ์Šค๋ณ„ ์นด์šดํŠธ๋Š” ๊ฐ€์žฅ ๋ ์ฆ‰,4๋ฒˆ์งธ ์ธ๋ฑ์Šค์ผ ๊ฒฝ์šฐ ๋‹ค์Œ ๋ชจ์Œ์œผ๋กœ ์ด๋™ํ•˜๋Š”๋ฐ 1๊ฐœ์˜ ๋‹จ์–ด๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ex) AAAAA -> AAAAE -> AAAAI .... 1๊ฐœ์”ฉ 3๋ฒˆ์งธ ์ธ๋ฑ์Šค์˜ ๊ฒฝ์šฐ ๋‹ค์Œ ๋ชจ์Œ์œผ๋กœ ์ด๋™ํ•˜๋Š”๋ฐ 6๊ฐœ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ex) AAAA -> AAAE -> AAAI ... 6๊ฐœ์”ฉ 2๋ฒˆ์งธ ์ธ๋ฑ์Šค์˜ ๊ฒฝ์šฐ ๋‹ค์Œ ๋ชจ์Œ์œผ๋กœ ์ด๋™ํ•˜๋Š”.. 2021. 8. 30.
[Swift] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์œ„ํด๋ฆฌ ์ฑŒ๋ฆฐ์ง€ 4์ฃผ์ฐจ ์ง์—…๊ตฐ ์ถ”์ฒœํ•˜๊ธฐ Problem ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - 4์ฃผ์ฐจ ๊ฐœ๋ฐœ์ž๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” ์–ธ์–ด์™€ ์–ธ์–ด ์„ ํ˜ธ๋„๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ๊ทธ์— ๋งž๋Š” ์ง์—…๊ตฐ์„ ์ถ”์ฒœํ•ด์ฃผ๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๊ฐœ๋ฐœํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์•„๋ž˜ ํ‘œ๋Š” 5๊ฐœ ์ง์—…๊ตฐ ๋ณ„๋กœ ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š” 5๊ฐœ ์–ธ์–ด์— ์ง์—…๊ตฐ ์–ธ์–ด ์ ์ˆ˜๋ฅผ ๋ถ€ programmers.co.kr Solution ํ•ด๋‹น ๋ฌธ์ œ๋Š” Hashtable์„ ์ด์šฉํ•ด์„œ ํ’€์–ด์•ผ ํ•˜๋Š” ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. 1. ์ด์ค‘ ๋”•์…”๋„ˆ๋ฆฌ๋ฅผ ์ด์šฉํ•ด์„œ ์ง์—…๊ตฐ์— ๋”ฐ๋ฅธ ์–ธ์–ด๋ณ„ ์ ์ˆ˜๋ฅผ ์ €์žฅํ•œ๋‹ค. table์„ ๊ณต๋ฐฑ์„ ๊ธฐ์ค€์œผ๋กœ ๋‚˜๋ˆ ์ค๋‹ˆ๋‹ค. 0๋ฒˆ์งธ๋Š” ์ง์—…๊ตฐ์˜ ์ด๋ฆ„์ด๋ฏ€๋กœ ํ‚ค๊ฐ’์œผ๋กœ ์„ค์ •ํ•ด์ค๋‹ˆ๋‹ค. ์–ธ์–ด๋ณ„๋กœ ์ ์ˆ˜๋ฅผ ์ €์žฅํ•ด์ฃผ๋Š”๋ฐ 1๋ฒˆ์งธ๋Š” 5,2๋ฒˆ์งธ๋Š” 4,3๋ฒˆ์งธ๋Š” 3... ์ด๋ฏ€๋กœ 6 - i๋กœ ์ ์ˆ˜๋ฅผ ์ €์žฅํ•ด์ค๋‹ˆ๋‹ค. [์ง์—…๊ตฐ:[์–ธ์–ด:์ ์ˆ˜]] [String:[String:Int]] { var jobs:[Stri.. 2021. 8. 28.
[Algorithm] ๋ฐฑํŠธ๋ž˜ํ‚น(Backtracking)์ด๋ž€? (feat. ์˜ˆ์ œํฌํ•จ) ์•ˆ๋…•ํ•˜์„ธ์š” Foma ๐Ÿ’ป ์ž…๋‹ˆ๋‹ค! ์˜ค๋Š˜์€ ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค N-Queen ๋ฌธ์ œ๋ฅผ ํ’€๋ฉด์„œ ํ•ด๋‹น ๋ฌธ์ œ๊ฐ€ ๋ฐฑํŠธ๋ž˜ํ‚น ๋ฌธ์ œ๋ผ๋Š” ๊ฒƒ์„ ์•Œ๊ฒŒ ๋˜์—ˆ๋Š”๋ฐ์š”. ๊ทธ๋ž˜์„œ ๋ฐฑํŠธ๋ž˜ํ‚น์ด ๋ฌด์—‡์ด๊ณ  ์–ด๋–ป๊ฒŒ ๊ตฌํ˜„ํ•ด์„œ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š”์ง€์— ๋Œ€ํ•ด ์ •๋ฆฌํ•ด๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๋ฐ”๋กœ ์‹œ์ž‘ํ• ๊ฒŒ์š”~ ๋ฐฑํŠธ๋ž˜ํ‚น์ด๋ž€? ๋ชจ๋“  ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ์ „๋ถ€ ๊ณ ๋ คํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ƒํƒœ๊ณต๊ฐ„์„ ํŠธ๋ฆฌ๋กœ ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ์„ ๋•Œ ์ ํ•ฉํ•œ ๋ฐฉ์‹์ด๋‹ค. ์ผ์ข…์˜ ํŠธ๋ฆฌ ํƒ์ƒ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋ผ๊ณ  ๋ด๋„ ๋œ๋‹ค. ๋ฐฉ์‹์— ๋”ฐ๋ผ์„œ ๊นŠ์ด์šฐ์„ ํƒ์ƒ‰(Depth First Search, DFS)๊ณผ ๋„ˆ๋น„์šฐ์„ ํƒ์ƒ‰(Breadth First Search, BFS), ์ตœ์„  ์šฐ์„  ํƒ์ƒ‰(Best First Search/HeuristicSearch)์ด ์žˆ๋‹ค. ๋ชจ๋“  ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ๊ณ ๋ คํ•ด์•ผ ํ•˜๋Š” ๋ฌธ์ œ๋ผ๋ฉด, DFS๊ฐ€ ๋‚ซ๋‹ค. BFS๋กœ๋„ ๊ตฌํ˜„์ด ๋ฌผ๋ก  ๊ฐ€๋Šฅํ•˜์ง€๋งŒ,.. 2021. 8. 28.
[Swift] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค N-Queen Problem ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - N-Queen ๊ฐ€๋กœ, ์„ธ๋กœ ๊ธธ์ด๊ฐ€ n์ธ ์ •์‚ฌ๊ฐํ˜•์œผ๋กœ๋œ ์ฒด์ŠคํŒ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ฒด์ŠคํŒ ์œ„์˜ n๊ฐœ์˜ ํ€ธ์ด ์„œ๋กœ๋ฅผ ๊ณต๊ฒฉํ•  ์ˆ˜ ์—†๋„๋ก ๋ฐฐ์น˜ํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด์„œ n์ด 4์ธ๊ฒฝ์šฐ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ€ธ์„ ๋ฐฐ์น˜ํ•˜๋ฉด n๊ฐœ์˜ ํ€ธ์€ programmers.co.kr Solution ํ•ด๋‹น ๋ฌธ์ œ๋Š” ๋ฐฑํŠธ๋ž˜ํ‚น(DFS)์œผ๋กœ ํ’€์–ด์•ผ ํ•˜๋Š” ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. 1. ๊ฐ ํ–‰๋งˆ๋‹ค ํ€ธ์„ ๋†“์„ ์ˆ˜ ์žˆ๋Š” ์œ„์น˜๋ฅผ ์ฒดํฌํ•œ๋‹ค. ๊ฐ ํ–‰๋งˆ๋‹ค ํ€ธ์€ ํ•˜๋‚˜์”ฉ๋ฐ–์— ๋ชป๋†“์œผ๋ฏ€๋กœ ํ˜„์žฌ ํ–‰์˜ ์—ด๋“ค์— ๊ณต๊ฒฉํ•  ์ˆ˜ ์žˆ๋Š” ํ€ธ์ด ์žˆ๋Š”์ง€ ์ฒดํฌํ•ฉ๋‹ˆ๋‹ค. ๋งŒ์•ฝ ๊ณต๊ฒฉํ•  ์ˆ˜ ์žˆ๋Š” ํ€ธ์ด ์—†๋‹ค๋ฉด ํ˜„์žฌ ์œ„์น˜๋ฅผ history(ํ€ธ์˜ ์œ„์น˜๋ฅผ ์ €์žฅํ•˜๋Š” 2์ฐจ์› ๋ฐฐ์—ด)์— ์ €์žฅํ•ด๋†“๊ณ  ๋‹ค์Œ ํ–‰์œผ๋กœ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ์ง„ํ–‰ํ•˜๋ฉด์„œ ๊ฐ€์žฅ ๋งˆ์ง€๋ง‰ ํ–‰๊นŒ์ง€ ๋„๋‹ฌํ•œ ๊ฒฝ์šฐ๋Š” ๋ฐฐ์น˜ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ์ด๋ฏ€๋กœ.. 2021. 8. 28.
[CS] ์˜์กด์„ฑ ์ฃผ์ž…(Dependency Injection)์ด๋ž€? (feat. ์จ์•ผํ•˜๋Š” ์ด์œ ) ์•ˆ๋…•ํ•˜์„ธ์š” Foma ๐Ÿ’ป ์ž…๋‹ˆ๋‹ค! ์˜ค๋Š˜์€ ์˜์กด์„ฑ ์ฃผ์ž…์ด ๋ฌด์—‡์ด๊ณ  ์จ์•ผํ•˜๋Š” ์ด์œ ์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. SOLID์›์น™์˜ ํ•˜๋‚˜์ด๊ธฐ๋„ ํ•˜๊ณ  ์ตœ๊ทผ RIBs ์•„ํ‚คํ…์ฒ˜๋ฅผ ๊ณต๋ถ€ํ•˜๊ณ  ์žˆ๋Š”๋ฐ UIViewController๋„ ์ง์ ‘ ์ฑ„ํƒํ•˜์ง€ ์•Š๊ณ  ViewControllable๋กœ ํ”„๋กœํ† ์ฝœ์„ ๋งŒ๋“ค์–ด์„œ ์ฃผ์ž…ํ•˜๋”๋ผ๊ตฌ์š”.. ๋ญ”๊ฐ€ ์ถ”์ƒ์ ์œผ๋กœ๋Š” ์•Œ๊ฒ ๋Š”๋ฐ ๊ตฌ์ฒด์ ์œผ๋กœ ๋ช…ํ™•ํ•˜๊ฒŒ ์ด๊ฒŒ ๋ญ๊ณ  ์ด๊ฒŒ ์™œ ํ•„์š”ํ•œ๊ฐ€์— ๋Œ€ํ•ด์„œ ์•Œ์ง€ ๋ชปํ•ด์„œ ๊ธ€์„ ์ •๋ฆฌํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค! ๋ฐ”๋กœ ์‹œ์ž‘ํ• ๊ฒŒ์š”~ ์˜์กด์„ฑ์„ ๊ฐ–๋Š”๋‹ค๋Š” ๊ฒƒ์€ ๋ฌด์—‡์ผ๊นŒ? ๐Ÿค” ๋งŒ์•ฝ ๋ฐฐํ„ฐ๋ฆฌ๊ฐ€ ์ผ์ฒดํ˜•์ธ ์ž๋™์ฐจ ์žฅ๋‚œ๊ฐ ๐Ÿš— ์ด ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ• ๊ฒŒ์š”. ์ด ์ž๋™์ฐจ ์žฅ๋‚œ๊ฐ์€ ๋ฐฐํ„ฐ๋ฆฌ๊ฐ€ ๋‹ค ๋‹ณ๊ฒŒ ๋˜๋ฉด ๋” ์ด์ƒ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ ์ž๋™์ฐจ ์žฅ๋‚œ๊ฐ์€ ๋ฐฐํ„ฐ๋ฆฌ์— ์˜์กดํ•˜๊ณ  ์žˆ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ฝ”๋“œ๋กœ ์„ค๋ช…์„ ํ•˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.. 2021. 8. 26.
[RIBs] AddMemo ๊ตฌํ˜„ํ•˜๊ธฐ (๋ฉ”๋ชจ ์ถ”๊ฐ€ํ•˜๊ธฐ) ์•ˆ๋…•ํ•˜์„ธ์š” Foma ๐Ÿ’ป ์ž…๋‹ˆ๋‹ค! ์ €๋ฒˆ ์‹œ๊ฐ„์—” ๋ฉ”๋ชจ๋ฅผ ์ˆ˜์ •ํ•˜๊ณ  ์‚ญ์ œํ•˜๋Š” ๊ฒƒ๊นŒ์ง€ ๊ตฌํ˜„ํ–ˆ๋Š”๋ฐ์š”. ์˜ค๋Š˜์€ AddMemoViewController๋ฅผ ๊ตฌํ˜„ํ•˜๊ณ  ๋ฉ”๋ชจ๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์„ ๊ตฌํ˜„ํ•ด๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ๋ฐ”๋กœ ์‹œ์ž‘ํ• ๊ฒŒ์š”~ AddMemoRIB ์Šคํ† ๋ฆฌ๋ณด๋“œ์™€ ๋ทฐ์ปจํŠธ๋กค๋Ÿฌ๋ฅผ ํฌํ•จํ•œ AddMemoRIB์„ ๋งŒ๋“ค์–ด์ฃผ์„ธ์š”. AddMemoViewController.storyboard AddMemoViewController๋Š” ์ˆซ์ž๋ฅผ ์ž…๋ ฅํ•  ํ…์ŠคํŠธํ•„๋“œ์™€ ์ถ”๊ฐ€๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ์ค๋‹ˆ๋‹ค. ํ…์ŠคํŠธํ•„๋“œ์—” ์ˆซ์ž๋งŒ ๋“ค์–ด๊ฐ€์•ผํ•˜๋ฏ€๋กœ keyboard type์„ numberPad๋กœ ๋งŒ๋“ค์–ด์ค๋‹ˆ๋‹ค. StoryboardInstantiate ์ƒˆ๋กœ์šด ์Šคํ† ๋ฆฌ๋ณด๋“œ ๋ทฐ์ธ AddMemoViewController๋ฅผ enum์— ์ถ”๊ฐ€ํ•ด์ค๋‹ˆ๋‹ค. enum Storyboard: Stri.. 2021. 8. 26.
[RIBs] Memo ์‚ญ์ œ,์ˆ˜์ • ๊ตฌํ˜„ํ•ด๋ณด๊ธฐ ์•ˆ๋…•ํ•˜์„ธ์š” Foma๐Ÿ’ป ์ž…๋‹ˆ๋‹ค! ์ €๋ฒˆ ์‹œ๊ฐ„์— Memo๊นŒ์ง€ ์ด๋™ํ•ด์„œ ํ™”๋ฉด์„ ๋ณด์—ฌ์ฃผ๋Š” ๊ฒƒ๊นŒ์ง€ ๊ตฌํ˜„ํ–ˆ์—ˆ๋Š”๋ฐ์š”. ์˜ค๋Š˜์€ Memoํ™”๋ฉด์—์„œ ์ผ์–ด๋‚˜๋Š” ์‚ญ์ œ,์ˆ˜์ •์„ ๊ตฌํ˜„ํ•ด๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ๋ฐ”๋กœ ์‹œ์ž‘ํ• ๊ฒŒ์š”~ MemoViewController.storyboard ์Šคํ† ๋ฆฌ๋ณด๋“œ ํ™”๋ฉด ๊ตฌ์„ฑ์€ ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋ทฐ์ปจํŠธ๋กค๋Ÿฌ์— ํ…Œ์ด๋ธ”๋ทฐ๋ฅผ ๋„ฃ์–ด์ฃผ๊ณ  ํ…Œ์ด๋ธ”๋ทฐ ์…€์€ MemoTableViewCell์„ ๋”ฐ๋กœ ๋งŒ๋“ค์–ด์ฃผ์—ˆ์Šต๋‹ˆ๋‹ค. ํ…Œ์ด๋ธ”๋ทฐ์…€์€ ์ •๋ณด๋ฅผ ํ‘œ์‹œํ•ด์ค„ Label,์‚ญ์ œ๋ฒ„ํŠผ.๋”ํ•˜๊ธฐ๋ฒ„ํŠผ์œผ๋กœ ๊ตฌ์„ฑ๋˜์–ด์žˆ์Šต๋‹ˆ๋‹ค. Memo ๋ฉ”๋ชจ๋Š” ๊ฐ„๋‹จํ•˜๊ฒŒ ์ˆซ์ž๋งŒ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๊ฐ์ฒด๋กœ ๋งŒ๋“ค์–ด์ค๋‹ˆ๋‹ค. struct Memo { let number:Int } MemoData ์›๋ž˜ ์„œ๋ฒ„์™€ ํ†ต์‹ ์„ ํ•ด์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์™€์•ผํ•˜์ง€๋งŒ...๊ท€์ฐฎ์œผ๋‹ˆ๊น .. ์ „์—ญ์œผ๋กœ ์„ ์–ธํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฏธ๋ฆฌ ์„ธํŒ…ํ•ด.. 2021. 8. 26.
728x90
๋ฐ˜์‘ํ˜•