์ƒˆ์†Œ์‹

๐Ÿ“ฑ iOS/-- UIKit

(iOS) ์ฝ”์ฝ”์•„ ํ„ฐ์น˜ , iOS์˜ ๊ณ„์ธต๊ตฌ์กฐ (CocoaTouch)

  • -

iOS ํ”„๋ ˆ์ž„์›Œํฌ

UIApplication UIViewController UILabel UIButton

์ฒ˜๋Ÿผ ์ ‘๋‘์–ด์— UI๊ฐ€ ๋ถ™๋Š” ํด๋ž˜์Šค๋“ค์€ ๋ชจ๋‘ UIKit์ด๋ผ๋Š” ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ํ†ตํ•ด ์ œ๊ณต๋˜๋Š” ๊ฐ์ฒด๋“ค์ด๋‹ค. swift๋ผ๋Š” ์–ธ์–ด ์ž์ฒด์—๋Š” ์•ฑ ๊ฐœ๋ฐœ์„ ์œ„ํ•œ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜์ง€ ์•Š๋Š”๋‹ค. ๋”ฐ๋ผ์„œ ์•ฑ์„ ๊ฐœ๋ฐœํ•˜๋ ค๋ฉด apple์—์„œ ์ œ๊ณตํ•˜๋Š” ์ฝ”์ฝ”์•„ํ„ฐ์น˜ ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์‚ฌ์šฉํ•ด์•ผํ•˜๋ฉฐ, ์ฝ”์ฝ”์•„ํ„ฐ์น˜ ํ•˜์œ„๊ณ„์ธต์—๋Š” ์—ฌ๋Ÿฌ๊ฐ€์ง€ ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ๋‹ด๊ณ ์žˆ๋‹ค.

 

์ฝ”์ฝ”์•„ ํ„ฐ์น˜ ํ”„๋ ˆ์ž„์›Œํฌ์˜ ์ข…๋ฅ˜

  • Foundation : ์›์‹œ ๋ฐ์ดํ„ฐ ํƒ€์ž…, ๋‚ ์งœ ๋ฐ ์‹œ๊ฐ„ ์—ฐ์‚ฐ, ํ•„ํ„ฐ, ์ •๋ ฌ, ๋„คํŠธ์›Œํ‚น ๋“ฑ์˜ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค.
    • NS์ ‘๋‘์–ด๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. (NSString, NSArray.......)
  • UIKit : ์•„์ดํฐ, ์• ํ”Œ์›Œ์น˜ ๋ฐ ์• ํ”Œ TV์—์„œ ์‹คํ–‰๋˜๋Š” UI๋ฅผ ์ œ๊ณตํ•œ๋‹ค.
  • Webkit : Safari ๋ฐ iOS๋‚ด์˜ ๋ชจ๋“  ์›น ๋ธŒ๋ผ์šฐ์ €์— ์‚ฌ์šฉ๋œ๋‹ค.
  • AddressBookUI : ์ฃผ์†Œ๋ก UI
  • GameKit : ๊ฒŒ์ž„ ์„ผํ„ฐ๋ฅผ ์—ฐ๋™ํ•˜๊ฑฐ๋‚˜, ๊ทผ๊ฑฐ๋ฆฌ P2P ์—ฐ๊ฒฐ์„ ์ œ๊ณตํ•ด์ค€๋‹ค.
  • UserNotification : ์‚ฌ์šฉ์ž ์•Œ๋ฆผ ์ฒ˜๋ฆฌ ๊ด€๋ จ๊ฐ์ฒด๋“ค์„ ์ œ๊ณตํ•ด์ค€๋‹ค.

์ด ์™ธ์—๋„ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ํ”„๋ ˆ์ž„์›Œํฌ๋“ค์ด ์กด์žฌํ•˜์ง€๋งŒ, Foundation๊ณผ UIKit์„ ์ฝ”์ฝ”์•„ํ„ฐ์น˜๋ฅผ ์ด๋ฃจ๋Š” ์ฃผ ํ”„๋ ˆ์ž„์›Œํฌ๋ผ๊ณ  ๊ฐ„์ฃผํ•œ๋‹ค. ๋‚˜๋จธ์ง€ ํ”„๋ ˆ์ž„์›Œํฌ๋Š” ํ•„์š”ํ•œ ๊ธฐ๋Šฅ์— ๋”ฐ๋ผ ์„ ํƒ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋ฉด๋˜์ง€๋งŒ, Foundation๊ณผ UIKit์€ ์–ด๋– ํ•œ ์•ฑ์—๋„ ํ•„์ˆ˜์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

 

