UMC iOS ์„ธ๋ฏธ๋‚˜ 7์ฃผ์ฐจ : DB

2022. 11. 7. 21:56ใ†UniversityMakeUsChallenge/UMCiOS

 

 

 

 

 

์œ ์ €๋””ํดํŠธ?! ๋””๋น„!
๋ฉ”์ธ์—์„œ๋Š” ์–ด์‹ฑํฌ๋ฅผ ์“ฐ์ž (์‹ฑํฌ ์ž˜๋ชป์“ฐ๋‹ค๊ฐ€ ๋ฐ๋“œ๋ฝ, ์•ฑ์ด ์ฃฝ๋Š”๋‹ค)

 

 

 

  • ์Šค๋ ˆ๋“œ์™€ ์šด์˜์ฒด์ œ๋ฅผ ์ž˜ ๋‹ค๋ฃจ๋Š”๊ฒŒ iOS์—์„œ ๋งŽ์ด ์ค‘์š”ํ•˜๋‹ค.
  • iOS ์—ฌ๋Ÿฌ ๊ธฐ๋Šฅ๋“ค์„ ํ™œ์šฉํ•˜์—ฌ ์ž‘์—…ํ•  ๋•Œ ๋„์›€์ด ๋  ๊ฒƒ

 

 

 

 

ATM ๊ธฐ๊ณ„์— ๋„ฃ์€ ๋ˆ์ด ์–ด๋–ป๊ฒŒ ๋‹ค๋ฅธ ์‚ฌ๋žŒ์—๊ฒŒ ๋„˜๊ฒจ์ง€๋Š”๊ฐ€?
ํ˜„๊ธˆ์˜ ๋ฐ์ดํ„ฐํ™” -> ์ „์‚ฐ ์ฒ˜๋ฆฌ
DB๋ž€? ๋ฐ์ดํ„ฐ๋“ค์˜ ์ง‘ํ•ฉ์ฒด : ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค
DBMS : ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ฆฌ ์‹œ์Šคํ…œ, ์ผ์ผ์ด ๋ฐ์ดํ„ฐ๋ฅผ ํƒ์ƒ‰ -> ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๊ฐ„ํŽธํ•˜๊ณ  ํšจ์œจ์ ์œผ๋กœ ๊ด€๋ฆฌํ•œ๋‹ค.

 

 

DBMS ์น˜๋ช…์ ์ธ ๋‹จ์ 

  • ๋ฐ์ดํ„ฐ๋ฅผ ํŒŒ์ผ ํ˜•์‹์œผ๋กœ ๋‹ค๋ฃฌ๋‹ค
  • ์€ํ–‰ ๊ฐ™์€ ๊ฒฝ์šฐ -> ๋ณด์•ˆ์ƒ ๋ฌธ์ œ
  • ๊ฐ๊ฐ์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ์กด์žฌ

 

 

๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ฆฌ ์‹œ์Šคํ…œ

 

 

 

RDBMS

  • ๋ฐ์ดํ„ฐ๊ฐ€ ํ…Œ์ด๋ธ” ํ˜•ํƒœ๋กœ ์กด์žฌ
  • ํ…Œ์ด๋ธ” ํ˜•์‹์˜ ์Šคํ‚ค๋งˆ, ํ…Œ์ด๋ธ” ๊ฐ„์˜ ๊ด€๊ณ„์„ฑ
  • ๋‹จ์ˆœํžˆ ๋ฐ์ดํ„ฐ๋ฅผ ํŒŒ์ผ ํ˜•ํƒœ๋กœ ์ €์žฅํ•˜๋Š” DBMS์—์„œ ๋‹จ์ ์„ ๋ณด์™„ํ•จ

 

  • PK : Primary key, ๊ธฐ๋ณธํ‚ค
  • FK : Foreign Key, ์™ธ๋ž˜ํ‚ค

 

 

 

ํ…Œ์ด๋ธ”, ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃจ๊ธฐ ์œ„ํ•œ ์–ธ์–ด! SQL

 

 

SQL

ํ…Œ์ด๋ธ”์„ ํ†ตํ•ด ์›ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ค๊ฑฐ๋‚˜

์ƒ์„ฑ ๋ฐ ์‚ญ์ œ, ์—…๋ฐ์ดํŠธ๋ฅผ ํ•˜๊ธฐ ์œ„ํ•œ ์–ธ์–ด

 

 

 

DBMS (Xml๊ณผ JSON์˜ ์ฐจ์ด๋„ ์—ฐ๊ด€์ด ์žˆ๋‚˜?)

 

 

 

 

 

์ •๋ฆฌ

์€ํ–‰์˜ ์ „์‚ฐ ๋ฐ์ดํ„ฐ์™€ ๊ฐ™์€ ๊ฒƒ๋“ค

