뉴 λ…Έλ©€ μ‹œλŒ€μ˜ μΈμ…‰μ…˜ μ›Œν¬μˆ

μ•ˆλ…•ν•˜μ„Έμš”. LINE Plus ν…Œν¬ ν”„λ‘œμ νŠΈ λ§€λ‹ˆμ € μœ€μΈμ„μž…λ‹ˆλ‹€. μ €λŠ” LINEμ—μ„œ μ§„ν–‰ν•˜λŠ” λ‹€μ–‘ν•œ 크둜슀 νŽ‘μ…”λ„(cross-functional) ν”„λ‘œμ νŠΈμ— μ°Έμ—¬ν•΄μ„œ 각 ν”„λ‘œμ νŠΈκ°€ μ„±κ³΅μ μœΌλ‘œ 진행될 수 μžˆλ„λ‘ λ•λŠ” λ‹€μ–‘ν•œ ν™œλ™μ„ μˆ˜ν–‰ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. λ˜ν•œ LINEμ—μ„œ μ§„ν–‰ν•˜λŠ” κΈ€λ‘œλ²Œ ν”„λ‘œμ νŠΈ λ§€λ‹ˆμ € νŠΈλ ˆμ΄λ‹ κ³Όμ •μ—μ„œ νŠΈλ ˆμ΄λ„ˆλ‘œ ν™œλ™ν•˜λ©΄μ„œ λ‹€μ–‘ν•œ ν”„λ‘œμ νŠΈμ—μ„œ μ μš©ν•΄ λ³Έ μ‹€μ²œ 방법을 κ³΅μœ ν•˜λ©° LINE μž„μ§μ›λ“€μ˜ ν”„λ‘œμ νŠΈ μˆ˜ν–‰ λŠ₯λ ₯을 높이기 μœ„ν•΄ λ…Έλ ₯ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. 이번 κΈ€μ—μ„œλŠ” μ½”λ‘œλ‚˜19 μ‚¬νƒœλ‘œ λ„λž˜ν•œ 뉴 λ…Έλ©€ μ‹œλŒ€μ— ν”„λ‘œμ νŠΈ ꡬ성원듀이 ν•¨κ»˜ μ»¨μ„Όμ„œμŠ€λ₯Ό 이룰 수 μžˆλŠ” μΈμ…‰μ…˜ μ›Œν¬μˆμ— λŒ€ν•΄ μ†Œκ°œν•˜λ €κ³  ν•©λ‹ˆλ‹€.

κ°œλ°œμžμ™€ λ””μžμ΄λ„ˆμ˜ ν˜‘μ—…μ„ μœ„ν•œ LINE λ””μžμΈ μ‹œμŠ€ν…œ, LDS μ†Œκ°œ

μ•ˆλ…•ν•˜μ„Έμš”. LINE Plusμ—μ„œ LDS(LINE Design System)의 전체 PM을 맑고 μžˆλŠ” μ‹œλ‹ˆμ–΄ λ¦¬λ“œ λ°•μ œν˜ΈλΌκ³  ν•©λ‹ˆλ‹€. 이번 κΈ€μ—μ„œλŠ” LINE의 업무 효율과 μ œν’ˆ 완성도λ₯Ό ν–₯μƒμ‹œν‚€κ³  μžˆλŠ” LDS에 λŒ€ν•΄ λ§μ”€λ“œλ¦¬κ² μŠ΅λ‹ˆλ‹€. λ¨Όμ € LDSλ₯Ό κ΅¬μΆ•ν•˜κ²Œ 된 계기와 LDS의 ꡬ쑰 및 μš”μ†Œμ— λŒ€ν•΄ λ§μ”€λ“œλ¦¬κ³ , λ‹€μŒμœΌλ‘œ LINE λ©”μ‹ μ € 앱을 μœ„ν•œ λ””μžμΈ μ‹œμŠ€ν…œκ³Ό LINE의 κΈ€λ‘œλ²Œ νŒ¨λ°€λ¦¬ μ„œλΉ„μŠ€λ₯Ό μœ„ν•œ λ””μžμΈ μ‹œμŠ€ν…œμ— λŒ€ν•΄ λ§μ”€λ“œλ¦¬κ² μŠ΅λ‹ˆλ‹€. λ§ˆμ§€λ§‰μœΌλ‘œ λ””μžμΈ μ‹œμŠ€ν…œμ„ ꡬ좕할 λ•Œ κ³ λ €ν•΄μ•Ό ν•  λ‚΄μš©μ— λŒ€ν•΄ κ³΅μœ ν•˜κ² μŠ΅λ‹ˆλ‹€.

