Inflearn brand logo image
Inflearn brand logo image
์ฑ„๋„ํ†ก ์•„์ด์ฝ˜
BEST

์ฝ๊ธฐ ์ข‹์€ ์ฝ”๋“œ ์ž‘์„ฑํ•˜๊ธฐ - Swift API Design Guidelines

์ด ๊ฐ•์˜๋ฅผ ํ†ตํ•ด ์ดํ•ดํ•˜๊ธฐ ์‰ฌ์šด ์ฝ”๋“œ๊ฐ€ ๋ฌด์—‡์ธ์ง€ ์ œ๋Œ€๋กœ ๋œ ๊ธฐ์ค€์„ ์žก์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹จ๊ธฐ๊ฐ„์— ์ฝ”๋“œ ์ปจ๋ฒค์…˜์— ๊ด€ํ•œ ๋งŽ์€ ๋…ธํ•˜์šฐ๋ฅผ ๋ฐฐ์šธ ์ˆ˜ ์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

Thumbnail

์ดˆ๊ธ‰์ž๋ฅผ ์œ„ํ•ด ์ค€๋น„ํ•œ
[๋ชจ๋ฐ”์ผ ์•ฑ ๊ฐœ๋ฐœ, ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด] ๊ฐ•์˜์ž…๋‹ˆ๋‹ค.

์ด๋Ÿฐ ๊ฑธ ๋ฐฐ์šธ ์ˆ˜ ์žˆ์–ด์š”

  • Apple์ด ์ œ์•ˆํ•˜๋Š” ์ฝ”๋“œ ์ปจ๋ฒค์…˜์„ ๋ฐฐ์šฐ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค

  • ๋‹ค๋ฅธ ๊ฐœ๋ฐœ์ž๋“ค์ด ์ดํ•ดํ•˜๊ธฐ ์ข‹์€ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค

Apple์˜ ๊ฐ€์ด๋“œ๋ผ์ธ์„ ๋”ฐ๋ผ
์ข‹์€ Swift ์ฝ”๋“œ ์ž‘์„ฑํ•˜๊ธฐ!


์ฝ๊ธฐ ์ข‹์€ ์ฝ”๋“œ ์ž‘์„ฑํ•˜๊ธฐ
Swift API Design Guidelines

Swift ๊ธฐ๋ณธ ๋ฌธ๋ฒ•์€ ์ตํ˜”์ง€๋งŒ ์ฝ๊ธฐ ์ข‹์€ ์ฝ”๋“œ์— ๋Œ€ํ•œ ๊ธฐ์ค€์ด ์—†๋‹ค๋ฉด ์ด ๊ฐ•์˜๋ฅผ ์ถ”์ฒœํ•ฉ๋‹ˆ๋‹ค!
Apple์ด ๋งŒ๋“  Swift API Design Guidelines๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ์ข‹์€ ์ฝ”๋“œ์˜ ๊ธฐ์ค€์„ ํ™•๋ฆฝํ•˜์„ธ์š”.

Swift API Design Guidelines

API๋ฅผ ๋งŒ๋“ค ๋•Œ ๋‹ค๋ฅธ ๊ฐœ๋ฐœ์ž์™€ ์›ํ™œํ•˜๊ฒŒ ์†Œํ†ตํ•˜๊ธฐ ์œ„ํ•ด Apple์—์„œ ์ œ๊ณตํ•˜๋Š” ๊ฐ€์ด๋“œ๋ผ์ธ์ž…๋‹ˆ๋‹ค. ์–ด๋–ค ๊ธฐ์ค€์„ ๊ฐ€์ง€๊ณ  ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ• ์ง€, ์–ด๋–ค ๊ธฐ์ค€์„ ๊ฐ€์ง€๊ณ  ๋ฌธ์„œํ™”๋ฅผ ํ• ์ง€์— ๋Œ€ํ•œ ๊ธฐ์ค€์ ์ด ๋ฉ๋‹ˆ๋‹ค.

์ด ๊ฐ•์˜๋ฅผ
์ด๋Ÿฐ ๋ถ„๋“ค์—๊ฒŒ ์ถ”์ฒœํ•ด์š”!

iOS ์ฃผ๋‹ˆ์–ด ๊ฐœ๋ฐœ์ž

iOS ๊ฐœ๋ฐœ์ž๋กœ
์ปค๋ฆฌ์–ด๋ฅผ ์‹œ์ž‘ํ•˜์‹œ๋Š” ๋ถ„

