Target

Xcode์˜ ๋นŒ๋“œ๋ฅผ ํ†ตํ•ด ์ƒ์„ฑ๋œ ์ตœ์ข… Product

  • Framework
  • Application
  • ๋“ฑ๋“ฑ

์ผ๋ฐ˜์ ์œผ๋กœ ํ•˜๋‚˜์˜ ๋ชจ๋“ˆ ๋˜๋Š” ์•ฑ์„ ์˜๋ฏธํ•œ๋‹ค. ๋ณดํ†ต ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ์‹œ ํ•˜๋‚˜๋งŒ ์ƒ์„ฑ๋˜๋‚˜, ๋ชฉ์ ์— ๋”ฐ๋ผ ํ•˜๋‚˜์˜ ํ”„๋กœ์ ํŠธ์— ์—ฌ๋Ÿฌ๊ฐœ์˜ Target์„ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค. ํ•˜๋‚˜์˜ ํ”„๋กœ์ ํŠธ์—์„œ ์ƒ์„ฑํ•˜๊ณ  ์‹ถ์€ end product๊ฐ€ ์—ฌ๋Ÿฌ๊ฐœ๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ์œผ๋‹ˆ๊นŒ. ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์˜ˆ๊ฐ€ ์žˆ๊ฒ ๋‹ค.

  • ํ•˜๋‚˜์˜ ํ”„๋กœ์ ํŠธ์—์„œ ํŠน์ • ๋ถ€๋ถ„๋งŒ end product๋กœ ๋นผ๊ณ  ์‹ถ์€ ๊ฒฝ์šฐ
  • Unit Test Target ์„ค์ •

๊ฐ๊ฐ์˜ Target์—์„œ ํ”„๋กœ์ ํŠธ์˜ Build Setting์ด ๊ฐ€๋Šฅํ•˜๋‹ค. ํฌํ•จ๋  ๊ฐ์ฒด, ๋ฆฌ์†Œ์Šค, ์Šคํฌ๋ฆฝํŠธ ๋“ฑ ์—ญ์‹œ ๋”ฐ๋กœ ์„ค์ •์ด ๊ฐ€๋Šฅํ•˜๋‹ค. ์ด๊ฑธ ์• ํ”Œ ๊ณต์‹๋ฌธ์„œ์—์„œ๋Š” instuctions๋ผ ํ•œ๋‹ค.

์ด๊ฒƒ์ด ๊ฐ€๋Šฅํ•œ ์ด์œ ๋Š”, Target์€ Project build setting์„ ์ƒ์†๋ฐ›๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. Project๋ฅผ ๋ˆŒ๋Ÿฌ๋„ Build Setting์ด ์žˆ๊ณ  Target์„ ๋ˆŒ๋Ÿฌ๋„ ์žˆ๋‹ค. ๊ฐ๊ฐ์˜ ๋‹ค๋ฅธ ํƒ€๊ฒŸ์œผ๋กœ ๋ณ€๊ฒฝํ›„ ๋นŒ๋“œ๊ฐ€ ๋˜๋Š” ์ด์œ ๊ฐ€ ์ด๊ฒƒ. ํ•˜์œ„ ์„ค์ •์œผ๋กœ ๊ฐˆ์•„์น˜์šธ ์ˆ˜๊ฐ€ ์žˆ์œผ๋‹ˆ๊นŒ!

Xcode์—์„œ๋Š” Target์„ ํ†ตํ•ด์„œ ํ•˜๋‚˜์˜ ํ”„๋กœ์ ํŠธ๋ฅผ ์—ฌ๋Ÿฌ๊ฐœ์˜ ๋ฐฐํฌํŒ์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ค€๋‹ค. (ex: iPhone์šฉ, iPad์šฉ, ํŠน์ • ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ํฌํ•จ๋œ Target)

์ข…์†์„ฑ ํ•ด๊ฒฐ