๋ฐ์ดํ„ฐ๋“ค์ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์•ˆ์— ๋ฌถ์—ฌ์žˆ๋‹ค.

์ด๋Ÿฌํ•œ DB๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ฆฌ์‹œ์Šคํ…œ์œผ๋กœ ๊ด€๋ฆฌํ•œ๋‹ค.

 

RDBMS๊ฐ€ ๋ฌด์กฐ๊ฑด DBMS๋ณด๋‹ค ์ข‹์€ ๊ฒƒ์€ ์•„๋‹ˆ๋‹ค.

๊ฐ์ž ์ ์ ˆํ•œ ์ƒํ™ฉ์— ๋งž์ถ”์–ด ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค.

 

iOS ๊ฐœ๋ฐœ์ž๋„ ๋ฐ์ดํ„ฐ์˜ ํ๋ฆ„์„ ํŒŒ์•…ํ•˜๋ฉด ์ข‹์Œ

๊ธฐ๋ณธ์ ์ธ ์šฉ์–ด์™€ ๊ฐœ๋…์„ ์ดํ•ดํ•˜๊ณ  ๋„˜์–ด๊ฐ€๋ฉด ์ข‹๋‹ค.

์šฐ๋ฆฌ๊ฐ€ ๊ณผ์ œ๋กœ ๋ฉ”๋ชจ ์•ฑ or ์‹œ๊ณ„ ์•ฑ์„ ๊ฐœ๋ฐœํ•  ๋•Œ,

๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•œ๋‹ค๋ฉด ์•ฑ์„ ์ข…๋ฃŒํ•˜๊ณ  ๋‹ค์‹œ ์‹œ์ž‘ํ•ด๋„ ๊ฐ’์ด ๋‚จ์•„์žˆ๋‹ค.

 

iOS์—์„œ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ œ๊ณตํ•˜๋Š” DB

UserDefaults๋ฅผ ์•Œ์•„๋ณด์ž! :)

 

 

 

 

์œ ์ €๋””ํด์ธ 
์œ ์ €์˜ ๊ธฐ๋ณธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค, ํ‚ค์™€ ๊ฐ’์˜ ์Œ์ด ์ €์žฅ๋œ๋‹ค.

 

 

 

- ํ‚ค : ๊ฐ’์œผ๋กœ ์ €์žฅ๋˜๋Š” ์ž๋ฃŒ๊ตฌ์กฐ 

- Swift: ๋”•์…”๋„ˆ๋ฆฌ ํ˜•ํƒœ๋กœ ์ €์žฅ (๋‹ค๋ฅธ ์–ธ์–ด: ํ•ด์‰ฌ, ํ•ด์‰ฌ๋งต ๋“ฑ๋“ฑ)

 

 

 

์‚ฌ์ „์ด๋ž€? ํ‚ค๋ฅผ ๋„ฃ์œผ๋ฉด ๊ฐ’์ด ๋‚˜์˜จ๋‹ค

 

key : value pair

 

์ƒˆ๋กœ์šด ๊ฐ’์„ ๋”•์…”๋„ˆ๋ฆฌ์— ๋„ฃ๋Š” ๋ฐฉ์‹! ํ‚ค ๊ฐ’์œผ๋กœ ์ ‘๊ทผ

 

 

UserDefaults ์‹ค์Šต : ํšŒ์›๊ฐ€์ž… ๊ธฐ๋Šฅ ๊ตฌํ˜„ํ•˜๊ธฐ

 

 

 

DB์— ์žˆ๋Š” ์˜ฌ๋ฐ”๋ฅธ ์ด๋ฆ„๊ณผ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ผ๋ฉด, ๋กœ๊ทธ์ธ ์„ฑ๊ณต, ์—†๋‹ค๋ฉด ํšŒ์›๊ฐ€์ž… ๋ทฐ๋กœ ๋„˜์–ด๊ฐ

 

๋กœ๊ทธ์ธ ๋ทฐ์ปจ

 

ํšŒ์›๊ฐ€์ž… ๋ทฐ์ปจ

 

๋กœ๊ทธ์ธ ๋ทฐ์—์„œ, ํšŒ์›๊ฐ€์ž… ๋ฒ„ํŠผ ์•ก์…˜ ๊ตฌํ˜„

 

 

๋ฐ์ดํ„ฐ ์ €์žฅ์— ์œ ์ €๋””ํด์ธ  ํ™œ์šฉ

์ด๋ฆ„๊ณผ ๋น„๋ฐ€๋ฒˆํ˜ธ๊ฐ€ 1:1๋กœ ๋งค์นญ๋˜์–ด์•ผ ํ•œ๋‹ค

key : value (์ด๋ฆ„ : ๋น„๋ฐ€๋ฒˆํ˜ธ)

 

 

 

 