LINE Android CI에 App Bundle 적용기

μ•ˆλ…•ν•˜μ„Έμš”. LINE Plus μ°¨μ˜ν˜Έμž…λ‹ˆλ‹€. LINE Android νŒ€μ—μ„œλŠ” μž‘λ…„ 7μ›”λΆ€ν„° Android App Bundle을 λ„μž…ν•΄μ„œ μ•± κ°œλ°œμ„ μ§„ν–‰ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. μ΄μ œ 1λ…„ 쑰금 λ„˜κ²Œ μ‚¬μš©ν–ˆλŠ”λ°μš”. LINE Android CI에 App Bundle을 μ μš©ν•˜λ©΄μ„œ κ²ͺμ—ˆλ˜ μ—¬λŸ¬ 가지 어렀움을 κ³΅μœ ν•˜λ €κ³  ν•©λ‹ˆλ‹€.

λ¨Όμ € App Bundleκ³Ό μœ λ‹ˆλ²„μ„€ APK에 λŒ€ν•΄ κ°„λ‹¨νžˆ μ†Œκ°œν•˜κ³  LINE Android CI μ‹œμŠ€ν…œμ—μ„œ App Bundle에 λŒ€μ‘ν•˜κΈ° μœ„ν•΄ μ–΄λ– ν•œ μž‘μ—…μ„ ν–ˆλŠ”μ§€ μ‚΄νŽ΄λ³΄κ² μŠ΅λ‹ˆλ‹€. κ·Έλ‹€μŒ CI μ‹œμŠ€ν…œμ— μ μš©ν–ˆμ„ λ•Œ λ°œκ²¬ν•œ λͺ‡ 가지 였λ₯˜μ™€ 이λ₯Ό μ–΄λ–»κ²Œ ν•΄κ²°ν–ˆλŠ”μ§€ κ³΅μœ ν•˜λ €κ³  ν•©λ‹ˆλ‹€.

CI/CD μžλ™ν™”κ°€ κ°€μ Έλ‹€ μ€€ 행볡

μ•ˆλ…•ν•˜μ„Έμš”. LINE Plusμ—μ„œ Android ν΄λΌμ΄μ–ΈνŠΈ λΉŒλ“œ 배포 μ‹œμŠ€ν…œ 관리 및 μžλ™ν™” 업무λ₯Ό μˆ˜ν–‰ν•˜κ³  μžˆλŠ” ꡬ상λͺ¨μž…λ‹ˆλ‹€. 이번 κΈ€μ—μ„œλŠ” μž‘μ€ 것듀을 λͺ¨μ•„ 행볡을 이뀄낸 CI/CD μžλ™ν™” 사둀λ₯Ό κ³΅μœ ν•˜λ €κ³  ν•©λ‹ˆλ‹€.

LINE AR λ Œλ”λ§ 엔진 개발기