Swift๋กœ ํ˜‘์—…ํ•˜๊ธฐ

Swift ๊ธฐ๋ฐ˜์œผ๋กœ ์ œ๋Œ€๋กœ
ํ˜‘์—…ํ•˜๊ณ  ์‹ถ์€ ๋ถ„

์ข‹์€ ์ฝ”๋“œ๋ฅผ ์œ„ํ•ด

์ฝ๊ธฐ ์ข‹์€ ์ฝ”๋“œ์˜ ๊ธฐ์ค€์„
ํ™•๋ฆฝํ•˜๊ณ  ์‹ถ์€ ๋ถ„

์ด ๊ฐ•์˜๋Š”
์ด๋Ÿฐ ํŠน์ง•์ด ์žˆ์–ด์š”!

  • ์• ํ”Œ ๊ณต์‹ ๋ฌธ์„œ๋ฅผ ๋ฒˆ์—ญํ•œ ํ•œ๊ธ€ ์ž๋ฃŒ ์ œ๊ณต
  • ํ˜ผ์ž ๋ณด๋ฉด ์ง€์น  ์ˆ˜ ์žˆ๋Š” ์„ค๊ณ„ ๊ฐ€์ด๋“œ๋ผ์ธ์„ ํ•จ๊ป˜ ์™„์ฃผ
  • ํ•„์š”ํ•œ ๊ฒฝ์šฐ ์˜ˆ์ œ๋ฅผ Playground์—์„œ ํ™•์ธํ•˜๋ฉด์„œ ์‹ค์Šต

์ด ๊ฐ•์˜๋ฅผ
๋งŒ๋“ค๊ฒŒ ๋œ ์ด์œ ๋Š”?

๋ถ€์ŠคํŠธ์บ ํ”„ ๋ฆฌ๋ทฐ์–ด๋กœ ํ™œ๋™ํ•  ๋•Œ โ€œ์ด ๋ถ€๋ถ„์€ Swift API Design Guidelines๋ฅผ ์ฐธ๊ณ ํ•˜๋ฉด ์ข‹๋‹คโ€๋Š” ๋ง์„ ์ž์ฃผ ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ๊ฐœ๋ฐœ์ž๋“ค์ด ๋ณด๊ธฐ์— ๋ช…ํ™•ํ•˜๊ณ  ์ดํ•ดํ•˜๊ธฐ ์‰ฌ์šด ์ฝ”๋“œ๊ฐ€ ์–ด๋–ค ๊ฒƒ์ธ์ง€ ์• ํ”Œ ์ œ๊ณตํ•˜๋Š” ๊ฐ€์ด๋“œ์— ์ž˜ ๋‚˜์™€ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.
์˜์–ด๋กœ ๋œ ์›๋ฌธ์„ ๋ณด๋Š” ๊ฒƒ์ด ๊ฐ€์žฅ ์ข‹์ง€๋งŒ, ํ•œ๊ธ€๋กœ ์„ค๋ช…ํ•˜๋Š” ๊ฐ•์˜๊ฐ€ ์žˆ๋‹ค๋ฉด Swift๋กœ ์‹ค๋ฌด์— ํˆฌ์ž…๋˜๊ธฐ ์ง์ „ ๋˜๋Š” ์ฃผ๋‹ˆ์–ด ๋ถ„๋“ค์—๊ฒŒ ๋งŽ์€ ๋„์›€์„ ์ค„ ์ˆ˜ ์žˆ์„ ๊ฒƒ ๊ฐ™์•„ ์ด ๊ฐ•์˜๋ฅผ ๋งŒ๋“ค๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.


์ด ๊ฐ•์˜์—์„œ๋Š”
์ด๋Ÿฐ ๊ฒƒ์„ ๋ฐฐ์šธ ์ˆ˜ ์žˆ์–ด์š”

1. Fundamentals

๋ชจ๋“  ๊ฐ€์ด๋“œ๋ฅผ ๊ด€ํ†ตํ•˜๋Š” ํ•ต์‹ฌ ๊ฐœ๋…์— ๋Œ€ํ•ด ๋ฐฐ์›๋‹ˆ๋‹ค

2. Naming