iOS

์•„์ดํŒจ๋“œ, ์•„์ดํฐ์— ํƒ‘์žฌ๋˜๋Š” OS๋Š” iOS์ด๋‹ค. iOS๋Š” 2008๋…„์— ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœํˆด์ธ SDK๊ฐ€ ๊ณต๊ฐœ๋˜๋ฉด์„œ ๊ธฐ๋ณธ ์• ํ”Œ์ œ๊ณต์•ฑ์ด ์•„๋‹Œ, ์ปค์Šคํ…€ ์•ฑ๋“ค์„ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ๋‹ค. SDK๋Š” ๋„ค์ดํ‹ฐ๋ธŒ ์•ฑ์„ ๊ฐœ๋ฐœ,์„ค์น˜,์‹คํ–‰ ๋ฐ ํ…Œ์ŠคํŠธ๊นŒ์ง€ ๋ชจ๋“  ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค. SDK๋ฅผ ์ œ๊ณตํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๋œป์€ ํŠน์ • OS์—์„œ ๋™์ž‘ํ•˜๋Š” ์•ฑ์„ ๋งŒ๋“ค๋„๋ก ํ—ˆ์šฉํ•˜์ง€ ์•Š๋Š” ๋œป๊ณผ ๊ฐ™๋‹ค.

 

๋„ค์ดํ‹ฐ๋ธŒ ์•ฑ

Swift ํ˜น์€ Object-C๋กœ ๊ฐœ๋ฐœ๋œ iOS๋ฅผ ํ†ตํ•ด ์ง์ ‘ ์‹คํ–‰๋˜๋Š” ์•ฑ์„ ๋งํ•œ๋‹ค. ๋น„๊ต๋˜๋Š” ๊ฐœ๋…์œผ๋กœ๋Š” ์›น ์•ฑ์ด ์žˆ๋‹ค. ์›น ์•ฑ์€ ํฐ ๊ฐญ(Phone Gap), ํ‹ฐํƒ€๋Š„(Titanium)๋“ฑ์˜ ๊ฐœ๋ฐœ ํˆด์„ ํ†ตํ•˜์—ฌ HTML, CSS, JS๋“ฑ์˜ ๊ธฐ์ˆ ๋กœ ์•ฑ๊ณผ ๋น„์Šทํ•œ UI๋ฅผ ์ œ๊ณตํ•˜๋Š” ์•ฑ์„ ๋งํ•œ๋‹ค. ์›น ์•ฑ์€ ์„ค์น˜๊ฐ€ ํ•„์š”์—†๋‹ค๋Š” ์žฅ์ ์ด ์žˆ์ง€๋งŒ, ์„ฑ๋Šฅ์˜ ์ œ์•ฝ์ด ํฌ๊ธฐ ๋•Œ๋ฌธ์— ๋„ค์ดํ‹ฐ๋ธŒ ์•ฑ์˜ ๋Œ€์ฒด์ œ๋กœ๋Š” ์‚ฌ์šฉ ๋ถˆ๊ฐ€ํ•˜๋‹ค.

 

์ฝ”์ฝ”์•„ ํ„ฐ์น˜ ํ”„๋ ˆ์ž„์›Œํฌ vs ์ฝ”์ฝ”์•„ ํ”„๋ ˆ์ž„์›Œํฌ

์ฝ”์ฝ”์•„ ํ”„๋ ˆ์ž„์›Œํฌ๋Š” Mac์šฉ ์•ฑ ๊ฐœ๋ฐœ์„ ์œ„ํ•œ ํ”„๋ ˆ์ž„์›Œํฌ์ด๋‹ค. ๋‘ ํ”„๋ ˆ์ž„์›Œํฌ๋Š” ์„œ๋กœ ๊ณต์œ ๋˜๋Š” ๋ถ€๋ถ„์ด ๋งŽ๊ณ , ๋”ฐ๋ผ์„œ ์™„์ „ํžˆ ์„œ๋กœ ๋ณ„๊ฐœ์˜ ํ”„๋ ˆ์ž„์›Œํฌ๋ผ๊ณ  ํ•  ์ˆ˜ ์—†๋‹ค.

 

 

