225,000 Lines of Tests, Written and Merged by Agents - Kush Agrawal, Duolingo
ํ ์ค ํต์ฌ
Duolingo๋ Temporal, Cloud Code, GitHub, S3๋ฅผ ์ฎ์ ์์ด์ ํธ ํ์ดํ๋ผ์ธ์ผ๋ก iOS ์ฝ๋๋ฒ ์ด์ค์ ๋จ์ ํ ์คํธ๋ฅผ ์๋ ์์ฑยท๊ฒ์ฆยท๋จธ์งํด 225,000์ค์ ํ ์คํธ์ 59%์ MVVM ์ปค๋ฒ๋ฆฌ์ง๋ฅผ ๋ฌ์ฑํ๋ค.
์๊ฐ๋ณ ์์ฝ
-
0:01
์ ์ง๊ธ ํ ์คํธ ์๋ํ๊ฐ ํ์ํ๊ฐ iOS ์ฝ๋๋ฒ ์ด์ค๋ 2๋ฐฑ๋ง ์ค ๊ท๋ชจ๋ก ์ปค์ก๊ณ , 600๊ฐ ์ด์์ A/B ํ ์คํธ์ ์ฃผ๋น ๋ฐฐํฌ ์๋ ๋๋ฌธ์ ์ฝ๋๋ฅผ ์ฐ๋ ๊ฒ๋ณด๋ค ๊ฒ์ฆํ๋ ์ผ์ด ๋ ํฐ ๋ณ๋ชฉ์ด ๋๋ค. MVVM ๊ตฌ๊ฐ์ ํ ์คํธ ์ปค๋ฒ๋ฆฌ์ง๊ฐ ๋งค์ฐ ๋ฎ์๊ธฐ ๋๋ฌธ์, ์์ด์ ํธ๋ก ๋จ์ ํ ์คํธ๋ฅผ ๋๋ ์์ฐํ๋ ํ๋ก์ ํธ๊ฐ ์์๋๋ค.
-
3:01
์์ด์ ํธ ๊ธฐ๋ฐ ํ ์คํธ ์์ฐ ์์คํ ํต์ฌ ๋ฃจํ๋ ํ ์คํธ๊ฐ ํ์ํ ํ์ผ์ ๊ณ ๋ฅด๊ณ , ์์ด์ ํธ๊ฐ ํ ์คํธ๋ฅผ ์์ฑํ๊ณ , CI๋ก ๊ฒ์ฆํ ๋ค, ์ธ๊ฐ ๋ฆฌ๋ทฐ๋ฅผ ๊ฑฐ์ณ ๋จธ์งํ๊ณ , ๊ทธ ํผ๋๋ฐฑ์ ๋ค์ ์คํ์ ๋ฐ์ํ๋ ๊ตฌ์กฐ๋ค. ์ด ํ๋ฆ์ Temporal์ด ์ค์ผ์คํธ๋ ์ด์ ํ๊ณ , Cloud Code๊ฐ ์ฝ๋ฉ ์์ด์ ํธ๋ฅผ ๋งก์ผ๋ฉฐ, S3๊ฐ ๊ณต์ ์ํ๋ฅผ ์ ์ฅํ๊ณ , GitHub์ Datadog์ด ๊ฐ๊ฐ ์์ ๊ด๋ฆฌ์ ๊ด์ธก์ ๋ด๋นํ๋ค.
-
4:01
์๊ฒ ๊ฒ์ฆํ๋ฉฐ ์คํจ ํจํด์ ์ ๊ฑฐ ๋จผ์ ๋ก์ปฌ์์ ๊ฐ๋จํ ์ค์ผ์คํธ๋ ์ดํฐ๋ก ํ์ผ ์ ํ๊ณผ ํ ์คํธ ์์ฑ์ ๋๋ ค 50% ์์ค์ ๋จธ์ง์จ์ ํ์ธํ๋ฉฐ, ์์ด์ ํธ๊ฐ ์ด๋์ ์คํจํ๋์ง ํ์ตํ๋ค. XCTest์ Swift Testing ํผ์ฉ, ๋ชฉ ๊ฐ์ฒด ๊ตฌ์กฐ์ ๋ถ์ผ์น, ๋์์ฑ ์ด์, ํ์ด๋ฐ ๊ธฐ๋ฐ ํ ์คํธ ๊ฐ์ ๋ฌธ์ ๋ฅผ ๊ท์น๊ณผ ์คํฌ, ๋ฆฐํธ ๊ฐ์ , ์์ ๋ณด๊ฐ์ผ๋ก ์ค์๋ค.
-
6:00
๋๊ท๋ชจ ๋ฐฑํ๊ณผ PR ์๋ช ์ฃผ๊ธฐ ์ด์ ๊ฐ์ฅ ํฐ ์ฑ๊ณผ๋ ์ด๋ฏธ ๋จธ์ง๋ ์ฝ๋์ ๋ํ ๋ฐฑํ ํ ์คํธ๋ฅผ ๋งค์ผ/์ฃผ๊ธฐ์ ์ผ๋ก ์์ฑํ ์ ์ด๋ฉฐ, ํ์ผ ์ ํ๊ณผ ํฌ๊ธฐ๋ฅผ ์ ์ํํด ํ ์คํธํ๊ธฐ ์ฌ์ด ์ฝ๋๋ถํฐ ์ฐ์ ์ฒ๋ฆฌํ๋ค. ์ดํ PR์ด ์์ด์ ์ํ ๋จธ์ ๋ฐฉ์์ ์๋ช ์ฃผ๊ธฐ ์ํฌํ๋ก์ฐ๋ก CI ์ํ ํ์ธ, ๋ฆฌ๋ทฐ์ด ๋ฐฐ์ , ์ฌ์๋, ์ฟจ๋ค์ด, ์๋ ๋จธ์ง๊น์ง ๊ด๋ฆฌํด ์ด์ ๋ถ๋ด์ ์ค์๋ค.
-
9:00
ํ์ง ํต์ ์ ์ต์ข ์ฑ๊ณผ ๋ฆฐํธ ์คํจ๋ ํ๋กฌํํธ ๊ฐ์ , GitHub Actions ์๋ ์์ , ๊ท์น ์ ๋ฆฌ, Mac runner ์ ํ์ผ๋ก ์ค์๊ณ , ์์ฐ ์ฝ๋ ์์ ์ด๋ ๊ธฐ์กด ํ ์คํธ ๋ฌด๋ ฅํ ๊ฐ์ ํ์ง ์ ํ๋ ๊ฒฐ์ ๊ท์น๊ณผ LLM ์ฌ์ฌ๊ธฐ๋ก ์ฐจ๋จํ๋ค. ๊ทธ ๊ฒฐ๊ณผ 700๊ฐ ์ด์์ ํ ์คํธ PR์ด ์ธ๊ฐ ์น์ธ์ผ๋ก ๋จธ์ง๋๋ฉฐ 225,000์ค์ ํ ์คํธ๊ฐ ์ถ๊ฐ๋๊ณ , ์ ์ฒด ์ปค๋ฒ๋ฆฌ์ง๋ 11%์์ 24%, MVVM ๊ตฌ๊ฐ์ 9%์์ 59%๋ก ์ฌ๋ผ๊ฐ๋ค.
์ค๋ฌด ์ธ์ฌ์ดํธ
- ์์ด์ ํธ ๋์ ์ ์ฑํจ๋ ์์ฑ ๋ฅ๋ ฅ๋ณด๋ค ๊ฒ์ฆ ๋ฃจํ ์ค๊ณ์ ๋ฌ๋ ค ์์ผ๋ฏ๋ก, ์์ฑ-๊ฒ์ฆ-๋ฆฌ๋ทฐ-ํผ๋๋ฐฑ์ ํ๋์ ์ด์ ์์คํ ์ผ๋ก ๋ฌถ์ด์ผ ํ๋ค.
- ํ ์คํธ ์๋ํ๋ ๋ฌด์์ ํ๋๋ณด๋ค '์ ํ ์คํธ๋๋ ์ฝ๋๋ถํฐ' ์ฐ์ ์์๋ฅผ ๋งค๊ธฐ๋ ์ ํ ๋ก์ง์ด ์ค์ํ๋ฉฐ, ํ์ผ ์ ํยทํฌ๊ธฐยท๋ ๊ฑฐ์ ์ฌ๋ถ ๊ฐ์ ์ ํธ๊ฐ ํจ๊ณผ์ ์ด๋ค.
- ์ธ๊ฐ ๋ฆฌ๋ทฐ๋ฅผ ์์ ๊ธฐ๋ณด๋ค ์์ด์ ํธ๊ฐ ์ด์์ ๋ง๋ค๊ณ ์ฌ๋์ ์ต์ข ์น์ธ๋ง ํ๋ ๊ตฌ์กฐ๊ฐ ๊ฐ์ฅ ํ์ค์ ์ด๋ฉฐ, ํ์ง ๊ท์น์ ๋ช ์์ ์ผ๋ก ๊ฐ์ ํ ์๋ก ํ์ฅ์ฑ์ด ๋์์ง๋ค.