ํ‚ค๋Š” ์ด๋ฆ„, ๋ฒจ๋ฅ˜๋Š” ๋น„๋ฐ€๋ฒˆํ˜ธ

 

 

" ์ด๋ฆ„ : ๋น„๋ฐ€๋ฒˆํ˜ธ " ํ˜•ํƒœ๋กœ ๋ฌถ์—ฌ์„œ ๋“ค์–ด๊ฐ„๋‹ค.

 

 

pop๋ทฐ์ปจ์œผ๋กœ ํšŒ์›๊ฐ€์ž… ๋ทฐ๋ฅผ ๋‚˜๊ฐ„๋‹ค

 

 

๋‹ค์‹œ ๋กœ๊ทธ์ธ์œผ๋กœ ๋„˜์–ด์™€์„œ ๊ตฌํ˜„!

์ž…๋ ฅ๋œ ์ด๋ฆ„๊ณผ ๋น„๋ฐ€๋ฒˆํ˜ธ๊ฐ€ ์œ ํšจํ•œ์ง€ ํ™•์ธ

 

 

์œ ์ €๋””ํดํŠธ๋ฅผ String์œผ๋กœ ๊ฐ€์ ธ์˜จ๋‹ค!

 

์กฐ๊ฑด๋ฌธ์œผ๋กœ ์ฒ˜๋ฆฌ
์กฐ๊ฑด๋ฌธ2 else

 

์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ž…๋ ฅ์ด ๋“ค์–ด๊ฐ€๋Š”์ง€ ๋ณด๊ธฐ ์œ„ํ•˜์—ฌ, ๋ฌธ์ž์—ด ๋ณด๊ฐ„๋ฒ• ํ™œ์šฉ

 

๋“ฑํ˜ธ ์ˆ˜์ • (!= -> ==)

 

 

DB : ์˜์†์„ฑ

- ๋ฐ์ดํ„ฐ๊ฐ€ ๋ณด์กด๋˜์–ด์•ผ ํ•œ๋‹ค.

- ์–ดํ”Œ์„ ์ข…๋ฃŒํ•˜๊ณ , ๋‹ค์‹œ ์ผœ๋„ ๋ฐ์ดํ„ฐ๊ฐ€ ์œ ์ง€๋˜์–ด์•ผ ํ•จ

- UserDefaults ์•ฑ์„ ๊ป๋‹ค ์ผœ๋„ ๋ฐ์ดํ„ฐ ์ €์žฅ๋จ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

- iOS ๊ธฐ๋ณธ์ ์œผ๋กœ ์ œ๊ณต๋˜๋Š” ๋ฐ์ดํ„ฐ ์ €์žฅ interface, UserDefaults ํ™œ์šฉํ•ด๋ดค๋‹ค.

- key : value pair ๋ฅผ ํ†ตํ•ด ๊ฐ’์„ ์ž…๋ ฅํ•˜๊ฑฐ๋‚˜, ๊ฐ€์ ธ์˜จ๋‹ค. 

- ํ”„๋กœ์ ํŠธ ์ง„ํ–‰ ์ค‘ ์ž์ฃผ ํ™œ์šฉํ•˜๊ฒŒ ๋  ๊ฒƒ์ด๋‹ค.

 

 

 

UserDefaults ๋‹จ์ 

- ํ•˜๋‚˜์˜ ํ‚ค ๊ฐ’์— ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด?

- ํ•˜๋‚˜์˜ ํ‚ค์— ๋Œ€์‘๋˜๋Š” ์—ฌ๋Ÿฌ ๋ฐ์ดํ„ฐ ์ค‘ ํ•˜๋‚˜๋งŒ ๊ฐ€์ ธ์˜ค๊ณ  ์‹ถ๋‹ค๋ฉด?

- ์œ ์ € ํ•œ ๋ช…์— ๋Œ€ํ•œ ์—ฌ๋Ÿฌ ํŠน์„ฑ -> ๋‹ค ๊ฐ€์ ธ์˜ค๋ ค๋ฉด ๋งค์šฐ ํž˜๋“ค๋‹ค

 

UserDefaults ์žฅ์ 

- ์“ฐ๊ธฐ๊ฐ€ ํŽธํ•˜๋‹ค

- ์ž๋™ ๋กœ๊ทธ์ธ์„ ๊ตฌํ˜„ํ•  ๋•Œ ๋งŽ์ด ์“ด๋‹ค.

- ์ฒ˜์Œ์— ์•ฑ์„ ์ผฐ์„ ๋•Œ ๋กœ๊ทธ์ธ์„ ํ•œ๋‹ค. -> ์–ดํ”Œ ์ข…๋ฃŒ -> ์žฌ์‹œ์ž‘ 

