Upgrade to PRO for Only $50/Yearโ€”Limited-Time Offer! ๐Ÿ”ฅ

[KR] Open-Source Ecosystems

Avatar for Jaewoong Jaewoong
November 15, 2024

[KR] Open-Sourceย Ecosystems

Avatar for Jaewoong

Jaewoong

November 15, 2024
Tweet

More Decks by Jaewoong

Other Decks in Programming

Transcript

  1. G E T S T R E A M .

    I O ์˜คํ”ˆ ์†Œ์Šค ์ƒํƒœ๊ณ„ ๋ฉ”์ปค๋‹ˆ์ฆ˜
  2. G E T S T R E A M .

    I O skydoves @github_skydoves Lead Android Developer Advocate @ Stream ์—„์žฌ์›…
  3. G E T S T R E A M .

    I O ์˜คํ”ˆ ์†Œ์Šค ์ƒํƒœ๊ณ„ ์˜คํ”ˆ ์†Œ์Šค๋ž€?
  4. G E T S T R E A M .

    I O 1. ๋ฉ”์ธํ…Œ์ด๋„ˆ, ์ฃผ ๊ธฐ์—ฌ์ž (Maintainers, Primary Contributors) ์˜คํ”ˆ ์†Œ์Šค์˜ ์ฐฝ์ž‘ํ•˜๊ฑฐ๋‚˜ ํ˜น์€ ์šด์˜ํ•˜๋Š” ์—ญํ•  ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ, ์†Œ๋น„์ž๋กœ๋ถ€ํ„ฐ ๋‹ค์–‘ํ•œ ์‚ฌ์šฉ ์‚ฌ๋ก€์™€ ์‹ค์ œ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์„ ์ˆ˜์ง‘ํ•˜๊ณ , ๋ฉ”์ธํ…Œ์ด๋„ˆ๊ฐ€ ์ง์ ‘ ๊ฒฝํ—˜ํ•˜์ง€ ๋ชปํ•œ ๊ฒฝํ—˜๋“ค๋กœ๋ถ€ํ„ฐ ์ธ์‚ฌ์ดํŠธ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค. ์ด๋Š” ์˜คํ”ˆ ์†Œ์Šค ์œ ์ง€ ๊ด€๋ฆฌ์˜ ๋‹ค์Œ ๋กœ๋“œ๋งต์„ ๊ฒฐ์ •ํ•˜๋Š” ์ค‘์š”ํ•œ ์ง€์นจ์„œ๊ฐ€ ๋œ๋‹ค. ์˜คํ”ˆ ์†Œ์Šค ์ƒํƒœ๊ณ„
  5. G E T S T R E A M .

    I O 1. ๋ฉ”์ธํ…Œ์ด๋„ˆ, ์ฃผ ๊ธฐ์—ฌ์ž (Maintainers, Primary Contributors) ์˜คํ”ˆ ์†Œ์Šค์˜ ์ฐฝ์ž‘ํ•˜๊ฑฐ๋‚˜ ํ˜น์€ ์šด์˜ํ•˜๋Š” ์—ญํ•  ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ, ์†Œ๋น„์ž๋กœ๋ถ€ํ„ฐ ๋‹ค์–‘ํ•œ ์‚ฌ์šฉ ์‚ฌ๋ก€์™€ ์‹ค์ œ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์„ ์ˆ˜์ง‘ํ•˜๊ณ , ๋ฉ”์ธํ…Œ์ด๋„ˆ๊ฐ€ ์ง์ ‘ ๊ฒฝํ—˜ํ•˜์ง€ ๋ชปํ•œ ๊ฒฝํ—˜๋“ค๋กœ๋ถ€ํ„ฐ ์ธ์‚ฌ์ดํŠธ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค. ์ด๋Š” ์˜คํ”ˆ ์†Œ์Šค ์œ ์ง€ ๊ด€๋ฆฌ์˜ ๋‹ค์Œ ๋กœ๋“œ๋งต์„ ๊ฒฐ์ •ํ•˜๋Š” ์ค‘์š”ํ•œ ์ง€์นจ์„œ๊ฐ€ ๋œ๋‹ค. 2. ์†Œ๋น„์ž, 2์ฐจ ๊ธฐ์—ฌ์ž (Consumers, Secondary Contributors) ์†Œ๋น„์ž๋Š” ์กฐ์ง, ๊ฐœ์ธ ๋˜๋Š” ๋‹ค๋ฅธ ์˜คํ”ˆ ์†Œ์Šค ํ”„๋กœ์ ํŠธ์˜ ๊ด€๋ฆฌ์ž๊ฐ€ ๋  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๋ฉ”์ธํ…Œ์ด๋„ˆ ํ˜น์€ ๋‹ค๋ฅธ ์†Œ๋น„์ž์™€ ์†Œํ†ตํ•˜์—ฌ ๊ทธ๋“ค์ด ์ง๋ฉดํ•œ ๋ณต์žกํ•œ ๋ฌธ์ œ์— ๋Œ€ํ•ด ๋…ผ์˜ํ•˜๊ณ , ํ”„๋กœ์ ํŠธ๋ฅผ ๊ฐœ์„ ํ•˜๊ธฐ ์œ„ํ•œ ์ ‘๊ทผ ๋ฐฉ์‹์„ ์ œ์•ˆํ•˜๋Š” ํ˜•ํƒœ๋กœ ๊ธฐ์—ฌํ•œ๋‹ค. ์†Œ๋น„์ž๋“ค์ด ์ œ๊ธฐํ•˜๋Š” ํ† ๋ก ๊ณผ ํ”ผ๋“œ๋ฐฑ์€ ํ”„๋กœ์ ํŠธ์— ์ฝ”๋“œ๋ฅผ ์ง์ ‘์ ์œผ๋กœ ๊ธฐ์—ฌํ•˜์ง€ ์•Š๋”๋ผ๋„ ๋ฉ”์ธํ…Œ์ด๋„ˆ์—๊ฒŒ ๋งค์šฐ ์ค‘์š”ํ•œ ์ •๋ณด๋กœ ์ž‘์šฉํ•œ๋‹ค. ์˜คํ”ˆ ์†Œ์Šค ์ƒํƒœ๊ณ„
  6. G E T S T R E A M .

    I O 1. ๋ฉ”์ธํ…Œ์ด๋„ˆ, ์ฃผ ๊ธฐ์—ฌ์ž (Maintainers, Primary Contributors) ์˜คํ”ˆ ์†Œ์Šค์˜ ์ฐฝ์ž‘ํ•˜๊ฑฐ๋‚˜ ํ˜น์€ ์šด์˜ํ•˜๋Š” ์—ญํ•  ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ, ์†Œ๋น„์ž๋กœ๋ถ€ํ„ฐ ๋‹ค์–‘ํ•œ ์‚ฌ์šฉ ์‚ฌ๋ก€์™€ ์‹ค์ œ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์„ ์ˆ˜์ง‘ํ•˜๊ณ , ๋ฉ”์ธํ…Œ์ด๋„ˆ๊ฐ€ ์ง์ ‘ ๊ฒฝํ—˜ํ•˜์ง€ ๋ชปํ•œ ๊ฒฝํ—˜๋“ค๋กœ๋ถ€ํ„ฐ ์ธ์‚ฌ์ดํŠธ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค. ์ด๋Š” ์˜คํ”ˆ ์†Œ์Šค ์œ ์ง€ ๊ด€๋ฆฌ์˜ ๋‹ค์Œ ๋กœ๋“œ๋งต์„ ๊ฒฐ์ •ํ•˜๋Š” ์ค‘์š”ํ•œ ์ง€์นจ์„œ๊ฐ€ ๋œ๋‹ค. 2. ์†Œ๋น„์ž, 2์ฐจ ๊ธฐ์—ฌ์ž (Consumers, Secondary Contributors) ์†Œ๋น„์ž๋Š” ์กฐ์ง, ๊ฐœ์ธ ๋˜๋Š” ๋‹ค๋ฅธ ์˜คํ”ˆ ์†Œ์Šค ํ”„๋กœ์ ํŠธ์˜ ๊ด€๋ฆฌ์ž๊ฐ€ ๋  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๋ฉ”์ธํ…Œ์ด๋„ˆ ํ˜น์€ ๋‹ค๋ฅธ ์†Œ๋น„์ž์™€ ์†Œํ†ตํ•˜์—ฌ ๊ทธ๋“ค์ด ์ง๋ฉดํ•œ ๋ณต์žกํ•œ ๋ฌธ์ œ์— ๋Œ€ํ•ด ๋…ผ์˜ํ•˜๊ณ , ํ”„๋กœ์ ํŠธ๋ฅผ ๊ฐœ์„ ํ•˜๊ธฐ ์œ„ํ•œ ์ ‘๊ทผ ๋ฐฉ์‹์„ ์ œ์•ˆํ•˜๋Š” ํ˜•ํƒœ๋กœ ๊ธฐ์—ฌํ•œ๋‹ค. ์†Œ๋น„์ž๋“ค์ด ์ œ๊ธฐํ•˜๋Š” ํ† ๋ก ๊ณผ ํ”ผ๋“œ๋ฐฑ์€ ํ”„๋กœ์ ํŠธ์— ์ฝ”๋“œ๋ฅผ ์ง์ ‘์ ์œผ๋กœ ๊ธฐ์—ฌํ•˜์ง€ ์•Š๋”๋ผ๋„ ๋ฉ”์ธํ…Œ์ด๋„ˆ์—๊ฒŒ ๋งค์šฐ ์ค‘์š”ํ•œ ์ •๋ณด๋กœ ์ž‘์šฉํ•œ๋‹ค. 3. ์ž ์žฌ์  ์†Œ๋น„์ž (Potential Consumers) ์˜คํ”ˆ ์†Œ์Šค ์ปค๋ฎค๋‹ˆํ‹ฐ๋Š” ์ž ์žฌ ์†Œ๋น„์ž๋ฅผ ์œ„ํ•œ ํ›Œ๋ฅญํ•œ ์ฐธ๊ณ ์„œ ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค. ์ด์Šˆ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์†”๋ฃจ์…˜์ด ํ•„์š”ํ•œ ๊ฐœ๋ฐœ์ž๋“ค์€ ์ปค๋ฎค๋‹ˆํ‹ฐ ๋‚ด์—์„œ ํ•ด๋‹น ์†”๋ฃจ์…˜์˜ ์‚ฌ์šฉ ์‚ฌ๋ก€์™€ ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์ •๋ณด๋ฅผ ํƒ์ƒ‰ํ•˜์—ฌ, ํ”„๋กœ์ ํŠธ์˜ ํ˜ธํ™˜์„ฑ์„ ์ ๊ฒ€ํ•˜๊ณ  ๋ณธ์ธ๋“ค์˜ ์š”๊ตฌ ์‚ฌํ•ญ์— ๋ถ€ํ•ฉ ํ•œ์ง€ ํ‰๊ฐ€ํ•œ๋‹ค. ํ™œ๋ฐœํ•œ ์ปค๋ฎค๋‹ˆํ‹ฐ๋Š” ์†”๋ฃจ์…˜์ด ์žฅ๊ธฐ์ ์ธ ์š”๊ตฌ ์‚ฌํ•ญ์— ์ ํ•ฉํ•œ์ง€ ํ‰๊ฐ€ ์‹œ ์ž ์žฌ ์†Œ๋น„์ž์—๊ฒŒ ๊ฐ•๋ ฅํ•œ ์ง€ํ‘œ ์—ญํ• ์„ ํ•œ๋‹ค. ์˜คํ”ˆ ์†Œ์Šค ์ƒํƒœ๊ณ„
  7. G E T S T R E A M .

    I O ์ฒซ ๋ฒˆ์งธ ๊ธฐ์—ฌํ•˜๊ธฐ
  8. G E T S T R E A M .

    I O ๊ณต๊ฐœ ๊ณตํฌ์ฆ ๊ณต๊ฐœ ๊ณตํฌ์ฆ ๊ทน๋ณตํ•˜๊ธฐ โ€ข ์˜คํ”ˆ ์†Œ์Šค์— ์ฒ˜์Œ ๊ธฐ์—ฌํ•˜๊ฒŒ ๋˜๋Š” ๊ฒฝ์šฐ ๋ˆ„๊ตฌ๋‚˜ ํ•œ ๋ฒˆ์ฏค์€ ์ง๋ฉดํ•˜๊ฒŒ ๋˜๋Š” ๊ณตํฌ์ฆ์ด๋ฉฐ, ๋ณธ์ธ์˜ ์ฝ”๋“œ๋‚˜ ์˜๊ฒฌ์ด ๋ณธ์ธ์˜ ๊ฐœ๋ฐœ ๋Šฅ๋ ฅ ํ˜น์€ ์ „๋ฐ˜์ ์ธ ๊ฒฝ๋ ฅ ๋“ฑ์„ ๋Œ€๋ณ€ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์šฐ๋ ค์—์„œ ๋ฐœ์ƒํ•œ๋‹ค.
  9. G E T S T R E A M .

    I O ๊ณต๊ฐœ ๊ณตํฌ์ฆ ๊ทน๋ณตํ•˜๊ธฐ โ€ข ์˜คํ”ˆ ์†Œ์Šค์— ์ฒ˜์Œ ๊ธฐ์—ฌํ•˜๊ฒŒ ๋˜๋Š” ๊ฒฝ์šฐ ๋ˆ„๊ตฌ๋‚˜ ํ•œ ๋ฒˆ์ฏค์€ ์ง๋ฉดํ•˜๊ฒŒ ๋˜๋Š” ๊ณตํฌ์ฆ์ด๋ฉฐ, ๋ณธ์ธ์˜ ์ฝ”๋“œ๋‚˜ ์˜๊ฒฌ์ด ๋ณธ์ธ์˜ ๊ฐœ๋ฐœ ๋Šฅ๋ ฅ ํ˜น์€ ์ „๋ฐ˜์ ์ธ ๊ฒฝ๋ ฅ ๋“ฑ์„ ๋Œ€๋ณ€ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์šฐ๋ ค์—์„œ ๋ฐœ์ƒํ•œ๋‹ค. โ€ข ์™„๋ฒฝํ•˜๊ธฐ ์œ„ํ•ด ๋…ธ๋ ฅํ•  ํ•„์š”๊ฐ€ ์—†๋‹ค. ์„ธ๊ณ„์ ์œผ๋กœ ์•Œ๋ ค์ง„ ๋น… ํ…Œํฌ ํšŒ์‚ฌ์™€ ์œ ๋ช…ํ•œ ์กฐ์ง์—์„œ๋„ ์ˆ˜๋งŽ์€ ์˜ค๋ฅ˜์™€ ์‹ค์ˆ˜๋ฅผ ๋ฒ”ํ•˜๊ณ  ์žˆ๋‹ค. ๊ณต๊ฐœ ๊ณตํฌ์ฆ
  10. G E T S T R E A M .

    I O ๊ณต๊ฐœ ๊ณตํฌ์ฆ ๊ทน๋ณตํ•˜๊ธฐ โ€ข ์˜คํ”ˆ ์†Œ์Šค์— ์ฒ˜์Œ ๊ธฐ์—ฌํ•˜๊ฒŒ ๋˜๋Š” ๊ฒฝ์šฐ ๋ˆ„๊ตฌ๋‚˜ ํ•œ ๋ฒˆ์ฏค์€ ์ง๋ฉดํ•˜๊ฒŒ ๋˜๋Š” ๊ณตํฌ์ฆ์ด๋ฉฐ, ๋ณธ์ธ์˜ ์ฝ”๋“œ๋‚˜ ์˜๊ฒฌ์ด ๋ณธ์ธ์˜ ๊ฐœ๋ฐœ ๋Šฅ๋ ฅ ํ˜น์€ ์ „๋ฐ˜์ ์ธ ๊ฒฝ๋ ฅ ๋“ฑ์„ ๋Œ€๋ณ€ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์šฐ๋ ค์—์„œ ๋ฐœ์ƒํ•œ๋‹ค. โ€ข ์™„๋ฒฝํ•˜๊ธฐ ์œ„ํ•ด ๋…ธ๋ ฅํ•  ํ•„์š”๊ฐ€ ์—†๋‹ค. ์„ธ๊ณ„์ ์œผ๋กœ ์•Œ๋ ค์ง„ ๋น… ํ…Œํฌ ํšŒ์‚ฌ์™€ ์œ ๋ช…ํ•œ ์กฐ์ง์—์„œ๋„ ์ˆ˜๋งŽ์€ ์˜ค๋ฅ˜์™€ ์‹ค์ˆ˜๋ฅผ ๋ฒ”ํ•˜๊ณ  ์žˆ๋‹ค. โ€ข ์˜คํ”ˆ ์†Œ์Šค ํ™œ๋™์„ ํ†ตํ•ด์„œ ์ „ ์„ธ๊ณ„์ ์ธ ์—”์ง€๋‹ˆ์–ด๋“ค๊ณผ ํ˜‘๋ ฅํ•˜๋ฉด์„œ ๊ท€์ค‘ํ•œ ๊ฒฝํ—˜์„ ์–ป์„ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ถฉ๋ถ„ํžˆ ์ด๊ฒจ๋‚ผ ๊ฐ€์น˜๊ฐ€ ์žˆ๋Š” ์ฆ์ƒ์ด๋ฉฐ, ์ด๋ฅผ ํ†ตํ•ด ๋ฌดํ•œํžˆ ์„ฑ์žฅํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐํšŒ๋กœ ์‚ผ์„ ์ˆ˜ ์žˆ๋‹ค. ๊ณต๊ฐœ ๊ณตํฌ์ฆ
  11. G E T S T R E A M .

    I O ์ฒซ ๋ฒˆ์งธ ๊ธฐ์—ฌ โ€ข ํ™˜์ƒ์ ์ธ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๊ฑฐ๋‚˜ ํ”„๋กœ์ ํŠธ์˜ ์ „๋ฐ˜์ ์ธ ์•„ํ‚คํ…์ฒ˜๋ฅผ ํ›Œ๋ฅญํ•˜๊ฒŒ ๊ฐœ์„ ํ•˜๊ณ  ๋ฒ„๊ทธ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๊ฒƒ๋งŒ ๊ธฐ์—ฌ์— ์†ํ•˜๋Š” ๊ฒƒ์€ ์•„๋‹ˆ๋‹ค. โ€ข ์˜คํ”ˆ ์†Œ์Šค ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด์„œ ์ง๋ฉดํ•œ ๋ฒ„๊ทธ๋ฅผ ์ œ๋ณดํ•˜๊ฑฐ๋‚˜, ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์„ ํ–ฅ์ƒ์‹œํ‚ค๊ธฐ ์œ„ํ•œ ์ œ์•ˆ ๋˜ํ•œ ์˜คํ”ˆ ์†Œ์Šค ์ปค๋ฎค๋‹ˆํ‹ฐ์— ๊ธฐ์—ฌํ•˜๋Š” ๊ฒƒ์ด๋‹ค. โ€ข ์˜คํƒˆ์ž ์ˆ˜์ • ๋ฐ ๋ฒˆ์—ญ ๋“ฑ ๋ฌธ์„œ๋ฅผ ํ–ฅ์ƒ ์‹œํ‚ค๋Š” ๊ฒƒ๋„ ์˜คํ”ˆ ์†Œ์Šค ๊ธฐ์—ฌ์— ์†ํ•œ๋‹ค.
  12. G E T S T R E A M .

    I O โ€ข ๋ณธ์ธ์ด ๊ฐœ๋ฐœ ์ค‘์ธ ์ œํ’ˆ์˜ ์ด๋ฆ„, ํ”„๋กœ์ ํŠธ ๋‚ด๋ถ€์—์„œ์˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํ™œ์šฉ ์‚ฌ๋ก€ ๋“ฑ๊ณผ ๊ฐ™์€ ์„ธ๋ถ€ ์ •๋ณด์™€ ํ•จ๊ป˜ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์„ ๊ณต์œ  ํ•˜๋Š” ๊ฒƒ ๋˜ํ•œ ๋ฉ”์ธํ…Œ์ด๋„ˆ์—๊ฒŒ ๊ท€ํ•œ ์ธ์‚ฌ์ดํŠธ๋ฅผ ์ œ๊ณตํ•˜๊ณ  ์˜คํ”ˆ ์†Œ์Šค ์ƒํƒœ๊ณ„์— ๊ธฐ์—ฌํ•˜๋Š” ๊ฒƒ์ด๋‹ค. โ€ข ์กฐ์ง ๋‚ด์—์„œ ์‚ฌ์šฉํ•˜๋Š” ์˜คํ”ˆ ์†Œ์Šค ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ชฉ๋ก์„ ์ž‘์„ฑํ•˜๊ณ  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋‚ด์—์„œ ํ•ด๋‹น ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋“ค์˜ ๋ผ์ด์„ ์Šค๋ฅผ ํˆฌ๋ช…ํ•˜๊ฒŒ ๊ณต๊ฐœํ•˜๋Š” ๊ฒƒ ๋˜ํ•œ ์˜คํ”ˆ ์†Œ์Šค ์ปค๋ฎค๋‹ˆํ‹ฐ์— ๊ธฐ์—ฌํ•˜๋Š” ๋˜ ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์— ์†ํ•œ๋‹ค. ์ฒซ ๋ฒˆ์งธ ๊ธฐ์—ฌ
  13. G E T S T R E A M .

    I O ์ฝ”๋“œ ํˆฌ๋ช…์„ฑ ์ฝ”๋“œ ํˆฌ๋ช…์„ฑ์— ์ต์ˆ™ํ•ด์ง€๊ธฐ โ€ข ์ฝ”๋“œ์˜ ๊ณต๊ฐœ๋ฅผ ์ฃผ์ €ํ•˜๊ฒŒ ๋˜๋Š” ๋˜ ํ•˜๋‚˜์˜ ์ด์œ ๋Š” ๋ณธ์ธ์˜ ์ฝ”๋“œ๊ฐ€ ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์— ์˜ํ•ด ํ‰๊ฐ€๋˜๋Š” ๊ฒƒ์— ๋Œ€ํ•œ ๋‘๋ ค์›€์ด๋‚˜, ๋‹ค๋ฅธ ๊ฐœ๋ฐœ์ž๋“ค๋กœ๋ถ€ํ„ฐ ๋งค๋ชฐ์ฐฌ ํ”ผ๋“œ๋ฐฑ์„ ๋ฐ›์„ ๊ฐ€์„ฑ๋Šฅ ๋•Œ๋ฌธ์ธ ๊ฒฝ์šฐ๊ฐ€ ๋งŽ๋‹ค.
  14. G E T S T R E A M .

    I O ์ฝ”๋“œ ํˆฌ๋ช…์„ฑ์— ์ต์ˆ™ํ•ด์ง€๊ธฐ โ€ข ์ฝ”๋“œ์˜ ๊ณต๊ฐœ๋ฅผ ์ฃผ์ €ํ•˜๊ฒŒ ๋˜๋Š” ๋˜ ํ•˜๋‚˜์˜ ์ด์œ ๋Š” ๋ณธ์ธ์˜ ์ฝ”๋“œ๊ฐ€ ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์— ์˜ํ•ด ํ‰๊ฐ€๋˜๋Š” ๊ฒƒ์— ๋Œ€ํ•œ ๋‘๋ ค์›€์ด๋‚˜, ๋‹ค๋ฅธ ๊ฐœ๋ฐœ์ž๋“ค๋กœ๋ถ€ํ„ฐ ๋งค๋ชฐ์ฐฌ ํ”ผ๋“œ๋ฐฑ์„ ๋ฐ›์„ ๊ฐ€์„ฑ๋Šฅ ๋•Œ๋ฌธ์ธ ๊ฒฝ์šฐ๊ฐ€ ๋งŽ๋‹ค. โ€ข ๋งŒ์•ฝ ์–ด๋–ค ๊ฐœ๋ฐœ์ž๊ฐ€ ์‹œ๊ฐ„์„ ๋‚ด์–ด ํ”ผ๋“œ๋ฐฑ์„ ๋‚จ๊ธฐ๊ฑฐ๋‚˜ ์ฝ”๋“œ์˜ ๋ฌธ์ œ์ ์„ ์ง€์ ํ•œ๋‹ค๋ฉด ์˜คํžˆ๋ ค ์ด๋ฅผ ์ข‹์€ ๊ธฐํšŒ๋กœ ์ƒ๊ฐํ•ด๋ณผ ์ˆ˜ ์žˆ๋‹ค. ์ฝ”๋“œ ํˆฌ๋ช…์„ฑ
  15. G E T S T R E A M .

    I O ์ฝ”๋“œ ํˆฌ๋ช…์„ฑ์— ์ต์ˆ™ํ•ด์ง€๊ธฐ โ€ข ์ฝ”๋“œ์˜ ๊ณต๊ฐœ๋ฅผ ์ฃผ์ €ํ•˜๊ฒŒ ๋˜๋Š” ๋˜ ํ•˜๋‚˜์˜ ์ด์œ ๋Š” ๋ณธ์ธ์˜ ์ฝ”๋“œ๊ฐ€ ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์— ์˜ํ•ด ํ‰๊ฐ€๋˜๋Š” ๊ฒƒ์— ๋Œ€ํ•œ ๋‘๋ ค์›€์ด๋‚˜, ๋‹ค๋ฅธ ๊ฐœ๋ฐœ์ž๋“ค๋กœ๋ถ€ํ„ฐ ๋งค๋ชฐ์ฐฌ ํ”ผ๋“œ๋ฐฑ์„ ๋ฐ›์„ ๊ฐ€์„ฑ๋Šฅ ๋•Œ๋ฌธ์ธ ๊ฒฝ์šฐ๊ฐ€ ๋งŽ๋‹ค. โ€ข ๋งŒ์•ฝ ์–ด๋–ค ๊ฐœ๋ฐœ์ž๊ฐ€ ์‹œ๊ฐ„์„ ๋‚ด์–ด ํ”ผ๋“œ๋ฐฑ์„ ๋‚จ๊ธฐ๊ฑฐ๋‚˜ ์ฝ”๋“œ์˜ ๋ฌธ์ œ์ ์„ ์ง€์ ํ•œ๋‹ค๋ฉด ์˜คํžˆ๋ ค ์ด๋ฅผ ์ข‹์€ ๊ธฐํšŒ๋กœ ์ƒ๊ฐํ•ด๋ณผ ์ˆ˜ ์žˆ๋‹ค. โ€ข ์ฝ”๋“œ๋ฅผ ์ด๋ฏธ GitHub์— ๊ณต๊ฐœํ–ˆ๋‹ค๋ฉด ์นœ๊ตฌ, ๋™๋ฃŒ ๊ฐœ๋ฐœ์ž ๋ฐ ๋‹ค์–‘ํ•œ ์ปค๋ฎค๋‹ˆํ‹ฐ์— ๊ณต์œ ํ•˜๊ณ  ํ”ผ๋“œ๋ฐฑ์„ ๋ฐ›์•„๋ณด๋Š” ๊ฒƒ ๋˜ํ•œ ๋‚˜์˜ ์„ฑ์žฅ ๋ฐ ์˜คํ”ˆ ์†Œ์Šค ํ”„๋กœ์ ํŠธ์˜ ์„ฑ์žฅ์„ ์œ„ํ•ด ๋งŽ์€ ๋„์›€์ด ๋œ๋‹ค. ์ฝ”๋“œ ํˆฌ๋ช…์„ฑ
  16. G E T S T R E A M .

    I O ์˜คํ”ˆ ์†Œ์Šค ๋ผ์ดํ”„ ์‚ฌ์ดํด
  17. G E T S T R E A M .

    I O 1. ์„ค๊ณ„ (Design) ์•„์ด๋””์–ด๋ฅผ ์ฒญ์‚ฌ์ง„์œผ๋กœ ์˜ฎ๊ธฐ๊ณ  ํ”„๋กœ์ ํŠธ์˜ ์‹คํ–‰ ๊ฐ€๋Šฅ์„ฑ์„ ๊ฒ€์ฆํ•˜๋Š” ๋‹จ๊ณ„์ด๋‹ค. ๋ผ์ดํ”„์‚ฌ์ดํด์—์„œ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๋‹จ๊ณ„๋กœ, ์‹ค์งˆ์ ์ธ ์˜คํ”ˆ ์†Œ์Šค ์„ค๊ณ„๊ณผ ๊ธฐํš์ด ์ดํ›„ ๋‹จ๊ณ„์—์„œ ์š”๊ตฌ๋˜๋Š” ๋ฆฌ์†Œ์Šค๋ฅผ ์ค„์ด๋Š”๋ฐ ํฐ ์—ญํ• ์„ ํ•œ๋‹ค. ๊ตฌ์ฒด์ ์ธ ์ŠคํŽ™์„ ๊ตฌํ˜„ํ•˜๊ธฐ ์ „์— APIs (Application Programming Interfaces)๋ฅผ ๋ฏธ๋ฆฌ ์„ค๊ณ„ํ•˜๋Š” ๊ฒฝ์šฐ ๊ฐœ๋ฐœ ๋‹จ๊ณ„์˜ ๋ถ€๋‹ด์„ ํฌ๊ฒŒ ์ค„์ผ ์ˆ˜ ์žˆ๋‹ค. 2. ๊ฐœ๋ฐœ (Development) ๊ธฐ์ˆ ๊ณผ ๊ฐ€์žฅ ๋ฐ€์ ‘ํ•œ ๊ด€๋ จ์ด ์žˆ๋Š” ๊ฐœ๋ฐœ ๋‹จ๊ณ„๋Š”, '๊ตฌํ˜„' ๋ฐ 'ํ…Œ์ŠคํŠธ'๋กœ ์„ธ๋ถ„ํ™”ํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ตฌํ˜„์€ ์„ค๊ณ„ ๋‹จ๊ณ„์—์„œ ๋ฏธ๋ฆฌ ์ •์˜ํ•ด ๋†“์•˜๋˜ ์ŠคํŽ™์— ๋”ฐ๋ผ ํ•ต์‹ฌ ๊ธฐ๋Šฅ์„ ๊ฐœ๋ฐœํ•œ๋‹ค. ์ด ๋‹จ๊ณ„์—์„œ API ์„ค๊ณ„๋‚˜ ๊ฐœ๋ฐœ ๋ฐฉ์‹์€ ์ƒˆ๋กœ์šด ์ธ์‚ฌ์ดํŠธ๋‚˜ ์ ‘๊ทผ ๋ฒ•์— ๋”ฐ๋ผ ์–ธ์ œ๋“ ์ง€ ๋ณ€๊ฒฝ๋  ์ˆ˜ ์žˆ๋‹ค. 3. ์ค€๋น„ (Preparation) API๊ฐ€ ์–ด๋А ์ •๋„ ํ…Œ์ŠคํŠธ ๋˜์—ˆ๋‹ค๋ฉด, ํ•ด๋‹น API๋ฅผ public repository์— ์ถœ์‹œํ•˜๊ธฐ ์œ„ํ•œ ์ค€๋น„๊ฐ€ ํ•„์š”ํ•˜๋‹ค. API์— ๋Œ€ํ•œ ๊ฐ€์ด๋“œ ๋ฌธ์„œ ํ˜น์€ README ํŒŒ์ผ์„ ํฌํ•จํ•œ ํฌ๊ด„์ ์ธ ์˜คํ”ˆ ์†Œ์Šค์— ๋Œ€ํ•œ ๋ชฉ์ ๊ณผ API ์„ธ๋ถ€์‚ฌํ•ญ์„ ์ œ๊ณตํ•จ์œผ๋กœ์จ ์†Œ๋น„์ž๋“ค๊ณผ ์ƒํ˜ธ ์ž‘์šฉํ•˜๊ธฐ ์œ„ํ•œ ์ค€๋น„ ๋‹จ๊ณ„์ด๋‹ค. 4. ๋ฐฐํฌ (Release) ์˜คํ”ˆ ์†Œ์Šค ์ถœ์‹œ ๋ฐ ๋ฐฐํฌ๊ฐ€ ์ค€๋น„๊ฐ€ ๋œ ๊ฒฝ์šฐ, ์ด์ œ ํ•ด๋‹น ํŒจํ‚ค์ง€๋ฅผ ๊ณต๊ฐœ ์ €์žฅ์†Œ์— ๊ฒŒ์‹œํ•˜์—ฌ ์‚ฌ์šฉ์ž๊ฐ€ ์‰ฝ๊ฒŒ ์•ก์„ธ์Šค ํ•˜๊ณ  ํ”„๋กœ์ ํŠธ์— ํ†ตํ•ฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•œ๋‹ค. ์˜คํ”ˆ ์†Œ์Šค ๋ผ์ดํ”„ ์‚ฌ์ดํด
  18. G E T S T R E A M .

    I O ์„ค๊ณ„ ๊ฐœ๋ฐœ ์ค€๋น„ ์ถœ์‹œ ์˜คํ”ˆ ์†Œ์Šค ๋ผ์ดํ”„ ์‚ฌ์ดํด
  19. G E T S T R E A M .

    I O ์˜คํ”ˆ ์†Œ์Šค ๋ผ์ดํ”„ ์‚ฌ์ดํด Design process 1. Define the problem
  20. G E T S T R E A M .

    I O 2. Research and explore initial ideas ์˜คํ”ˆ ์†Œ์Šค ๋ผ์ดํ”„ ์‚ฌ์ดํด Design process
  21. G E T S T R E A M .

    I O 3. Access the feasibility of each idea ์˜คํ”ˆ ์†Œ์Šค ๋ผ์ดํ”„ ์‚ฌ์ดํด Design process
  22. G E T S T R E A M .

    I O 4. Identify and investigate dependencies ์˜คํ”ˆ ์†Œ์Šค ๋ผ์ดํ”„ ์‚ฌ์ดํด Design process
  23. G E T S T R E A M .

    I O 5. Create blueprints and Design for application interfaces ์˜คํ”ˆ ์†Œ์Šค ๋ผ์ดํ”„ ์‚ฌ์ดํด Design process
  24. G E T S T R E A M .

    I O ์„ค๊ณ„ ๊ฐœ๋ฐœ ์ค€๋น„ ์ถœ์‹œ ์˜คํ”ˆ ์†Œ์Šค ๋ผ์ดํ”„ ์‚ฌ์ดํด
  25. G E T S T R E A M .

    I O ์˜คํ”ˆ ์†Œ์Šค ๋ผ์ดํ”„ ์‚ฌ์ดํด Development process ๊ฐœ๋ฐœ ํ”„๋กœ์„ธ์Šค โ€ข ์‹ค์ œ ๊ตฌํ˜„ ๊ณผ์ •์—์„œ ์ƒˆ๋กœ์šด ์ธ์‚ฌ์ดํŠธ๋‚˜ ์ ‘๊ทผ๋ฒ•์— ๋”ฐ๋ผ API ์„ค๊ณ„๋Š” ์–ธ์ œ๋“ ์ง€ ๋ณ€๊ฒฝ๋  ์—ฌ์ง€๊ฐ€ ์žˆ๋‹ค. โ€ข ๋‹ค๋ฅธ ํ”„๋กœ์ ํŠธ์™€์˜ integration test ํ˜น์€ unit test ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜์—ฌ ํ•ต์‹ฌ ๊ตฌํ˜„์ด ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ๋™์ž‘ํ•˜๋Š”์ง€ ๊ฒ€์ฆํ•œ๋‹ค. โ€ข ์™ธ๋ถ€๋กœ ๋“œ๋Ÿฌ๋‚˜๋Š” API ํ‘œ๋ฉด์„ ์ตœ์†Œํ™”ํ•˜์—ฌ, ์™ธ๋ถ€์—์„œ ๊ฐ–๊ฒŒ ๋˜๋Š” API ์˜์กด์„ฑ ๋ฉด์ ์„ ์ค„์ธ๋‹ค. ์ด์— ์ต์ˆ™ํ•˜์ง€ ์•Š์€ ๊ฐœ๋ฐœ์ž๋Š” ์ง€์†์ ์œผ๋กœ ์ฝ”๋“œ๋ฅผ ๋ฆฌํŒฉํ† ๋งํ•˜๊ณ  ๊ฐˆ๋ฌด๋ฆฌํ•˜๋Š” ์‹œ๊ฐ„์„ ๊ฐ€์ง€๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.
  26. G E T S T R E A M .

    I O ์˜คํ”ˆ ์†Œ์Šค ๋ผ์ดํ”„ ์‚ฌ์ดํด Development process
  27. G E T S T R E A M .

    I O Client Client Client Client ์˜คํ”ˆ ์†Œ์Šค ๋ผ์ดํ”„ ์‚ฌ์ดํด Development process
  28. G E T S T R E A M .

    I O Client Client Client Client ์˜คํ”ˆ ์†Œ์Šค ๋ผ์ดํ”„ ์‚ฌ์ดํด Development process
  29. G E T S T R E A M .

    I O Client Client Client Client ์˜คํ”ˆ ์†Œ์Šค ๋ผ์ดํ”„ ์‚ฌ์ดํด Development process
  30. G E T S T R E A M .

    I O Public Internal ์˜คํ”ˆ ์†Œ์Šค ๋ผ์ดํ”„ ์‚ฌ์ดํด Development process
  31. G E T S T R E A M .

    I O Client Client Client Client Public Internal ์˜คํ”ˆ ์†Œ์Šค ๋ผ์ดํ”„ ์‚ฌ์ดํด Development process
  32. G E T S T R E A M .

    I O Client Client Client Client ์˜คํ”ˆ ์†Œ์Šค ๋ผ์ดํ”„ ์‚ฌ์ดํด Development process
  33. G E T S T R E A M .

    I O Client Client Client Client ์˜คํ”ˆ ์†Œ์Šค ๋ผ์ดํ”„ ์‚ฌ์ดํด Development process
  34. G E T S T R E A M .

    I O ์˜คํ”ˆ ์†Œ์Šค ๋ผ์ดํ”„ ์‚ฌ์ดํด Development process
  35. G E T S T R E A M .

    I O :app :library :material ๎‚MDC๎‚‚ implementation implementation ์˜คํ”ˆ ์†Œ์Šค ๋ผ์ดํ”„ ์‚ฌ์ดํด Development process
  36. G E T S T R E A M .

    I O :app :library :material ๎‚MDC๎‚‚ com.google.android.material.R (:material) implementation implementation ์˜คํ”ˆ ์†Œ์Šค ๋ผ์ดํ”„ ์‚ฌ์ดํด Development process
  37. G E T S T R E A M .

    I O :app :library :material ๎‚MDC๎‚‚ com.my.library.R (:material) (:library) com.google.android.material.R (:material) implementation implementation ์˜คํ”ˆ ์†Œ์Šค ๋ผ์ดํ”„ ์‚ฌ์ดํด Development process
  38. G E T S T R E A M .

    I O :app :library :material ๎‚MDC๎‚‚ com.my.library.R (:material) (:library) com.google.android.material.R (:material) com.my.app.R (:material) (:library) (:app) implementation implementation ์˜คํ”ˆ ์†Œ์Šค ๋ผ์ดํ”„ ์‚ฌ์ดํด Development process
  39. G E T S T R E A M .

    I O :app :library :material ๎‚MDC๎‚‚ Transitive dependency com.my.library.R (:material) (:library) com.google.android.material.R (:material) com.my.app.R (:material) (:library) (:app) implementation implementation ์˜คํ”ˆ ์†Œ์Šค ๋ผ์ดํ”„ ์‚ฌ์ดํด Development process
  40. G E T S T R E A M .

    I O com.my.library.R (:material) (:library) ์˜คํ”ˆ ์†Œ์Šค ๋ผ์ดํ”„ ์‚ฌ์ดํด Development process
  41. G E T S T R E A M .

    I O ์˜คํ”ˆ ์†Œ์Šค ๋ผ์ดํ”„ ์‚ฌ์ดํด Development process
  42. G E T S T R E A M .

    I O :app :library :material ๎‚MDC๎‚‚ implementation implementation com.my.library.R (:material) (:library) com.google.android.material.R (:material) com.my.app.R (:material) (:library) (:app) Wow, a million lines of code in R classes in a minute! ์˜คํ”ˆ ์†Œ์Šค ๋ผ์ดํ”„ ์‚ฌ์ดํด Development process
  43. G E T S T R E A M .

    I O Dex format has 64K limit for methods and fields references! 64K ๎‚65,536 ๎‚› 64 ๎‚Ÿ 1024 ๎‚2^10๎‚‚๎‚‚ ์˜คํ”ˆ ์†Œ์Šค ๋ผ์ดํ”„ ์‚ฌ์ดํด Development process
  44. G E T S T R E A M .

    I O Image: Elye ์˜คํ”ˆ ์†Œ์Šค ๋ผ์ดํ”„ ์‚ฌ์ดํด Development process
  45. G E T S T R E A M .

    I O ์„ค๊ณ„ ๊ฐœ๋ฐœ ์ค€๋น„ ์ถœ์‹œ ์˜คํ”ˆ ์†Œ์Šค ๋ผ์ดํ”„ ์‚ฌ์ดํด
  46. G E T S T R E A M .

    I O ์˜คํ”ˆ ์†Œ์Šค ๋ผ์ดํ”„ ์‚ฌ์ดํด Preparation process API ์ฝ”๋“œ ์ฃผ์„ ๊ตฌ์ฒดํ™” โ€ข B2C ์„œ๋น„์Šค ์•ฑ ๊ฐœ๋ฐœ๊ณผ๋Š” ๋‹ค๋ฅด๊ฒŒ API์˜ ๊ฒฝ์šฐ ๋งŽ์€ ๊ฐœ๋ฐœ์ž๋“ค์ด ๊ฐœ๋ฐœ ์‹œ ์ฐธ๊ณ ํ•ด์•ผ ํ•˜๋Š” ์ธํ„ฐํŽ˜์ด์Šค๊ธฐ ๋•Œ๋ฌธ์— ๊ณผํ•˜๋‹ค ์‹ถ์„ ์ •๋„์˜ ์ฃผ์„๋„ OK. โ€ข ๋ณธ์ธ์ด ์‚ฌ์šฉํ•˜๋Š” ์–ธ์–ด์— ๋งž๋Š” ์ฃผ์„ syntax๋ฅผ ๋ณ„๋„๋กœ ํ•™์Šตํ•˜๋Š” ๊ฒƒ๋„ ๊ถŒ์žฅ.
  47. G E T S T R E A M .

    I O API ๋ฌธ์„œ ์—”์ง„์„ ํ†ตํ•œ ํŽ˜์ด์ง€ ์ œ๊ณต โ€ข Public interface์— ํ•œํ•ด์„œ API ๋ฌธ์„œ ์—”์ง„์„ ํ†ตํ•ด ์™ธ๋ถ€๋กœ ๋…ธ์ถœ๋œ API ์ŠคํŽ™์„ ์ž๋™์œผ๋กœ ๋ฌธ์„œํ™”ํ•˜์—ฌ GitHub pages์— ์—…๋กœ๋“œํ•˜๋Š” ๊ฒƒ๋„ ์ข‹์€ ๋ฐฉ๋ฒ•์ด๋‹ค. โ€ข GitHub Actions๋ฅผ ํ†ตํ•ด ์ž๋™ํ™”๋ฅผ ํ•  ์ˆ˜๋„ ์žˆ๋‹ค. ์˜คํ”ˆ ์†Œ์Šค ๋ผ์ดํ”„ ์‚ฌ์ดํด Preparation process
  48. G E T S T R E A M .

    I O ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ฌธ์„œํ™” โ€ข ์•„๋ฌด๋ฆฌ ์ข‹์€ ์ฝ”๋“œ๋ผ๋„ ๋ฌธ์„œ๊ฐ€ ์˜ฌ๋ฐ”๋ฅด์ง€ ์•Š์œผ๋ฉด ๊ทธ ๋ˆ„๊ตฌ๋„ ์ด๊ฒƒ์ด ๋ญ ํ•˜๋Š” ํ”„๋กœ์ ํŠธ์ธ์ง€ ์•Œ๊ธฐ ์–ด๋ ต๊ณ , ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์‚ฌ์šฉํ•˜๊ธฐ ํž˜๋“ค๋‹ค. โ€ข ๊ฐœ๋ฐœ์— ํˆฌ์žํ•œ ์‹œ๊ฐ„๋งŒํผ ๋ฌธ์„œํ™”์— ์‹œ๊ฐ„์„ ํˆฌ์žํ•˜์ž. ์–ด์ฉŒ๋ฉด ๊ฐœ๋ฐœ๋ณด๋‹ค ๋” ์ค‘์š”ํ• ์ง€๋„. โ€ข ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋„ ์ œํ’ˆ์ด๋‹ค. ์ œํ’ˆ ์‚ฌ์šฉ ์„ค๋ช…์„œ๋Š” ์†Œ๋น„์ž๊ฐ€ ์ œํ’ˆ์„ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์‚ฌ์šฉํ•˜๋„๋ก ํ•˜๋Š” ํ•„์ˆ˜ ์ง€์นจ์ด๋‹ค. ์˜คํ”ˆ ์†Œ์Šค ๋ผ์ดํ”„ ์‚ฌ์ดํด Preparation process
  49. G E T S T R E A M .

    I O ์„ค๊ณ„ ๊ฐœ๋ฐœ ์ค€๋น„ ์ถœ์‹œ ์˜คํ”ˆ ์†Œ์Šค ๋ผ์ดํ”„ ์‚ฌ์ดํด
  50. G E T S T R E A M .

    I O 1. Registering a Sonatype account 2. Generating a GPG key pair 3. Setting up publication in your project a. Maven publishing setup with Gradle b. Signing artifacts with GPG key c. Configure pom files d. Per-module Gradle setup 4. Publish to sonatype repository 5. Evaluate and close the ticket on staging repositories ์˜คํ”ˆ ์†Œ์Šค ๋ผ์ดํ”„ ์‚ฌ์ดํด Release process
  51. G E T S T R E A M .

    I O ์˜คํ”ˆ ์†Œ์Šค ๋ผ์ดํ”„ ์‚ฌ์ดํด Release process
  52. G E T S T R E A M .

    I O babel line-numbers left-pad dependency dependency ์˜คํ”ˆ ์†Œ์Šค ๋ผ์ดํ”„ ์‚ฌ์ดํด Release process
  53. G E T S T R E A M .

    I O ์˜คํ”ˆ ์†Œ์Šค ๋ผ์ดํ”„ ์‚ฌ์ดํด Release process
  54. G E T S T R E A M .

    I O 1 2 3 4 5 ์˜คํ”ˆ ์†Œ์Šค ๋ผ์ดํ”„ ์‚ฌ์ดํด Release process
  55. G E T S T R E A M .

    I O 1 2 3 4 5 โœ… androidx.compose.ui:ui ๐Ÿƒandroidx.compose.ui:ui ๐Ÿƒandroidx.compose.ui:ui Tracking, spoofing, sniffing.. ์˜คํ”ˆ ์†Œ์Šค ๋ผ์ดํ”„ ์‚ฌ์ดํด Release process
  56. G E T S T R E A M .

    I O ์˜คํ”ˆ ์†Œ์Šค ๋ผ์ดํ”„ ์‚ฌ์ดํด Release process
  57. G E T S T R E A M .

    I O ํ”ผ๋“œ๋ฐฑ ๋ฃจํ”„ ๋ฐ ๋งˆ์ผ€ํŒ…
  58. G E T S T R E A M .

    I O ๋งˆ์ผ€ํŒ… ๋ฐ ํ”ผ๋“œ๋ฐฑ ๋ฃจํ”„ ํ”„๋กœ์ ํŠธ๋ฅผ ์•Œ๋ฆฌ๊ณ  ํ”ผ๋“œ๋ฐฑ ๋ฐ›๊ธฐ 1. ์ง€์ธ ์ฐฌ์Šค: ์ฃผ๋ณ€ ์‚ฌ๋žŒ๋“ค ํ˜น์€ ํŒ€์› ๋“ฑ ๋ณธ์ธ์ด ์†ํ•œ ์กฐ์ง์ด๋‚˜ ์ง€์ธ๋“ค์—๊ฒŒ ์ตœ๋Œ€ํ•œ ๋งŽ์€ ํ”ผ๋“œ๋ฐฑ์„ ๋ฐ›๊ณ  ์ ์šฉํ•œ๋‹ค. Community
  59. G E T S T R E A M .

    I O ํ”„๋กœ์ ํŠธ๋ฅผ ์•Œ๋ฆฌ๊ณ  ํ”ผ๋“œ๋ฐฑ ๋ฐ›๊ธฐ 1. ์ง€์ธ ์ฐฌ์Šค: ์ฃผ๋ณ€ ์‚ฌ๋žŒ๋“ค ํ˜น์€ ํŒ€์› ๋“ฑ ๋ณธ์ธ์ด ์†ํ•œ ์กฐ์ง์ด๋‚˜ ์ง€์ธ๋“ค์—๊ฒŒ ์ตœ๋Œ€ํ•œ ๋งŽ์€ ํ”ผ๋“œ๋ฐฑ์„ ๋ฐ›๊ณ  ์ ์šฉํ•œ๋‹ค. 2. ์ปค๋ฎค๋‹ˆํ‹ฐ: Twitter, Slack, Reddit, LinkedIn ๋“ฑ ๋‹ค์–‘ํ•œ ๊ฐœ๋ฐœ์ž ์ปค๋ฎค๋‹ˆํ‹ฐ์— ๊ณต์œ ํ•˜๊ณ , ์ตœ๋Œ€ํ•œ ๋งŽ์€ ์˜๊ฒฌ์„ ๋ฐ›์•„์„œ ์‹œ์•ผ๋ฅผ ๋„“ํžŒ๋‹ค. ๋งˆ์ผ€ํŒ… ๋ฐ ํ”ผ๋“œ๋ฐฑ ๋ฃจํ”„ Community
  60. G E T S T R E A M .

    I O ๋งˆ์ผ€ํŒ… ๋ฐ ํ”ผ๋“œ๋ฐฑ ๋ฃจํ”„ Community
  61. G E T S T R E A M .

    I O ๋งˆ์ผ€ํŒ… ๋ฐ ํ”ผ๋“œ๋ฐฑ ๋ฃจํ”„ Community
  62. G E T S T R E A M .

    I O Code speaks louder than words! ๋งˆ์ผ€ํŒ… ๋ฐ ํ”ผ๋“œ๋ฐฑ ๋ฃจํ”„ Sample projects
  63. G E T S T R E A M .

    I O ๋งˆ์ผ€ํŒ… ๋ฐ ํ”ผ๋“œ๋ฐฑ ๋ฃจํ”„
  64. G E T S T R E A M .

    I O ์ˆ˜์ตํ™” ๋ฐ ์กฐ์ง์—์„œ์˜ ์˜คํ”ˆ ์†Œ์Šค
  65. G E T S T R E A M .

    I O ์˜คํ”ˆ ์†Œ์Šค ์ˆ˜์ตํ™” ์ „๋žต ๊ฐœ์ธ์œผ๋กœ์„œ์˜ ์ˆ˜์ตํ™” ์ „๋žต 1. ์‚ฌ์šฉ์ž ๊ธฐ๋ฐ˜ ๊ตฌ์ถ•: ํ›„์›ํ•  ์—ฌ์ง€๊ฐ€ ์žˆ๋Š” ์†Œ๋น„์ž(๊ฐœ์ธ ๋ฐ ํšŒ์‚ฌ)๋ฅผ ํฌํ•จํ•˜์—ฌ ์ƒ๋‹นํ•œ ๊ทœ๋ชจ์˜ ์‚ฌ์šฉ์ž ๊ธฐ๋ฐ˜์„ ๊ตฌ์ถ•ํ•ด์•ผํ•œ๋‹ค.
  66. G E T S T R E A M .

    I O ๊ฐœ์ธ์œผ๋กœ์„œ์˜ ์ˆ˜์ตํ™” ์ „๋žต 1. ์‚ฌ์šฉ์ž ๊ธฐ๋ฐ˜ ๊ตฌ์ถ•: ํ›„์›ํ•  ์—ฌ์ง€๊ฐ€ ์žˆ๋Š” ์†Œ๋น„์ž(๊ฐœ์ธ ๋ฐ ํšŒ์‚ฌ)๋ฅผ ํฌํ•จํ•˜์—ฌ ์ƒ๋‹นํ•œ ๊ทœ๋ชจ์˜ ์‚ฌ์šฉ์ž ๊ธฐ๋ฐ˜์„ ๊ตฌ์ถ•ํ•ด์•ผํ•œ๋‹ค. ์˜คํ”ˆ ์†Œ์Šค ์ˆ˜์ตํ™” ์ „๋žต
  67. G E T S T R E A M .

    I O ๊ฐœ์ธ์˜ ์˜คํ”ˆ ์†Œ์Šค ์ˆ˜์ตํ™”
  68. G E T S T R E A M .

    I O ์˜คํ”ˆ ์†Œ์Šค๋ฅผ ๋†’๊ฒŒ ํ‰๊ฐ€ํ•˜๋Š” ์‚ฐ์—… โ€ข B2C (Business-to-Consumer) โญ โ—ฆ ๊ฐœ์ธ ์†Œ๋น„์ž๋ฅผ ๋Œ€์ƒ์œผ๋กœ ํ•˜๋Š” ๋น„์ฆˆ๋‹ˆ์Šค โ—ฆ ํ†ต์ƒ์ ์œผ๋กœ IC role์˜ ๊ฐœ๋ฐœ์ž๋กœ์„œ ๊ธฐ์—ฌ โ—ฆ ๋น ๋ฅธ ์ œํ’ˆ ๊ฐœ๋ฐœ๊ณผ ๊ณ ๊ฐ์ด ์ผ๋ฐ˜ ์†Œ๋น„์ž๋ผ๋Š” ์ ์œผ๋กœ ์˜คํ”ˆ ์†Œ์Šค ๊ฐœ๋ฐœ ๊ธฐํšŒ๋ฅผ ์ ‘ํ•˜๊ธฐ ์‰ฝ์ง€ ์•Š์Œ ๊ฐœ์ธ์˜ ์˜คํ”ˆ ์†Œ์Šค ์ˆ˜์ตํ™”
  69. G E T S T R E A M .

    I O ์˜คํ”ˆ ์†Œ์Šค๋ฅผ ๋†’๊ฒŒ ํ‰๊ฐ€ํ•˜๋Š” ์‚ฐ์—… โ€ข B2C (Business-to-Consumer) โญ โ—ฆ ๊ฐœ์ธ ์†Œ๋น„์ž๋ฅผ ๋Œ€์ƒ์œผ๋กœ ํ•˜๋Š” ๋น„์ฆˆ๋‹ˆ์Šค โ—ฆ ํ†ต์ƒ์ ์œผ๋กœ IC role์˜ ๊ฐœ๋ฐœ์ž๋กœ์„œ ๊ธฐ์—ฌ โ—ฆ ๋น ๋ฅธ ์ œํ’ˆ ๊ฐœ๋ฐœ๊ณผ ๊ณ ๊ฐ์ด ์ผ๋ฐ˜ ์†Œ๋น„์ž๋ผ๋Š” ์ ์œผ๋กœ ์˜คํ”ˆ ์†Œ์Šค ๊ฐœ๋ฐœ ๊ธฐํšŒ๋ฅผ ์ ‘ํ•˜๊ธฐ ์‰ฝ์ง€ ์•Š์Œ โ€ข B2B (Business-to-Business) โญโญโญ โ—ฆ ๊ธฐ์—…์„ ๋Œ€์ƒ์œผ๋กœ ํ•˜๋Š” ๋น„์ฆˆ๋‹ˆ์Šค โ—ฆ Developer Relations Engineer, Developer Advocate, Developer Experiences โ—ฆ ์ƒ˜ํ”Œ ํ”„๋กœ์ ํŠธ, SDK ๊ฐœ๋ฐœ, ์˜คํ”ˆ ์†Œ์Šค ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ, ์ปค๋ฎค๋‹ˆํ‹ฐ ๊ธฐ์—ฌ ๋“ฑ ๋น„์ฆˆ๋‹ˆ์Šค์ ์œผ๋กœ ๊ฐ€์žฅ ๋ฐ€์ ‘ํ•œ ๊ด€๋ จ์ด ์žˆ์Œ โ€ข Developer Platform or Developer Ecosystem โญโญ โ—ฆ Google๊ณผ ๊ฐ™์ด ๋ฌด๋ฃŒ SDK, API, ๊ฐ์ข… ํˆด์„ ๊ฐœ๋ฐœํ•˜์—ฌ ๊ฐœ๋ฐœ์ž ํ”Œ๋žซํผ ๋˜๋Š” ์ƒํƒœ๊ณ„๋ฅผ ๊ตฌ์ถ• โ—ฆ Developer Relations Engineer, Developer Advocate, Developer Marketing, Open-Source advocate, Developer/OSS Ecosystem Manager, Developer Relations Manager, Developer Experience Manager โ—ฆ ์ƒ˜ํ”Œ ํ”„๋กœ์ ํŠธ, SDK ๊ฐœ๋ฐœ, ์˜คํ”ˆ ์†Œ์Šค ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ, ์ปค๋ฎค๋‹ˆํ‹ฐ ๊ธฐ์—ฌ ๋“ฑ ์ง๋ฌด์— ๋”ฐ๋ผ ๋ฐ€์ ‘ํ•œ ๊ด€๋ จ์ด ์žˆ์Œ ๊ฐœ์ธ์˜ ์˜คํ”ˆ ์†Œ์Šค ์ˆ˜์ตํ™”
  70. G E T S T R E A M .

    I O ๊ฐœ์ธ์˜ ์˜คํ”ˆ ์†Œ์Šค ์ˆ˜์ตํ™”
  71. G E T S T R E A M .

    I O ์กฐ์ง์—์„œ ์˜คํ”ˆ ์†Œ์Šค์— ๊ธฐ์—ฌํ•˜๋Š” ํ˜•ํƒœ โ€ข ๋งŽ์€ ํšŒ์‚ฌ(B2C)์—์„œ ํ”„๋กœ์ ํŠธ์˜ ์ž ์žฌ์  ์ฝ”๋“œ ์œ ์ถœ์— ๋Œ€ํ•œ ์šฐ๋ ค ๋ฐ ๋ผ์ด์„ผ์Šค ๋ฌธ์ œ์— ๊ด€์—ฌ๋˜๊ณ  ์‹ถ์ง€ ์•Š์•„ ํ”ผํ•˜๋ ค๋Š” ์–‘์ƒ์ด ๋ณด์ธ๋‹ค. ํ˜น์€ B2B ์‹œ๋‚˜๋ฆฌ์˜ค์—์„œ๋Š” ๊ณ ๊ฐ๊ณผ์˜ ๊ฑฐ๋ž˜์—์„œ ๋ฐœ์ƒํ•˜๋Š” 2์ฐจ์ ์ธ ๋ฌธ์ œ ๋“ฑ์ด ์šฐ๋ ค๋  ์ˆ˜ ์žˆ๋‹ค. ์กฐ์ง๊ณผ ๋น„์ฆˆ๋‹ˆ์Šค์—์„œ์˜ ์˜คํ”ˆ ์†Œ์Šค
  72. G E T S T R E A M .

    I O ์กฐ์ง์—์„œ ์˜คํ”ˆ ์†Œ์Šค์— ๊ธฐ์—ฌํ•˜๋Š” ํ˜•ํƒœ โ€ข ๋งŽ์€ ํšŒ์‚ฌ(B2C)์—์„œ ํ”„๋กœ์ ํŠธ์˜ ์ž ์žฌ์  ์ฝ”๋“œ ์œ ์ถœ์— ๋Œ€ํ•œ ์šฐ๋ ค ๋ฐ ๋ผ์ด์„ผ์Šค ๋ฌธ์ œ์— ๊ด€์—ฌ๋˜๊ณ  ์‹ถ์ง€ ์•Š์•„ ํ”ผํ•˜๋ ค๋Š” ์–‘์ƒ์ด ๋ณด์ธ๋‹ค. ํ˜น์€ B2B ์‹œ๋‚˜๋ฆฌ์˜ค์—์„œ๋Š” ๊ณ ๊ฐ๊ณผ์˜ ๊ฑฐ๋ž˜์—์„œ ๋ฐœ์ƒํ•˜๋Š” 2์ฐจ์ ์ธ ๋ฌธ์ œ ๋“ฑ์ด ์šฐ๋ ค๋  ์ˆ˜ ์žˆ๋‹ค. โ€ข ๊ทธ๋Ÿผ์—๋„ ์˜คํ”ˆ ์†Œ์Šค๋ฅผ ํ†ตํ•ด ๊ธฐ์—…์—์„œ ์–ป์„ ์ˆ˜ ์žˆ๋Š” ๊ฐ€์น˜ โ—ฆ ๊ฐ•๋ ฅํ•œ ๋ธŒ๋žœ๋“œ ์ž…์ง€ ๊ตฌ์ถ• ์กฐ์ง๊ณผ ๋น„์ฆˆ๋‹ˆ์Šค์—์„œ์˜ ์˜คํ”ˆ ์†Œ์Šค
  73. G E T S T R E A M .

    I O ์กฐ์ง์—์„œ ์˜คํ”ˆ ์†Œ์Šค์— ๊ธฐ์—ฌํ•˜๋Š” ํ˜•ํƒœ โ€ข ๋งŽ์€ ํšŒ์‚ฌ(B2C)์—์„œ ํ”„๋กœ์ ํŠธ์˜ ์ž ์žฌ์  ์ฝ”๋“œ ์œ ์ถœ์— ๋Œ€ํ•œ ์šฐ๋ ค ๋ฐ ๋ผ์ด์„ผ์Šค ๋ฌธ์ œ์— ๊ด€์—ฌ๋˜๊ณ  ์‹ถ์ง€ ์•Š์•„ ํ”ผํ•˜๋ ค๋Š” ์–‘์ƒ์ด ๋ณด์ธ๋‹ค. ํ˜น์€ B2B ์‹œ๋‚˜๋ฆฌ์˜ค์—์„œ๋Š” ๊ณ ๊ฐ๊ณผ์˜ ๊ฑฐ๋ž˜์—์„œ ๋ฐœ์ƒํ•˜๋Š” 2์ฐจ์ ์ธ ๋ฌธ์ œ ๋“ฑ์ด ์šฐ๋ ค๋  ์ˆ˜ ์žˆ๋‹ค. โ€ข ๊ทธ๋Ÿผ์—๋„ ์˜คํ”ˆ ์†Œ์Šค๋ฅผ ํ†ตํ•ด ๊ธฐ์—…์—์„œ ์–ป์„ ์ˆ˜ ์žˆ๋Š” ๊ฐ€์น˜ โ—ฆ ๊ฐ•๋ ฅํ•œ ๋ธŒ๋žœ๋“œ ์ž…์ง€ ๊ตฌ์ถ• โ—ฆ ์ฑ„์šฉ ๋ฐ ๊ฐœ๋ฐœ์ž ๋งˆ์ผ€ํŒ…(Developer Marketing)์„ ์œ„ํ•œ ํšจ๊ณผ์ ์ธ ์ „๋žต ์กฐ์ง๊ณผ ๋น„์ฆˆ๋‹ˆ์Šค์—์„œ์˜ ์˜คํ”ˆ ์†Œ์Šค
  74. G E T S T R E A M .

    I O ์กฐ์ง์—์„œ ์˜คํ”ˆ ์†Œ์Šค์— ๊ธฐ์—ฌํ•˜๋Š” ํ˜•ํƒœ โ€ข ๊ฐœ๋ฐœํ•˜๋ ค๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์ฒ˜์Œ์—๋Š” ์ƒ๋Œ€์ ์œผ๋กœ ์•„์ฃผ ์‚ฌ์†Œํ•œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋”๋ผ๋„ ์ผ๋‹จ ์‹œ์žฅ์— ๋‚ด์–ด๋†“๊ณ  ๊พธ์ค€ํžˆ ๊ฐœ์„ ํ•˜์—ฌ ์„ฑ์žฅ ์‹œ์ผœ๋ณผ ์ˆ˜ ์žˆ๋‹ค. โ€ข ๊ฐ€์žฅ ์‰ฌ์šด ์ ‘๊ทผ ๋ฐฉ์‹์€ ํŒ€ ๋‚ด์˜ ํ”„๋กœ์ ํŠธ์—์„œ ๊ฐ€์žฅ ์ž‘์€ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋ถ„๋ฆฌํ•˜๊ณ  ๋ณด๋‹ค ์‰ฝ๊ฒŒ ์ปค์Šคํ…€ ํ•  ์ˆ˜ ์žˆ๋„๋ก API๋ฅผ ๋นŒ๋”ฉํ•˜๋Š” ๊ฒƒ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ด๋ณผ ์ˆ˜ ์žˆ๋‹ค. ์กฐ์ง๊ณผ ๋น„์ฆˆ๋‹ˆ์Šค์—์„œ์˜ ์˜คํ”ˆ ์†Œ์Šค
  75. G E T S T R E A M .

    I O ์กฐ์ง์—์„œ ์˜คํ”ˆ ์†Œ์Šค์— ๊ธฐ์—ฌํ•˜๋Š” ํ˜•ํƒœ โ€ข ๊ฐœ๋ฐœํ•˜๋ ค๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์ฒ˜์Œ์—๋Š” ์ƒ๋Œ€์ ์œผ๋กœ ์•„์ฃผ ์‚ฌ์†Œํ•œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋”๋ผ๋„ ์ผ๋‹จ ์‹œ์žฅ์— ๋‚ด์–ด๋†“๊ณ  ๊พธ์ค€ํžˆ ๊ฐœ์„ ํ•˜์—ฌ ์„ฑ์žฅ ์‹œ์ผœ๋ณผ ์ˆ˜ ์žˆ๋‹ค. โ€ข ๊ฐ€์žฅ ์‰ฌ์šด ์ ‘๊ทผ ๋ฐฉ์‹์€ ํŒ€ ๋‚ด์˜ ํ”„๋กœ์ ํŠธ์—์„œ ๊ฐ€์žฅ ์ž‘์€ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋ถ„๋ฆฌํ•˜๊ณ  ๋ณด๋‹ค ์‰ฝ๊ฒŒ ์ปค์Šคํ…€ ํ•  ์ˆ˜ ์žˆ๋„๋ก API๋ฅผ ๋นŒ๋”ฉํ•˜๋Š” ๊ฒƒ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ด๋ณผ ์ˆ˜ ์žˆ๋‹ค. โ€ข ๋งŒ์•ฝ ์ง์ ‘ ๋นŒ๋”ฉํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ œํ’ˆ์—์„œ ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค๋ฉด, ์Šค์Šค๋กœ ๊ด€๋ฆฌ์ž์ด์ž ์†Œ๋น„์ž๋ผ๋Š” ์ด์ค‘ ์—ญํ• ์„ ํ†ตํ•ด ์˜คํ”ˆ ์†Œ์Šค ์ƒํƒœ๊ณ„๋ฅผ ๋” ์ž˜ ์ดํ•ดํ•˜๊ณ  ์ ๊ทน์ ์œผ๋กœ ๊ธฐ์—ฌํ•  ์ˆ˜ ์žˆ๋Š” ํ›Œ๋ฅญํ•œ ์ถœ๋ฐœ์ ์ด ๋  ์ˆ˜ ์žˆ๋‹ค. ์กฐ์ง๊ณผ ๋น„์ฆˆ๋‹ˆ์Šค์—์„œ์˜ ์˜คํ”ˆ ์†Œ์Šค
  76. G E T S T R E A M .

    I O Stream์˜ ์˜คํ”ˆ ์†Œ์Šค ์ ‘๊ทผ ๋ฐฉ์‹ Stream์˜ ์˜คํ”ˆ ์†Œ์Šค ์ ‘๊ทผ๋ฒ• โ€ข ์ผ๋ฐ˜์ ์ธ ๋‹ค๋ฅธ SaaS ํ”Œ๋žซํผ๊ณผ๋Š” ๋‹ค๋ฅด๊ฒŒ Stream์˜ ๋Œ€๋ถ€๋ถ„์˜ SDK๋Š” ์˜คํ”ˆ ์†Œ์Šค๋กœ ๊ณต๊ฐœ๋˜์–ด ์žˆ๋‹ค. โ€ข Stream์€ ํˆฌ๋ช…์„ฑ์„ ์ œ๊ณตํ•œ๋‹ค๋Š” ์ ์—์„œ ๋ช‡ ๊ฐ€์ง€ ๋šœ๋ ทํ•œ ์ด์ ์„ ์ทจํ•˜๊ณ  ์žˆ๋Š”๋ฐ, ๋Œ€ํ‘œ์ ์œผ๋กœ ๋งŽ์€ Stream์˜ ๊ณ ๊ฐ์€ SDK์˜ ์˜คํ”ˆ ์†Œ์Šคํ™”๋ฅผ ํ†ตํ•œ ํˆฌ๋ช…์„ฑ ๋•Œ๋ฌธ์— Stream SDK๋ฅผ ์„ ํƒํ–ˆ๋‹ค๊ณ  ์‘๋‹ตํ–ˆ๋‹ค.
  77. G E T S T R E A M .

    I O Stream์˜ ์˜คํ”ˆ ์†Œ์Šค ์ ‘๊ทผ ๋ฐฉ์‹ Stream์˜ ์˜คํ”ˆ ์†Œ์Šค ์ ‘๊ทผ๋ฒ• โ€ข Stream์˜ Developer Relations๋Š” Stream SDK๊ฐ€ ํ†ตํ•ฉ๋œ ํฅ๋ฏธ๋กœ์šด ์˜คํ”ˆ ์†Œ์Šค ํ”„๋กœ์ ํŠธ๋ฅผ ๊ฐœ๋ฐœํ•˜์—ฌ ๊ธฐ์—… ๋งˆ์ผ€ํŒ…๊ณผ ์˜คํ”ˆ ์†Œ์Šค ์ƒํƒœ๊ณ„์— ๊ธฐ์—ฌํ•˜๋Š” ๋‘ ๊ฐ€์ง€ ์ด์ ์„ ๋™์‹œ์— ์ทจํ•˜๋Š” ์ „๋žต ๋“ฑ์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‹ค. โ€ข ์ด๋ฅผ ํ†ตํ•ด ์ตœ์‹  ๊ธฐ์ˆ ๋“ค์„ ์ฆ๋ช…ํ•˜๊ณ  ๊ฐœ๋ฐœ์ž ์ปค๋ฎค๋‹ˆํ‹ฐ์— ๋‹ค์–‘ํ•œ ์ง€์‹์„ ๊ณต์œ ํ•˜๋Š”๋ฐ ์ดˆ์ ์„ ๋‘๋ฉฐ, ์ž ์žฌ์  ๊ณ ๊ฐ์—์„œ ์‹ค์ œ ๊ณ ๊ฐ์œผ๋กœ์˜ ์ „ํ™˜์œจ์„ ๋†’์ด๋Š” ํ›Œ๋ฅญํ•œ ์ „๋žต์œผ๋กœ์„œ๋„ ์ž‘์šฉํ•œ๋‹ค.
  78. G E T S T R E A M .

    I O GitHub & Blog Post
  79. G E T S T R E A M .

    I O https://github.com/skydoves [email protected] https://twitter.com/github_skydoves https://medium.com/@skydoves Contact
  80. G E T S T R E A M .

    I O Thank you.