๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

Project/๋ถํŠธ๋ฆฝ

1. iOS ์•ฑ ์ถœ์‹œ ํ”„๋กœ์ ํŠธ ๊ธฐํš์•ˆ : [ ๋…๋ฆฝ์„œ์  ํ๋ ˆ์ดํŒ… ์•ฑ ]

 

1) ์•ฑ ์†Œ๊ฐœ ๋ฐ ํŠน์ง•


์ด๋ฒˆ ์ถœ์‹œ ํ”„๋กœ์ ํŠธ์—์„œ ๋งŒ๋“ค๊ณ ์žํ•˜๋Š” ์•ฑ์€ MapKit์„ ํ™œ์šฉํ•ด ์ง€๋„ ๋‚ด์— ๋‹ค์–‘ํ•œ ๋…๋ฆฝ์„œ์ ์˜ ์œ„์น˜๋ฅผ ๋‚˜ํƒ€๋‚ด๊ณ  ํ˜„์žฌ ์œ„์น˜ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ๋…๋ฆฝ์„œ์ ๊ณผ ๊ทธ์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•ด์ฃผ๋Š” ์•ฑ์ž…๋‹ˆ๋‹ค. ์ด๋ฒˆ ์•ฑ์„ ๋งŒ๋“ค๊ฒŒ ๋œ ๊ณ„๊ธฐ๋Š”, ์ผ๋ฐ˜ ์„œ์ ์ด ์•„๋‹Œ ์ž‘์€ ๋…๋ฆฝ์„œ์ ์— ๋ฐฉ๋ฌธํ•ด ํ๋ ˆ์ดํŒ…๋œ ์ฑ…์„ ๊ตฌ๊ฒฝํ•˜๊ณ  ๊ทธ ์ค‘์—์„œ ์ฑ…๋ฐฉ์ง€๊ธฐ๊ฐ€ ์ถ”์ฒœํ•ด์ฃผ๋Š” ์ฑ…์„ ๊ตฌ์ž…ํ•˜๊ธฐ๋„ ํ•˜๋ฉฐ ์˜ค๋กœ์ง€ ์ฑ…๋ฐฉ์ง€๊ธฐ์˜ ์ทจํ–ฅ์ด ์ž”๋œฉ ๋‹ด๊ธด ๊ณต๊ฐ„ ์†์—์„œ ๋จธ๋ฌด๋Š” ์‹œ๊ฐ„์ด ์ €์—๊ฒŒ ์–ธ์ œ๋‚˜ ์‚ด์•„๊ฐˆ ํž˜์„ ์ฃผ์—ˆ๊ธฐ ๋•Œ๋ฌธ์—, ํ‰์†Œ ๋…๋ฆฝ์„œ์ ์„ ๋ฐฉ๋ฌธํ•ด๋ณด์ง€ ์•Š์•˜๋˜ ์‚ฌ๋žŒ๋“ค๋„ ์ด ์•ฑ์„ ํ†ตํ•ด ๋…๋ฆฝ์„œ์ ์— ๋ฐฉ๋ฌธํ•˜์—ฌ ๊ทธ ํ–‰๋ณต์„ ๋Š๋‚„ ์ˆ˜ ์žˆ์—ˆ์œผ๋ฉด ํ•˜๋Š” ๋ฐ”๋žŒ์œผ๋กœ ๋งŒ๋“ค๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. 

Version 1 ์—์„œ๋Š” ์šฐ์„  ์„œ์šธ์„ ์ค‘์‹ฌ์œผ๋กœ ๋…๋ฆฝ์„œ์ ์˜ ์ •๋ณด๋ฅผ ๋‹ด์„ ์˜ˆ์ •์ด๋ฉฐ, ์ถ”ํ›„ ์—…๋ฐ์ดํŠธ ๋•Œ ์„œ์šธ ์™ธ ์ง€์—ญ์˜ ๋…๋ฆฝ์„œ์  ์ •๋ณด๋ฅผ ์ฐจ์ฐจ ๋Š˜๋ ค์„œ ๋‹ด์•„๋ณด๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๋Š” ์ด ์•ฑ์„ ์‚ฌ์šฉํ•จ์œผ๋กœ์จ, ๋ณด๋‹ค ํŽธ๋ฆฌํ•˜๊ฒŒ ์œ„์น˜ ๊ธฐ๋ฐ˜์œผ๋กœ ๋…๋ฆฝ์„œ์ ์˜ ์ •๋ณด๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ๊ณ  ๋…๋ฆฝ์„œ์ ์— ๋Œ€ํ•œ ์ •๋ณด(์ฃผ์†Œ, ์—ฐ๋ฝ์ฒ˜, ์˜์—…์‹œ๊ฐ„, ์ธ์Šคํƒ€๊ทธ๋žจ ๋งํฌ ๋“ฑ) ๋ฅผ ์ง์ ‘ ์ฐพ์ง€ ์•Š๋”๋ผ๋„ ํ•œ ๋ฒˆ์— ๋‹ค์–‘ํ•œ ๋…๋ฆฝ์„œ์ ์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