- ๋‹ค์‹œ ๋กœ๊ทธ์ธ ํ•˜๊ธฐ ๊ท€์ฐฎ์Œ -> ์ž๋™ ๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค. 

- ์ด๋Ÿฌํ•œ ๊ฒฝ์šฐ์— UserDefaults๊ฐ€ ๋งŽ์ด ์‚ฌ์šฉ๋œ๋‹ค. 

- ๋กœ๊ทธ์ธ์„ ํ•œ ์ ์ด ์žˆ๋‚˜?๋ฅผ value์— ์ €์žฅ

 

 

- UserDefaults ์™ธ์—๋„ iOS์—์„œ ์ œ๊ณตํ•˜๋Š” DB ํ”„๋ ˆ์ž„์›Œํฌ๊ฐ€ ์žˆ๋‹ค.

- ํ•„์š”ํ•˜๋‹ค๋ฉด DB๋ผ๋Š” ๊ฐœ๋…์„ ๋” ๊ณต๋ถ€ํ•˜์—ฌ, ํ™œ์šฉํ•˜๋ฉด ์ข‹์„ ๊ฒƒ ๊ฐ™๋‹ค.

 

 

 

 

 

 

- ์Šคํƒ ๋‹ค๋“œ ๋ฏธ์…˜

- DB์˜ ์˜์†์„ฑ, iOS ๊ธฐ๋ณธ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ํ™œ์šฉ

- ์ง€๋‚œ์ฃผ ์Šคํƒ ๋‹ค๋“œ ๋ฏธ์…˜ (์•Œ๋žŒ ์‹œ๊ณ„)์— ๋ฐ์ดํ„ฐ ์ €์žฅ ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•ด๋ณด๊ธฐ

- UserDefaults or ๋‹ค๋ฅธ DB๋ฅผ ์ ์šฉํ•ด๋„ ๋œ๋‹ค.

- ์•ฑ์„ ๊ป๋‹ค๊ฐ€ ์ผœ๋„, ํ•ด๋‹น ๋ฐ์ดํ„ฐ๊ฐ€ ์ €์žฅ๋˜๋„๋ก ๊ตฌํ˜„

 

- ์ฒผ๋ฆฐ์ง€ ๋ฏธ์…˜

- ์ด์ „ ์ฒผ๋ฆฐ์ง€ ๋ฏธ์…˜ ๊ฒฐ๊ณผ๋ฌผ์— DB ๊ด€๋ จ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

- DB์˜ ์˜์†์„ฑ์„ ํ™œ์šฉํ•˜์—ฌ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•ด๋ณด์ž

 

 

 

 

 

 

 

 

 

- ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์ž์™€์˜ ํ˜‘์—…

- JSON ๊ฐœ๋… ๊ณต๋ถ€ํ•ด๋ณด๊ธฐ (๋‹ค๋‹ค์Œ์ฃผ์— ๋‹ค๋ฃฐ ์˜ˆ์ •)

- ์‹œ๊ฐ„์ด ์žˆ๋‹ค๋ฉด ๋ฏธ๋ฆฌ ์˜ˆ์Šตํ•ด๋ณด๊ธฐ 

 

- ์„œ๋ฒ„์— ์™ธ๋ถ€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ์–ด๋–ป๊ฒŒ iOS์™€ ์†Œํ†ตํ•˜๊ฒŒ ๋ ๊นŒ?

- ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์ž๋“ค์ด ๊ตฌ์ถ•ํ•œ DB์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๊บผ๋‚ด์˜ค๋Š” ๋ฐฉ๋ฒ• ์ดํ•ดํ•˜๊ธฐ

 

- UserDefaults ์™ธ์—๋„ ์ ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋‹ค์–‘ํ•œ ์™ธ๋ถ€ ํ”„๋ ˆ์ž„์›Œํฌ

- iOS ์ž์ฒด์  ๋‚ด๋ถ€ ํ”„๋ ˆ์ž„์›Œํฌ, ์™ธ๋ถ€ ํ”„๋ ˆ์ž„์›Œํฌ ์•Œ์•„๋ณด๊ธฐ

- ํ‚ค์ฒด์ธ๊ณผ ์ฝ”์–ด๋ฐ์ดํ„ฐ ํ™œ์šฉํ•  ๊ฒฝ์šฐ ๋งŽ๋‹ค.

- ๋ ˜๊ณผ ํŒŒ์ด์–ด๋ฒ ์ด์Šค๋Š” ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์ž๊ฐ€ ์žˆ๋‹ค๋ฉด ์ž˜ ํ™œ์šฉํ•˜์ง€ ์•Š์ง€๋งŒ,

  ํ˜ผ์ž์„œ ํ† ์ด ํ”„๋กœ์ ํŠธ ๋งŒ๋“ ๋‹ค๋ฉด ์ž์ฃผ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.