Automation

Jenkinsμ—μ„œ Kubernetes ν”ŒλŸ¬κ·ΈμΈμ„ μ΄μš©ν•΄ 보닀 쉽고 효율적으둜 μ„±λŠ₯ ν…ŒμŠ€νŠΈν•˜κΈ°

μ„±λŠ₯ ν…ŒμŠ€νŠΈλŠ” λͺ¨λ“  LINE μ„œλΉ„μŠ€μ—μ„œ μ—†μ–΄μ„œλŠ” μ•ˆλ˜λŠ” ν•„μˆ˜ κ³Όμ •μž…λ‹ˆλ‹€. ν•˜μ§€λ§Œ μ—¬λŸ¬ 이유둜 μ„±λŠ₯ ν…ŒμŠ€νŠΈμ˜ ν™˜κ²½μ„ μ„€μ •ν•˜κ³  κ΄€λ¦¬ν•˜λŠ” μž‘μ—…μ΄ 항상 쉽고 효율적인 것은 μ•„λ‹™λ‹ˆλ‹€.

이번 κΈ€μ—μ„œλŠ” Jenkins Kubernetes ν”ŒλŸ¬κ·ΈμΈμ˜ 동적 μžμ› 관리λ₯Ό μ΄μš©ν•΄ μ΄λŸ¬ν•œ 문제λ₯Ό ν•΄κ²°ν•  수 μžˆλŠ” 방법에 λŒ€ν•΄ 이야기해 λ³΄κ² μŠ΅λ‹ˆλ‹€. LINE Taiwanμ—μ„œλŠ” λŒ€λΆ€λΆ„ k6λ₯Ό ν…ŒμŠ€νŠΈ 툴둜 μ‚¬μš©ν•˜κΈ° λ•Œλ¬Έμ— κΈ€μ˜ λ‚΄μš©μ€ k6λ₯Ό 기반으둜 ν•˜κ³  μžˆμ§€λ§Œ λ‹€λ₯Έ νˆ΄μ„ μ‚¬μš©ν•˜λŠ” κ²½μš°μ—λ„ 큰 μ°¨μ΄λŠ” 없을 거라고 μƒκ°ν•©λ‹ˆλ‹€.

μ„œλ²„ μ‚¬μ΄λ“œ ν…ŒμŠ€νŠΈ μžλ™ν™” μ—¬μ • – 5. μ„±λŠ₯ ν…ŒμŠ€νŠΈ 리포트 생성 및 μžλ™ν™” μ‹œμŠ€ν…œ 업무 적용 κ²°κ³Ό

μ•ˆλ…•ν•˜μ„Έμš”. LINE λ―Έλ””μ–΄ ν”Œλž«νΌ 개발과 운영 업무λ₯Ό λ‹΄λ‹Ήν•˜κ³  μžˆλŠ” ν•˜νƒœν˜Έμž…λ‹ˆλ‹€. μ§€λ‚œ κΈ€(4편)에선 μ•žμ„œ λΈ”λ‘œκ·Έ(μ„œλ²„ μ‚¬μ΄λ“œ ν…ŒμŠ€νŠΈ μžλ™ν™” μ—¬μ • 1편, 2편, 3편)λ₯Ό 톡해 μ†Œκ°œν–ˆλ˜ μžλ™ν™” μ‹œμŠ€ν…œμ— μ΄μ–΄μ„œ μ„±λŠ₯ ν…ŒμŠ€νŠΈλ₯Ό μžλ™ν™”ν•˜κ²Œ 된 계기와 λͺ©ν‘œ, κ΅¬μ„±ν•œ ν™˜κ²½μ— λŒ€ν•΄ μ†Œκ°œν–ˆλŠ”λ°μš”. 이번 글에선 μžλ™ν™”λœ μ„±λŠ₯ ν…ŒμŠ€νŠΈμ˜ 리포트λ₯Ό μƒμ„±ν•œ 방법과 μžλ™ν™”λœ μ„±λŠ₯ ν…ŒμŠ€νŠΈλ₯Ό μ‹€μ œλ‘œ μ μš©ν•˜λ©΄μ„œ κ²ͺμ—ˆλ˜ 일을 κ³΅μœ ν•˜κ² μŠ΅λ‹ˆλ‹€.

μ„œλ²„ μ‚¬μ΄λ“œ ν…ŒμŠ€νŠΈ μžλ™ν™” μ—¬μ • – 4. μ„±λŠ₯ ν…ŒμŠ€νŠΈ μžλ™ν™” λͺ©ν‘œ μ„€μ • 및 ν…ŒμŠ€νŠΈ ν™˜κ²½ ꡬ성