Target์€ Product๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๊ฒƒ์ด๋ผ๋Š” ์‚ฌ์‹ค์€ ์ดํ•ดํ–ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ, A๋ผ๋Š” ์ œํ’ˆ์„ ๋งŒ๋“œ๋Š”๋ฐ ์žˆ์–ด ๋‹ค๋ฅธ Target์— ์˜์กดํ•  ์ˆ˜ ์žˆ๋‹ค. ์ฆ‰, B๊ฐ€ ์žˆ์–ด์•ผ A๊ฐ€ ์™„์„ฑ๋˜๋Š” ๊ฒฝ์šฐ๋ฅผ ๋งํ•œ๋‹ค.

Xcode๋Š” ์ด๋Ÿฌํ•œ โ€œ์•”๋ฌต์  ์ข…์†์„ฑ (Implicit dependency)โ€œ๋ฅผ ์•Œ์•„์„œ ๋ฐœ๊ฒฌํ•˜์—ฌ ์ˆœ์„œ๋Œ€๋กœ buildํ•œ๋‹ค.

build setting์—์„œ ๋ช…์‹œ์ ์œผ๋กœ Target ์ข…์†์„ฑ์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋‹ค. ์—ฌ๊ธฐ์„œ๋Š” Xcode๊ฐ€ ์–ด? ์ด๊ฑฐ ์ข…์†์ ์ด๋„ค ํ•˜๋ฉด์„œ ์•”์‹œ์ ์ธ ์ข…์†์„ฑ์„ ์ˆœ์„œ๋Œ€๋กœ ๋นŒ๋“œํ•˜๋Š” ๊ฒฝ์šฐ์—, ์•„๋‹ˆ์•ผ! ๊ทธ๋ ‡๊ฒŒ ํ•˜๋ฉด์•ˆ๋ผ! ์™€ ๊ฐ™์€ ํ–‰์œ„๋„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ํ•œ๋‹ค.

Scheme

Target์ด ํ”„๋กœ์ ํŠธ๋ฅผ Build, Profile, Test ํ•  ๋•Œ, ๋ฐœ์ƒํ•  ์ผ์„ ์ •์˜ํ•˜๋Š” ๊ณณ

์ผ๋ฐ˜์ ์œผ๋กœ Target์€ 1๊ฐœ ์ด์ƒ์˜ Scheme์„ ๊ฐ–๋Š”๋‹ค. ํ”„๋กœ์ ํŠธ ๋นŒ๋“œ์‹œ ์‚ฌ์šฉ๋˜๋Š” ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋‚˜ ์ธ์ž๋ฅผ ๋„˜๊ฒจ์ฃผ๋Š” ์—ญํ• ์„ ํ•œ๋‹ค. ์ฆ‰ ๋Ÿฐํƒ€์ž„์˜ ์ธ์ž๋ฅผ ๋ฐ”๊ฟ”๋„ฃ์„ ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.

Build Configuration

ํ•˜๋‚˜์˜ ํƒ€๊ฒŸ์— ๋Œ€ํ•ด ๋‹ค๋ฅธ configuation์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ

Scheme์€ ํ”„๋กœ์ ํŠธ ๋Ÿฐํƒ€์ž„์—์„œ ์ผ์–ด๋‚  ์ผ์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ํ–ˆ๋‹ค. ์ด๋Ÿฐ ์ ์—์„œ ๋Œ€ํ‘œ์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ๊ฒƒ์ด Build Configuration์ด๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ๋Š” Debug, Release ๋‘๊ฐœ๊ฐ€ ์ƒ์„ฑ๋œ๋‹ค.

์ด๋…€์„์„ ์‹ค์ œ๋กœ ์–ด๋–ป๊ฒŒ ์ ์šฉํ•˜๋Š”์ง€๋Š” ๋‹ค์Œ๊ธ€์—์„œ ์•Œ์•„๋ณด๋„๋ก ํ•˜์ž!

Reference