2) ์•ฑ UI/UX

 

 

3) ์•ฑ ๊ธฐ๋Šฅ


- ๋ฉ”์ธ VC

  • ํ˜„์žฌ ์œ„์น˜ ๊ธฐ๋ฐ˜์œผ๋กœ ์ฃผ๋ณ€ ๋…๋ฆฝ์„œ์  annotation ๋‚˜ํƒ€๋ƒ„
  • ํŠน์ • annotation ํด๋ฆญ์‹œ ํ•˜๋‹จ์— ํ•ด๋‹น ๋…๋ฆฝ์„œ์ ์— ๋Œ€ํ•œ ๊ฐ„๋‹จํ•œ ๋‚ด์šฉ์ด ๋‹ด๊ธด Button์ด ๋œธ ( ํด๋ฆญํ•˜๋ฉด ์ƒ์„ธ ์„ค๋ช… VC๋กœ ์ด๋™)
  • ์ฐพ๊ณ ์ž ํ•˜๋Š” ๋™๋„ค๋ฅผ ๊ฒ€์ƒ‰ํ•˜๋ฉด Map ์˜ ์ค‘์‹ฌ์ด ๊ฒ€์ƒ‰ํ•œ ๋™๋„ค๋กœ ์ด๋™
  • SearchBar ๋ฐ‘์— ๋™๋„ค ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜๋ฉด ํ•ด๋‹น ์ง€์—ญ์˜ annotation ๋งŒ ๋œธ

- ์ƒ์„ธ์„ค๋ช… VC

  • ํ•ด๋‹น ๋…๋ฆฝ์„œ์ ์— ๋Œ€ํ•œ ์ƒ์„ธํ•œ ์ •๋ณด๋ฅผ ์•Œ๋ ค์ฃผ๋Š” ๊ธฐ๋Šฅ
  • ๋ฆฌ๋ทฐ section ์—์„œ๋Š” Naver Search API ์‚ฌ์šฉ ์˜ˆ์ •

- ์„ค์ • VC ๋ฐ ์ œ๋ณดํ•˜๊ธฐ VC

  • ๊ฐœ๋ฐœ์ž์˜ Mail๋กœ ์•ฑ์— ๋Œ€ํ•œ ๋ฌธ์˜์™€ ๋…๋ฆฝ์„œ์ ์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ๋ณด๋‚ผ ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ

 

4) ๊ฐœ๋ฐœ ๊ณต์ˆ˜

์ดํ„ฐ๋ ˆ์ด์…˜ 1 9์›” 8์ผ ~ 11์ผ : ์•ฑ์˜ ์ „์ฒด์ ์ธ ํ‹€ ์žก๊ธฐ
Main VC UI ๋ ˆ์ด์•„์›ƒ ์žก๊ธฐ 1h  
ํฐํŠธ, ์—์…‹, ์ปฌ๋Ÿฌ Extension ์„ค์ • 2h  
Json Data ๋งŒ๋“ค๊ธฐ 1h 0
Map ๊ตฌ์„ฑํ•˜๊ธฐ 3h 0

 

์ดํ„ฐ๋ ˆ์ด์…˜ 2 9์›” 12์ผ ~ 14์ผ : Main VC ๊ธฐ๋Šฅ ๊ตฌํ˜„
SearchBar ๊ธฐ๋Šฅ ๊ตฌํ˜„ 2h  
์œ„์น˜๋ณ„ annotation ๋œจ๋Š” ๊ธฐ๋Šฅ ๊ตฌํ˜„ 2h 0
annotation ํด๋ฆญ์‹œ ์ •๋ณด ๋œจ๋Š” Button ๊ตฌํ˜„ 3h  
Button ํด๋ฆญ์‹œ ์ƒ์„ธ ํ™”๋ฉด์œผ๋กœ ๋ฐ์ดํ„ฐ ์ „๋‹ฌ ๋ฐ ํ™”๋ฉด์ „ํ™˜ 2h  
์ƒ์„ธ ์„ค๋ช… VC layout ํฐ ํ‹€ ์žก๊ธฐ 1h  

 

์ดํ„ฐ๋ ˆ์ด์…˜ 3 9์›” 15์ผ ~ 18์ผ : ์ƒ์„ธ์„ค๋ช… VC ๋ฐ ์„ค์ • VC ๊ธฐ๋Šฅ ๊ตฌํ˜„
์ƒ์„ธ ์„ค๋ช… VC ์„ธ๋ถ€ layout ์กฐ์ • 1.5h  
Json Data๋กœ๋ถ€ํ„ฐ ์ •๋ณด ๋ฐ›์•„์™€ VC์— ํ‘œํ˜„ 3h  
Naver Search API ๋กœ ๋ฆฌ๋ทฐ Section์— ํ‘œํ˜„ 3h  
์„ค์ • VC layout ์žก๊ธฐ 0.5h  
๊ฐœ๋ฐœ์ž Mail๋กœ ๋ฌธ์˜ํ•˜๊ธฐ ๊ธฐ๋Šฅ ๊ตฌํ˜„ 2h  

 

์ดํ„ฐ๋ ˆ์ด์…˜ 4 9์›” 19์ผ ~ 21์ผ : ์ œ๋ณดํ•˜๊ธฐ VC ๊ธฐ๋Šฅ ๊ตฌํ˜„
์ œ๋ณดํ•˜๊ธฐ layout ์žก๊ธฐ 0.5h  
Button ๋ˆŒ๋ €์„ ๋•Œ ์•ก์…˜ ๊ตฌํ˜„ (ํ™”๋ฉด์ „ํ™˜ & Mail ์ „์†ก) 1h  
์•ฑ์˜ ์ „์ฒด์ ์ธ UI ์™„์„ฑ๋„์žˆ๊ฒŒ ์กฐ์ • 2h  
์•ฑ ์ค‘๊ฐ„๋ฐœํ‘œ ๋‚ด์šฉ ์ •๋ฆฌ 2h  

 

์ดํ„ฐ๋ ˆ์ด์…˜ 5 9์›” 22์ผ ~ 25์ผ : ๊ตฌํ˜„ํ•˜์ง€ ๋ชปํ•œ ๊ธฐ๋Šฅ ์˜ค๋ฅ˜ ํ•ด๊ฒฐ
๊ตฌํ˜„ํ•˜์ง€ ๋ชปํ•œ ๊ธฐ๋Šฅ ์˜ค๋ฅ˜ ํ•ด๊ฒฐ ๋ฐ ๊ตฌํ˜„ 5h  
์•ฑ ์ถœ์‹œ์— ํ•„์š”ํ•œ ๋‚ด์šฉ ํ•™์Šต 2h  
์ฝ”๋“œ ๋ฆฌํŒฉํ† ๋ง 3h  

 

์ดํ„ฐ๋ ˆ์ด์…˜ 6 9์›” 26์ผ ~ 28์ผ : ์•ฑ ์ถœ์‹œ
์•ฑ์— ๋ฒ„๊ทธ๋‚˜๋Š” ๋ถ€๋ถ„์ด ์žˆ๋Š”์ง€ ํ™•์ธ 4h  

 

์ดํ„ฐ๋ ˆ์ด์…˜ 7 - 8 9์›” 29์ผ ~ 10์›” 2์ผ : ๊ธฐ๋Šฅ ์—…๋ฐ์ดํŠธ / 10์›” 3์ผ - 10์›” 5์ผ : ์•ฑ ์—…๋ฐ์ดํŠธ ๋ฐ ์ตœ์ข…๋ฐœํ‘œ
๊ธฐ๋Šฅ ์—…๋ฐ์ดํŠธ 5h  
์ตœ์ข…๋ฐœํ‘œ ์ค€๋น„ 3h