iOS์˜ ๊ณ„์ธต๊ตฌ์กฐ

์ƒ์œ„ ๊ณ„์ธต์ผ์ˆ˜๋ก ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ ๊ฐ€๊น๊ณ , ํ•˜์œ„ ๊ณ„์ธต์œผ๋กœ ๊ฐˆ์ˆ˜๋ก ํ•˜๋“œ์›จ์–ด์ชฝ์— ๊ฐ€๊น๊ณ  ์ถ”์ƒ์ ์ด๋‹ค. ๋”ฐ๋ผ์„œ ํ•˜์œ„ ๊ณ„์ธต์ผ์ˆ˜๋ก ๊ฐœ๋ฐœ์ž๊ฐ€ ๋‹ค๋ฃจ๊ธฐ ์–ด๋ ค์šด ์˜์—ญ์ด๋‹ค. ์ƒ์œ„ ํ”„๋ ˆ์ž„์›Œํฌ๋Š” ํ•˜์œ„ ํ”„๋ ˆ์ž„์›Œํฌ์— ์˜์กด๋„๊ฐ€ ๋†’๋‹ค. ๋ชจ๋“  ๊ธฐ๋Šฅ์„ ์ƒ์œ„ ํ”„๋ ˆ์ž„์›Œํฌ์— ๊ตฌํ˜„ํ•  ์ˆ˜ ์—†์œผ๋ฏ€๋กœ, ํ•˜์œ„ ํ”„๋ ˆ์ž„์›Œํฌ์˜ ๊ธฐ๋Šฅ์— ์˜์กดํ•˜๊ฒŒ ๋œ๋‹ค.

๊ฐœ๋ฐœ์ž๋Š” ์ฝ”๋“œ๋ฅผ ํ†ตํ•ด ๊ฐ„์ ‘์ ์œผ๋กœ ํ•˜์œ„๊ณ„์ธต(ํ•˜๋“œ์›จ์–ด์ชฝ)์„ ์ œ์–ดํ•˜๊ณ  ์ปจํŠธ๋กคํ•  ์ˆ˜ ์žˆ๋‹ค.

 

Core OS

์ปค๋„, ํŒŒ์ผ ์‹œ์Šคํ…œ, ๋„คํŠธ์›Œํฌ, ๋ณด์•ˆ, ์ „์› ๊ด€๋ฆฌ ๋ฐ ๋””๋ฐ”์ด์Šค ๋“œ๋ผ์ด๋ฒ„ ๋“ฑ์ด ํฌํ•จ๋œ๋‹ค.

 

Core Services

๋ฌธ์ž์—ด ์ฒ˜๋ฆฌ, ๋ฐ์ดํ„ฐ ๊ด€๋ฆฌ, ๋„คํŠธ์›Œํฌ ๊ด€๋ฆฌ, ์ฃผ์†Œ๋ก ๊ด€๋ฆฌ ๋“ฑ์˜ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค. ์ž์ด๋กœ ์„ผ์„œ, ๋‚˜์นจ๋ฐ˜, GPS๋“ฑ์˜ ํ•˜๋“œ์›จ์–ด์— ๊ธฐ๋ฐ˜ํ•œ ์„œ๋น„์Šค๋„ Core OS์—์„œ ์ œ๊ณตํ•œ๋‹ค. CoreData๋„ ์ด ๊ณ„์ธต์— ์†ํ•œ๋‹ค.

 

Media Layer

  • ๊ทธ๋ž˜ํ”ฝ ๊ด€๋ จ ์„œ๋น„์Šค ๋ฐ ๋ฉ€ํ‹ฐ๋ฏธ๋””์–ด ๊ด€๋ จ ์„œ๋น„์Šค ์ œ๊ณต
  • AVFoundation , CoreAnimation, CoreText , CoreGraphics๋“ฑ์„ ์ œ๊ณตํ•œ๋‹ค.
Contents

ํฌ์ŠคํŒ… ์ฃผ์†Œ๋ฅผ ๋ณต์‚ฌํ–ˆ์Šต๋‹ˆ๋‹ค

์ด ๊ธ€์ด ๋„์›€์ด ๋˜์—ˆ๋‹ค๋ฉด ๊ณต๊ฐ ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค.