๐Ÿ“บ ์˜์ƒ ์š”์•ฝ ์•„์นด์ด๋ธŒ
โ† ๋ชฉ๋ก

225,000 Lines of Tests, Written and Merged by Agents - Kush Agrawal, Duolingo

AI Engineer ยท 2026-11-12 06:00 ยท 12:38

ํ•œ ์ค„ ํ•ต์‹ฌ

Duolingo๋Š” Temporal, Cloud Code, GitHub, S3๋ฅผ ์—ฎ์€ ์—์ด์ „ํŠธ ํŒŒ์ดํ”„๋ผ์ธ์œผ๋กœ iOS ์ฝ”๋“œ๋ฒ ์ด์Šค์˜ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ๋ฅผ ์ž๋™ ์ƒ์„ฑยท๊ฒ€์ฆยท๋จธ์ง€ํ•ด 225,000์ค„์˜ ํ…Œ์ŠคํŠธ์™€ 59%์˜ MVVM ์ปค๋ฒ„๋ฆฌ์ง€๋ฅผ ๋‹ฌ์„ฑํ–ˆ๋‹ค.

์‹œ๊ฐ„๋ณ„ ์š”์•ฝ

  1. 0:01
    ์™œ ์ง€๊ธˆ ํ…Œ์ŠคํŠธ ์ž๋™ํ™”๊ฐ€ ํ•„์š”ํ•œ๊ฐ€ iOS ์ฝ”๋“œ๋ฒ ์ด์Šค๋Š” 2๋ฐฑ๋งŒ ์ค„ ๊ทœ๋ชจ๋กœ ์ปค์กŒ๊ณ , 600๊ฐœ ์ด์ƒ์˜ A/B ํ…Œ์ŠคํŠธ์™€ ์ฃผ๋‹น ๋ฐฐํฌ ์†๋„ ๋•Œ๋ฌธ์— ์ฝ”๋“œ๋ฅผ ์“ฐ๋Š” ๊ฒƒ๋ณด๋‹ค ๊ฒ€์ฆํ•˜๋Š” ์ผ์ด ๋” ํฐ ๋ณ‘๋ชฉ์ด ๋๋‹ค. MVVM ๊ตฌ๊ฐ„์˜ ํ…Œ์ŠคํŠธ ์ปค๋ฒ„๋ฆฌ์ง€๊ฐ€ ๋งค์šฐ ๋‚ฎ์•˜๊ธฐ ๋•Œ๋ฌธ์—, ์—์ด์ „ํŠธ๋กœ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ๋ฅผ ๋Œ€๋Ÿ‰ ์ƒ์‚ฐํ•˜๋Š” ํ”„๋กœ์ ํŠธ๊ฐ€ ์‹œ์ž‘๋๋‹ค.
  2. 3:01
    ์—์ด์ „ํŠธ ๊ธฐ๋ฐ˜ ํ…Œ์ŠคํŠธ ์ƒ์‚ฐ ์‹œ์Šคํ…œ ํ•ต์‹ฌ ๋ฃจํ”„๋Š” ํ…Œ์ŠคํŠธ๊ฐ€ ํ•„์š”ํ•œ ํŒŒ์ผ์„ ๊ณ ๋ฅด๊ณ , ์—์ด์ „ํŠธ๊ฐ€ ํ…Œ์ŠคํŠธ๋ฅผ ์ž‘์„ฑํ•˜๊ณ , CI๋กœ ๊ฒ€์ฆํ•œ ๋’ค, ์ธ๊ฐ„ ๋ฆฌ๋ทฐ๋ฅผ ๊ฑฐ์ณ ๋จธ์ง€ํ•˜๊ณ , ๊ทธ ํ”ผ๋“œ๋ฐฑ์„ ๋‹ค์Œ ์‹คํ–‰์— ๋ฐ˜์˜ํ•˜๋Š” ๊ตฌ์กฐ๋‹ค. ์ด ํ๋ฆ„์€ Temporal์ด ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜ํ•˜๊ณ , Cloud Code๊ฐ€ ์ฝ”๋”ฉ ์—์ด์ „ํŠธ๋ฅผ ๋งก์œผ๋ฉฐ, S3๊ฐ€ ๊ณต์œ  ์ƒํƒœ๋ฅผ ์ €์žฅํ•˜๊ณ , GitHub์™€ Datadog์ด ๊ฐ๊ฐ ์ž‘์—… ๊ด€๋ฆฌ์™€ ๊ด€์ธก์„ ๋‹ด๋‹นํ•œ๋‹ค.
  3. 4:01
    ์ž‘๊ฒŒ ๊ฒ€์ฆํ•˜๋ฉฐ ์‹คํŒจ ํŒจํ„ด์„ ์ œ๊ฑฐ ๋จผ์ € ๋กœ์ปฌ์—์„œ ๊ฐ„๋‹จํ•œ ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ดํ„ฐ๋กœ ํŒŒ์ผ ์„ ํƒ๊ณผ ํ…Œ์ŠคํŠธ ์ƒ์„ฑ์„ ๋Œ๋ ค 50% ์ˆ˜์ค€์˜ ๋จธ์ง€์œจ์„ ํ™•์ธํ•˜๋ฉฐ, ์—์ด์ „ํŠธ๊ฐ€ ์–ด๋””์„œ ์‹คํŒจํ•˜๋Š”์ง€ ํ•™์Šตํ–ˆ๋‹ค. XCTest์™€ Swift Testing ํ˜ผ์šฉ, ๋ชฉ ๊ฐ์ฒด ๊ตฌ์กฐ์˜ ๋ถˆ์ผ์น˜, ๋™์‹œ์„ฑ ์ด์Šˆ, ํƒ€์ด๋ฐ ๊ธฐ๋ฐ˜ ํ…Œ์ŠคํŠธ ๊ฐ™์€ ๋ฌธ์ œ๋ฅผ ๊ทœ์น™๊ณผ ์Šคํ‚ฌ, ๋ฆฐํŠธ ๊ฐ•์ œ, ์˜ˆ์‹œ ๋ณด๊ฐ•์œผ๋กœ ์ค„์˜€๋‹ค.
  4. 6:00
    ๋Œ€๊ทœ๋ชจ ๋ฐฑํ•„๊ณผ PR ์ˆ˜๋ช…์ฃผ๊ธฐ ์šด์˜ ๊ฐ€์žฅ ํฐ ์„ฑ๊ณผ๋Š” ์ด๋ฏธ ๋จธ์ง€๋œ ์ฝ”๋“œ์— ๋Œ€ํ•œ ๋ฐฑํ•„ ํ…Œ์ŠคํŠธ๋ฅผ ๋งค์ผ/์ฃผ๊ธฐ์ ์œผ๋กœ ์ƒ์„ฑํ•œ ์ ์ด๋ฉฐ, ํŒŒ์ผ ์œ ํ˜•๊ณผ ํฌ๊ธฐ๋ฅผ ์ ์ˆ˜ํ™”ํ•ด ํ…Œ์ŠคํŠธํ•˜๊ธฐ ์‰ฌ์šด ์ฝ”๋“œ๋ถ€ํ„ฐ ์šฐ์„  ์ฒ˜๋ฆฌํ–ˆ๋‹ค. ์ดํ›„ PR์ด ์Œ“์ด์ž ์ƒํƒœ ๋จธ์‹  ๋ฐฉ์‹์˜ ์ˆ˜๋ช…์ฃผ๊ธฐ ์›Œํฌํ”Œ๋กœ์šฐ๋กœ CI ์ƒํƒœ ํ™•์ธ, ๋ฆฌ๋ทฐ์–ด ๋ฐฐ์ •, ์žฌ์‹œ๋„, ์ฟจ๋‹ค์šด, ์ž๋™ ๋จธ์ง€๊นŒ์ง€ ๊ด€๋ฆฌํ•ด ์šด์˜ ๋ถ€๋‹ด์„ ์ค„์˜€๋‹ค.
  5. 9:00
    ํ’ˆ์งˆ ํ†ต์ œ์™€ ์ตœ์ข… ์„ฑ๊ณผ ๋ฆฐํŠธ ์‹คํŒจ๋Š” ํ”„๋กฌํ”„ํŠธ ๊ฐœ์„ , GitHub Actions ์ž๋™ ์ˆ˜์ •, ๊ทœ์น™ ์ •๋ฆฌ, Mac runner ์ „ํ™˜์œผ๋กœ ์ค„์˜€๊ณ , ์ƒ์‚ฐ ์ฝ”๋“œ ์ˆ˜์ •์ด๋‚˜ ๊ธฐ์กด ํ…Œ์ŠคํŠธ ๋ฌด๋ ฅํ™” ๊ฐ™์€ ํ’ˆ์งˆ ์ €ํ•˜๋Š” ๊ฒฐ์ • ๊ทœ์น™๊ณผ LLM ์‹ฌ์‚ฌ๊ธฐ๋กœ ์ฐจ๋‹จํ–ˆ๋‹ค. ๊ทธ ๊ฒฐ๊ณผ 700๊ฐœ ์ด์ƒ์˜ ํ…Œ์ŠคํŠธ PR์ด ์ธ๊ฐ„ ์Šน์ธ์œผ๋กœ ๋จธ์ง€๋˜๋ฉฐ 225,000์ค„์˜ ํ…Œ์ŠคํŠธ๊ฐ€ ์ถ”๊ฐ€๋๊ณ , ์ „์ฒด ์ปค๋ฒ„๋ฆฌ์ง€๋Š” 11%์—์„œ 24%, MVVM ๊ตฌ๊ฐ„์€ 9%์—์„œ 59%๋กœ ์˜ฌ๋ผ๊ฐ”๋‹ค.

์‹ค๋ฌด ์ธ์‚ฌ์ดํŠธ

  • ์—์ด์ „ํŠธ ๋„์ž…์˜ ์„ฑํŒจ๋Š” ์ƒ์„ฑ ๋Šฅ๋ ฅ๋ณด๋‹ค ๊ฒ€์ฆ ๋ฃจํ”„ ์„ค๊ณ„์— ๋‹ฌ๋ ค ์žˆ์œผ๋ฏ€๋กœ, ์ƒ์„ฑ-๊ฒ€์ฆ-๋ฆฌ๋ทฐ-ํ”ผ๋“œ๋ฐฑ์„ ํ•˜๋‚˜์˜ ์šด์˜ ์‹œ์Šคํ…œ์œผ๋กœ ๋ฌถ์–ด์•ผ ํ•œ๋‹ค.
  • ํ…Œ์ŠคํŠธ ์ž๋™ํ™”๋Š” ๋ฌด์ž‘์œ„ ํ™•๋Œ€๋ณด๋‹ค '์ž˜ ํ…Œ์ŠคํŠธ๋˜๋Š” ์ฝ”๋“œ๋ถ€ํ„ฐ' ์šฐ์„ ์ˆœ์œ„๋ฅผ ๋งค๊ธฐ๋Š” ์„ ํƒ ๋กœ์ง์ด ์ค‘์š”ํ•˜๋ฉฐ, ํŒŒ์ผ ์œ ํ˜•ยทํฌ๊ธฐยท๋ ˆ๊ฑฐ์‹œ ์—ฌ๋ถ€ ๊ฐ™์€ ์‹ ํ˜ธ๊ฐ€ ํšจ๊ณผ์ ์ด๋‹ค.
  • ์ธ๊ฐ„ ๋ฆฌ๋ทฐ๋ฅผ ์—†์• ๊ธฐ๋ณด๋‹ค ์—์ด์ „ํŠธ๊ฐ€ ์ดˆ์•ˆ์„ ๋งŒ๋“ค๊ณ  ์‚ฌ๋žŒ์€ ์ตœ์ข… ์Šน์ธ๋งŒ ํ•˜๋Š” ๊ตฌ์กฐ๊ฐ€ ๊ฐ€์žฅ ํ˜„์‹ค์ ์ด๋ฉฐ, ํ’ˆ์งˆ ๊ทœ์น™์„ ๋ช…์‹œ์ ์œผ๋กœ ๊ฐ•์ œํ• ์ˆ˜๋ก ํ™•์žฅ์„ฑ์ด ๋†’์•„์ง„๋‹ค.