μ•ˆλ…•ν•˜μ„Έμš”. LINE λ―Έλ””μ–΄ ν”Œλž«νΌ 개발과 운영 업무λ₯Ό λ‹΄λ‹Ήν•˜κ³  μžˆλŠ” ν•˜νƒœν˜Έμž…λ‹ˆλ‹€. LINE λ‚΄ μˆ˜λ§Žμ€ μ„œλΉ„μŠ€κ°€ μ‚¬μš©ν•˜λŠ” λ―Έλ””μ–΄ ν”Œλž«νΌμ€ μ•žμ„œ λΈ”λ‘œκ·Έ(μ„œλ²„ μ‚¬μ΄λ“œ ν…ŒμŠ€νŠΈ μžλ™ν™” μ—¬μ • 1편, 2편, 3편)λ₯Ό 톡해 μ†Œκ°œν–ˆλ˜ μžλ™ν™” μ‹œμŠ€ν…œμ„ μ΄μš©ν•΄ μ§€μ†μ μœΌλ‘œ ν…ŒμŠ€νŠΈν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. κ°œλ°œμžλ“€μ€ μžλ™ν™” μ‹œμŠ€ν…œμ— 계속 μΆ”κ°€λ˜λŠ” ν…ŒμŠ€νŠΈ μΌ€μ΄μŠ€ 덕뢄에 λ‹¨μˆœν•œ API 호좜과 κ΄€λ ¨λœ 문제만 ν™•μΈν•˜λŠ” 것이 μ•„λ‹ˆλΌ, μ‹€μ œ μ„œλΉ„μŠ€μ—μ„œ APIλ₯Ό ν˜ΈμΆœν•˜λŠ” 흐름 쀑에 λ°œμƒν•˜λŠ” λ¬Έμ œλ„ μ½”λ“œ 리뷰 μ‹œμž‘ μ „λΆ€ν„° ν™•μΈν•˜λŠ” λ“± λ§Žμ€ 도움을 λ°›κ³  μžˆλŠ”λ°μš”. 이번 κΈ€μ—μ„œλŠ” 더 λ‚˜μ•„κ°€ μ„±λŠ₯ ν…ŒμŠ€νŠΈλ₯Ό μžλ™ν™”ν•˜λ©° κ²ͺ은 일듀을 κ³΅μœ ν•˜κ³ μž ν•©λ‹ˆλ‹€.

mitmproxyλ₯Ό ν™œμš©ν•΄ ꡬ글 μ• λ„λ¦¬ν‹±μŠ€ ν…ŒμŠ€νŠΈ μžλ™ν™”ν•˜κΈ°

μ•ˆλ…•ν•˜μ„Έμš”. LINE λŒ€λ§Œμ—μ„œ LINE TODAY κ΄€λ ¨ μžλ™ν™” QA μ—”μ§€λ‹ˆμ–΄λ‘œ μΌν•˜κ³  μžˆλŠ” Edward와 Mikiμž…λ‹ˆλ‹€. 이번 κΈ€μ—μ„œλŠ” LINE TODAYμ—μ„œ μ›Ήμ‚¬μ΄νŠΈλ₯Ό μ΅œμ ν™”ν•˜κΈ° μœ„ν•΄ μ‚¬μš©ν•˜λŠ” ꡬ글 μ• λ„λ¦¬ν‹±μŠ€(Google Analytics, GA)의 ν…ŒμŠ€νŠΈ μžλ™ν™” 방법에 λŒ€ν•΄ μ•Œμ•„λ³΄λ €κ³  ν•©λ‹ˆλ‹€.


Model Controller Testsuite (MCT)을 μ΄μš©ν•œ ν…ŒμŠ€νŠΈ μžλ™ν™” ꡬ좕

Model–view–controller(MVC)λŠ” λ””μžμΈ νŒ¨ν„΄μœΌλ‘œ, ν”„λ‘œκ·Έλž¨ κ°œλ°œμ„ κ°„μ†Œν™”ν•˜κ³  μœ μ§€λ³΄μˆ˜ν•˜κΈ° μ‰½κ²Œ λ§Œλ“œλŠ” 것이 μ£Ό λͺ©μ μž…λ‹ˆλ‹€. ν”„λ‘œκ·Έλž¨μ„ μ„Έ 개의 논리적 λͺ¨λ“ˆλ‘œ λ‚˜λˆ„κ³  각 λͺ¨λ“ˆμ— ꡬ체적인 역할을 λΆ€μ—¬ν•˜λŠ” 방식인데, μ΄λŠ” μ „μ†‘ν•˜λŠ” 데이터와 μ‚¬μš©μžμ—κ²Œ ν‘œμΆœν•  κ²°κ³Όλ₯Ό 뢄리해 닀루기 μœ„ν•¨μž…λ‹ˆλ‹€. MVC λ””μžμΈ νŒ¨ν„΄μ„ μ μš©ν•΄μ„œ λͺ¨λ“ˆμ„ λΆ„λ¦¬ν•˜λ©΄ μ½”λ“œμ˜ μž¬μ‚¬μš©μ„±μ΄ 높아지고 μ—­ν•  λ³„λ‘œ μš”κ΅¬ 사항을 λ‚˜λˆ„μ–΄ λ³‘λ ¬μ μœΌλ‘œ κ°œλ°œμ„ 진행할 수 μžˆμŠ΅λ‹ˆλ‹€.

QA μ—”μ§€λ‹ˆμ–΄ μ—­μ‹œ MVC λ””μžμΈ νŒ¨ν„΄μ΄ κ°–λŠ” λͺ¨λ“ˆν™”μ˜ μž₯점을 ν…ŒμŠ€νŠΈ 개발 μ•„ν‚€ν…μ²˜μ— μ μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 이 κΈ€μ—μ„œλŠ” MVC λ””μžμΈ νŒ¨ν„΄μ—μ„œ μ˜κ°μ„ λ°›μ•„ LINE TAIWANμ—μ„œ κ°œλ°œν•˜μ—¬ ν™œμš©ν•˜κ³  μžˆλŠ” ν…ŒμŠ€νŠΈ μžλ™ν™” μ•„ν‚€ν…μ²˜μΈ Model Controller Testsuite(MCT)λ₯Ό μ„€λͺ…ν•˜κ³ , 이λ₯Ό μ΄μš©ν•΄ ν…ŒμŠ€νŠΈ μ•„ν‚€ν…μ²˜λ₯Ό λ”μš± μ•ˆμ •μ μ΄κ³  μœ μ§€λ³΄μˆ˜ν•˜κΈ° μ‰½κ²Œ λ§Œλ“œλŠ” 방법을 μ•Œμ•„λ³΄κ² μŠ΅λ‹ˆλ‹€.