๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐ŸŽ iOS/Swift

[Swift] ์Šคํ„ฐ๋”” 1์ฃผ์ฐจ - ์Šค์œ„ํ”„ํŠธ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ์™€ ์•Œ๊ณ ๋ฆฌ์ฆ˜

by Danna 2021. 4. 18.
728x90
728x90

 ์Šค์œ„ํ”„ํŠธ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ์™€ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ฑ…์˜ 1์žฅ์ธ Playground ์‚ดํŽด๋ณด๊ธฐ์— ๋Œ€ํ•œ ๋‚ด์šฉ์„ ์ฝ๊ณ , ์ •๋ฆฌํ•œ ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค. 

 

๐Ÿค” '์–ด๋ ค์› ๋˜ ๋ถ€๋ถ„'

1. REPL ์ด๋ผ๋Š” ์šฉ์–ด๋ฅผ ์ฒ˜์Œ ๋“ค์–ด๋ดค๋‹ค.
2. ArraySlice ์— ๋Œ€ํ•œ ์‹ค์Šต

 

โœ”๏ธŽ 'ํ•ด๊ฒฐํ•œ ๋ฐฉ๋ฒ•'

1. REPL ์— ๋Œ€ํ•ด ์•Œ์•„๋ดค๋‹ค.

  • REPL ? Read - Eval - Print - Loop
  • ๋‹จ์ผ ์‚ฌ์šฉ์ž ์ž…๋ ฅ(Read)์— ๋Œ€ํ•ด ์ด๋ฅผ ํ‰๊ฐ€(Eval)ํ•˜๊ณ  ๊ฒฐ๊ณผ๋ฅผ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ฐ˜ํ™˜์‹œํ‚ค๋Š”(Print) ๋‹จ์ˆœํ•œ ์ƒํ˜ธ์ž‘์šฉ ์ปดํ“จํ„ฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํ™˜๊ฒฝ์ด๋‹ค.  

2. ArraySlice ์— ๋Œ€ํ•ด Swift ๋ฌธ์„œ๋ฅผ ์ฐพ์•„๋ดค๋‹ค.

  • ์ผ์ • ๋ฒ”์œ„์— ์†ํ•œ ๋ฐฐ์—ด ์š”์†Œ๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ๋ฐฉ๋ฒ•, ๊ธฐ์กด ๋ฐฐ์—ด์„ ์ฐธ์กฐํ•œ๋‹ค. 
  • ArraySlice ์˜ ์‹œ์ž‘์€ ํ•ญ์ƒ 0 ์ด ์•„๋‹ˆ๋‹ค. ์•ˆ์ „ํ•˜๊ฒŒ ์‹œ์ž‘๊ณผ ๋ ์ธ๋ฑ์‹œ๋ฅผ ์ ‘๊ทผํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” startIndex, endIndex ์†์„ฑ์„ ์ด์šฉํ•ด๋ผ.

โœ”๏ธŽ 'ํ•ต์‹ฌ ์š”์•ฝ'

1. Swift ์–ธ์–ด์˜ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ์— ๋Œ€ํ•œ ์ดํ•ด


2. ํ„ฐ๋ฏธ๋„์—์„œ Swift REPL ์ธํ„ฐํŽ˜์ด์Šค ์‚ฌ์šฉํ•˜๊ธฐ

- ๋ณ€์ˆ˜ ์„ ์–ธ๊ณผ print ํ•จ์ˆ˜ ์ด์šฉ์— ๋Œ€ํ•œ ์‹ค์Šต

 

3. ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ์— ๋Œ€ํ•œ ์ดํ•ด 

- ์„ ํ˜• ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ ์ค‘ ๋ฐฐ์—ด (Array) ๋ฅผ ์ด์šฉํ•˜๊ธฐ ์œ„ํ•œ ์„ ์–ธ, ์š”์†Œ ์ ‘๊ทผ, ๋ฐฐ์—ด ์Šฌ๋ผ์ด์Šค, ์š”์†Œ ์ถ”๊ฐ€, ์‚ญ์ œ์— ๋Œ€ํ•œ ์‹ค์Šต
- ์—ฐ๊ฒฐ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ ์ค‘ Linked List ์— ๋Œ€ํ•œ ์„ค๋ช…๊ณผ ๋‹จ์ผ ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ, ์ด์ค‘ ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ์— ๋Œ€ํ•œ ๋น„๊ต, ๋‹จ์ผ ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ ๊ตฌํ˜„ ๋ฐฉ์‹์— ๋Œ€ํ•œ ์˜ˆ์‹œ ์ฝ”๋“œ

 