μ•ˆλ…•ν•˜μ„Έμš”. LINE PLUS ν”Œλž«νΌ μ—”μ§€λ‹ˆμ–΄λ§ 2 μ„Όν„°μ—μ„œ AR λ Œλ”λ§ 엔진을 κ°œλ°œν•˜κ³  μžˆλŠ” μž„μš©μ„ μž…λ‹ˆλ‹€. ν˜„μž¬ νŒ€ 리더λ₯Ό 맑아 ν”„λ‘œμ νŠΈλ₯Ό μ „λ°˜μ μœΌλ‘œ λ§€λ‹ˆμ§•ν•˜λ©° κ°œλ°œμ„ λ¦¬λ”©ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. 이번 κΈ€μ˜ μ£Όμ œλŠ” AR(Augmented Reality)μž…λ‹ˆλ‹€. κ·Έμ€‘μ—μ„œλ„ AR을 λ””μŠ€ν”Œλ ˆμ΄μ— ‘κ·Έλ €μ£ΌλŠ”’ 역할을 ν•˜λŠ” λ Œλ”λ§ 엔진에 κ΄€ν•œ μ΄μ•ΌκΈ°μž…λ‹ˆλ‹€. λ¨Όμ € AR이 무엇인지 μ†Œκ°œν•˜κ³  LINE에 μ–΄λ–€ AR μ„œλΉ„μŠ€λ“€μ΄ μžˆλŠ”μ§€ κ°„λ‹¨ν•˜κ²Œ λ§μ”€λ“œλ¦¬κ² μŠ΅λ‹ˆλ‹€. κ·Έλ‹€μŒ LINEμ—μ„œ κ°œλ°œν•œ AR λ Œλ”λ§ 엔진을 μ†Œκ°œν•˜λ €λŠ”λ°μš”. AR λ Œλ”λ§ 엔진을 κ°œλ°œν•˜λ©΄μ„œ μ–΄λ–€ 문제λ₯Ό κ²ͺμ—ˆκ³  μ–΄λ–»κ²Œ ν•΄κ²°ν–ˆλŠ”μ§€, λ˜ν•œ κ°œλ°œν•œ 엔진을 λŒ€ν­ κ°œνŽΈν•˜κ²Œ 된 μ΄μ•ΌκΈ°κΉŒμ§€ κ³΅μœ ν•˜κ² μŠ΅λ‹ˆλ‹€.

LINE λ©”μ‹ μ € 앱에 온 λ””λ°”μ΄μŠ€ λ¨Έμ‹  λŸ¬λ‹ μ μš©ν•˜κΈ°

μ•ˆλ…•ν•˜μ„Έμš”. ν•œκ΅­μ—μ„œ LINE을 κ°œλ°œν•˜κ³  μžˆλŠ” μž₯ν˜μž¬μž…λ‹ˆλ‹€. 이번 κΈ€μ—μ„œλŠ” λ¨Έμ‹  λŸ¬λ‹ κΈ°λŠ₯을 LINE 앱에 μ μš©ν•΄ λ³Έ κ²½ν—˜μ„ κ³΅μœ ν•˜κ² μŠ΅λ‹ˆλ‹€. κ°œλ°œμžκ°€ μ•„λ‹Œ 뢄듀이 읽어도 도움이 될 수 μžˆλ„λ‘ μƒμ„Έν•œ 기술 λ‚΄μš©λ³΄λ‹€λŠ” 개발 과정에 λŒ€ν•œ μ „λ°˜μ μΈ 이야기λ₯Ό 닀루렀고 ν•©λ‹ˆλ‹€. 이 κΈ€μ—μ„œ μ˜ˆμ‹œλ‘œ μ„€λͺ…λ“œλ¦΄ μ„Έ 가지 ν”„λ‘œμ νŠΈμ™€ κ·Έ ν”„λ‘œμ νŠΈλ₯Ό μ§„ν–‰ν•˜λ©° 얻은 κ΅ν›ˆλ“€μ΄ 이번 κΈ€μ—μ„œ 특히 μ€‘μš”ν•œ 뢀뢄일 것 κ°™μŠ΅λ‹ˆλ‹€.

LINE κ΄‘κ³  μ„œλ²„ 개발 νŒ€μ˜ DevOps λ¬Έν™”