๋„ค์ด๋ฐ ๊ณ ๋ฏผ์— ๋„ˆ๋ฌด ๋งŽ์€ ์‹œ๊ฐ„์„ ๋ณด๋ƒˆ๋‚˜์š”?
์˜ˆ์ œ๋ฅผ ์ž‘์„ฑํ•ด๋ณด๋ฉฐ ์–ด๋–ค ๊ฒƒ์ด ์ข‹์€ ๋„ค์ด๋ฐ์ธ์ง€ ํ•จ๊ป˜ ์•Œ์•„๋ด…์‹œ๋‹ค!

3. Convention

์–ด๋–ค ์ฝ”๋“œ ์ปจ๋ฒค์…˜์ด ๊ฐ€๋…์„ฑ์— ์ข‹์€์ง€ ๋ฐฐ์šธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค

4. Special Instructions


์ด๋Ÿฐ ๋ถ„๋“ค๊ป˜
์ถ”์ฒœ๋“œ๋ ค์š”!

ํ•™์Šต ๋Œ€์ƒ์€
๋ˆ„๊ตฌ์ผ๊นŒ์š”?

  • ์‹ค๋ฌด์—์„œ ์‚ฌ์šฉ๋˜๋Š” ์ฝ”๋“œ ์ปจ๋ฒค์…˜์„ ๋ฐฐ์šฐ๊ณ  ์‹ถ์€ ๋ถ„

  • ์ฝ๊ธฐ ์ข‹์€ ์ฝ”๋“œ์˜ ๊ธฐ์ค€์„ ํ™•๋ฆฝํ•˜๊ณ  ์‹ถ์€ ๋ถ„

  • ์ฝ”๋“œ๋ฆฌ๋ทฐ ๋ฐ›๋Š” ๊ฒƒ์ด ๋‘๋ ค์šด ๋ถ„

  • ์ฝ”๋“œ๋ฆฌ๋ทฐ ํ•˜๋Š” ๊ฒƒ์ด ๋‘๋ ค์šด ๋ถ„

  • iOS ์ฃผ๋‹ˆ์–ด ๊ฐœ๋ฐœ์ž

  • iOS ๊ฐœ๋ฐœ์ž ์ทจ์ค€์ƒ

์„ ์ˆ˜ ์ง€์‹,
ํ•„์š”ํ• ๊นŒ์š”?

  • Swift ๊ธฐ๋ณธ ๋ฌธ๋ฒ•

์•ˆ๋…•ํ•˜์„ธ์š”
ํ™์„ฑํ˜ธ์ž…๋‹ˆ๋‹ค.

206

๋ช…

์ˆ˜๊ฐ•์ƒ

19

๊ฐœ

์ˆ˜๊ฐ•ํ‰

4.7

์ 

๊ฐ•์˜ ํ‰์ 

1

๊ฐœ

๊ฐ•์˜

์•ˆ๋…•ํ•˜์„ธ์š”! iOS ๊ฐœ๋ฐœ์ž ํ™์„ฑํ˜ธ ์ž…๋‹ˆ๋‹ค.
๊ฐ์ฒด์ง€ํ–ฅ ์„ค๊ณ„, ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ œ์ž‘, ์ ‘๊ทผ์„ฑ ๊ธฐ์ˆ ์— ๊ด€์‹ฌ์ด ๋งŽ์Šต๋‹ˆ๋‹ค.

  • ex-Naver ๋„ค์ด๋ฒ„์นดํŽ˜, ํŒŒํŒŒ๊ณ 

  • ex-Sendbrid Chat SDK

 

๋”๋ณด๊ธฐ

์ปค๋ฆฌํ˜๋Ÿผ

์ „์ฒด

23๊ฐœ โˆ™ (1์‹œ๊ฐ„ 28๋ถ„)

๊ฐ•์˜ ๊ฒŒ์‹œ์ผ: 
๋งˆ์ง€๋ง‰ ์—…๋ฐ์ดํŠธ์ผ: 

์ˆ˜๊ฐ•ํ‰

์•„์ง ์ถฉ๋ถ„ํ•œ ํ‰๊ฐ€๋ฅผ ๋ฐ›์ง€ ๋ชปํ•œ ๊ฐ•์˜์ž…๋‹ˆ๋‹ค.
๋ชจ๋‘์—๊ฒŒ ๋„์›€์ด ๋˜๋Š” ์ˆ˜๊ฐ•ํ‰์˜ ์ฃผ์ธ๊ณต์ด ๋˜์–ด์ฃผ์„ธ์š”!