4. Swift ๋ฐ์ดํ„ฐ ํƒ€์ž…์— ๋Œ€ํ•œ ๋น„๊ต
- Value type or Reference type
- Value type ์€ ๊ฐ์ฒด๊ฐ€ ์˜ค์ง ํ•˜๋‚˜์˜ ๊ฐ’์„ ๊ฐ€์ง€๋ฉฐ, ๊ฐ’์„ ํ• ๋‹นํ•˜๊ฑฐ๋‚˜ ํ•จ์ˆ˜์— ์ „๋‹ฌํ•  ๋•Œ ์ง€๋‹ˆ๊ณ  ์žˆ๋˜ ๊ฐ’์„ ๋ณต์‚ฌํ•œ๋‹ค.
- Value type ์—๋Š” ๊ตฌ์กฐ์ฒด(Structure)์™€ ์—ด๊ฑฐํ˜•(Enumertaions) ๋‘๊ฐ€์ง€ ์œ ํ˜•์ด ์žˆ๋‹ค.
- Swift ์˜ ๋ฐ์ดํ„ฐ ํƒ€์ž…์€ ๋Œ€๋ถ€๋ถ„ ๊ตฌ์กฐ์ฒด์ด๋‹ค. 
- Reference type ์€ ๊ฐ’์„ ๋ณต์‚ฌํ•˜์ง€ ์•Š๊ณ  ๊ณต์œ ํ•˜๋Š” ๋ฐ์ดํ„ฐ ํƒ€์ž…์ด๋‹ค. Class, Closure ๊ฐ€ ํฌํ•จ๋œ๋‹ค.

 

5. Swift ์˜ ๋˜ ๋‹ค๋ฅธ ๋ฐ์ดํ„ฐ ํƒ€์ž… ๋ถ„๋ฅ˜ ์ฒด๊ณ„๋Š” Named type ๊ณผ Compound type ์ด๋‹ค.
- Named type ์€ ์‚ฌ์šฉ์ž๊ฐ€ ์ •์˜ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐ์ดํ„ฐ ํƒ€์ž…์œผ๋กœ, Class, Strucutre, Enumerations, Protocol ์ด ์žˆ๋‹ค. 
- Compound type ์€ ๋ณ„๋„์˜ ์ด๋ฆ„์ด ๋ถ™์—ฌ์ง€์ง€ ์•Š์€ ํƒ€์ž…์œผ๋กœ function, type ์ด ์ •์˜๋˜์–ด ์žˆ๋‹ค. 

 

6. ๋ฐ์ดํ„ฐ ๋ถ„์„
- ์ ๊ทผ์  ๋ถ„์„(asymptotic analysis) : ๋ฌดํ•œ๋Œ€์— ๊ฐ€๊นŒ์šด ์ž…๋ ฅ๊ฐ’์„ ๋ถ„์„ํ•˜๋Š” ๋ฐ ๊ฑธ๋ฆฌ๋Š” ์‹œ๊ฐ„์„ ์ธก์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค. 
- ์ž…๋ ฅ ๋ฐ์ดํ„ฐ์˜ ํฌ๊ธฐ์— ๋”ฐ๋ผ ํ•จ์ˆ˜์˜ ์‹คํ–‰ ์‹œ๊ฐ„์ด ์–ผ๋งˆ๋‚˜ ๊ธธ์–ด์ง€๋Š”์ง€์— ๋Œ€ํ•ด ์•Œ์•ผ์•„ ํ•œ๋‹ค.
- Big-O ๋Š” ํ•จ์ˆ˜์˜ ์ ๊ทผ์  ๋ถ„์„์„ ํ‘œํ˜„ํ•˜๋Š” ๊ฐ€์žฅ ๋Œ€ํ‘œ์ ์ธ ๋ฐฉ๋ฒ• ์ค‘ ํ•˜๋‚˜์ด๋ฉฐ, ์•Œ๊ณ ๋ฆฌ์ฆ˜ ํ‘œํ˜„์—์„œ ์ƒ์ˆ˜๋ฅผ ๊ฐ์ถค์œผ๋กœ์จ ์ข€ ๋” ๊ฐ„ํŽธํ•˜๊ฒŒ ์‹คํ–‰ ์†๋„๋ฅผ ์ธก์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.

728x90
728x90