이번 κΈ€μ—μ„œλŠ” λŒ€μš©λŸ‰ νŠΈλž˜ν”½μ„ λ‹€λ£¨λŠ” κ³ μ„±λŠ₯ μ„œλ²„λ₯Ό μ‹€μˆ˜ 없이 μ™„λ²½ν•˜κ²Œ κ°œλ°œν•˜κΈ° μœ„ν•΄ λ…Έλ ₯ν•˜κ³  μžˆλŠ” 우리 νŒ€μ˜ DevOps 문화에 λŒ€ν•΄μ„œ κ³΅μœ ν•˜λ €λŠ”λ°μš”. DevOps의 μ—¬λŸ¬ ν”„λ‘œμ„ΈμŠ€ μ€‘μ—μ„œ μž‘μ—…μ„ 이슈둜 관리(plan)ν•˜λ©΄μ„œ μ½”λ“œλ₯Ό μž‘μ„±(code)ν•΄μ„œ λΉŒλ“œ(build)ν•˜κ³  ν…ŒμŠ€νŠΈ(test)λ₯Ό μˆ˜ν–‰ν•œ λ’€ μƒˆ 버전을 μΆœμ‹œ(release)ν•΄μ„œ 배포(deploy)ν•˜λŠ” 과정에 λŒ€ν•œ 사둀λ₯Ό κ³΅μœ ν•˜κ² μŠ΅λ‹ˆλ‹€.

LINE의 QAλŠ” μ–΄λ–»κ²Œ μΌν• κΉŒ?

μ•ˆλ…•ν•˜μ„Έμš”. μ €λŠ” LINEμ—μ„œ μ„œλΉ„μŠ€ QA둜 κ·Όλ¬΄ν•˜κ³  μžˆλŠ” κΉ€λ™μ„±μž…λ‹ˆλ‹€. 이번 κΈ€μ—μ„œλŠ” LINEμ—μ„œ κ·Όλ¬΄ν•˜λŠ” QAκ°€ μ–΄λ–€ 역할을 λ‹΄λ‹Ήν•˜κ³  있으며 μ–΄λ–€ λͺ©ν‘œλ₯Ό μ„Έμš°κ³  μ–΄λ–»κ²Œ μΌν•˜κ³  μžˆλŠ”μ§€μ— λŒ€ν•΄μ„œ μ΄μ•ΌκΈ°ν•˜λ €κ³  ν•©λ‹ˆλ‹€.

Sentry둜 사내 μ—λŸ¬ 둜그 μˆ˜μ§‘ μ‹œμŠ€ν…œ κ΅¬μΆ•ν•˜κΈ°

μ•ˆλ…•ν•˜μ„Έμš”. LINE Plus UIT νŒ€ λ³΅λ‹€ν›ˆμž…λ‹ˆλ‹€. 이번 κΈ€μ—μ„œλŠ” Sentry 온 ν”„λ ˆλ―ΈμŠ€(On-Premise) ꡬ좕기λ₯Ό κ³΅μœ ν•˜κ² μŠ΅λ‹ˆλ‹€. LINEμ—μ„œ μ™œ Sentryλ₯Ό μ‚¬μš©ν•˜κ²Œ λλŠ”μ§€ λ¨Όμ € λ§μ”€λ“œλ¦¬κ³  ν΄λΌμš°λ“œ λŒ€μ‹  온 ν”„λ ˆλ―ΈμŠ€ λ°©μ‹μœΌλ‘œ κ΅¬μΆ•ν•˜κ²Œ 된 이유λ₯Ό μ„€λͺ…ν•œ λ’€ λ§ˆμ§€λ§‰μœΌλ‘œ μ–΄λ–»κ²Œ κ΅¬μΆ•ν–ˆλŠ”μ§€ λ§μ”€λ“œλ¦¬κ² μŠ΅λ‹ˆλ‹€.