Management/Operation

코로나 시대 원격 QA! 오픈소스 디바이스팜 STF 도입기

안녕하세요. Software Quality Engineering 팀 임지훈입니다. QA(Quality Assurance) 단계에서 특정 단말기에서만 문제가 발생하는 경우가 종종 있습니다. 하지만 코로나19로 인해 해외 출장은 물론 출근조차 어려워지면서 원격지의 단말기를 입수해 테스트하는 일이 불가능한 경우가 많아졌습니다. 이를 해결하기 위해 디바이스팜을 구축하고 테스트 자동화에 활용한 사례를 여러분께 공유하려고 합니다.

사용자 스토리 포인트로 스마트하게 프로젝트 진행하기(feat. LINE Pay 개발 팀)

시작하면서 이번 글에서는 LINE Pay에서 앱 개발과 서버 개발을 진행하면서 스토리 포인트를 적용하고 활용한 사례를 공유합니다. 이 사례를 통해서 글을 읽는 여러분도 스토리 포인트를 제대로 이해하고 활용할 수 있는 기회를 얻으시길 바랍니다. 스토리 포인트? 스토리 포인트를 설명하기 전에 스토리 포인트와 관련된 세 가지 개념을 먼저 알아보겠습니다. 사용자 스토리(user story): 사용자 스토리는 통상 ‘요구 사항’이라고 부르는 시스템의 기능 설명을 […]

지속 가능한 소프트웨어 설계 패턴: 포트와 어댑터 아키텍처 적용하기

육각형 설계(Hexagonal Architecture)로 더 잘 알려져 있는 포트와 어댑터 설계(Ports and Adapters Architecture)는, 인터페이스나 기반 요소(infrastructure)의 변경에 영향을 받지 않는 핵심 코드를 만들고 이를 견고하게 관리하는 것이 목표입니다.

포트와 어댑터 설계를 적용하면 인터페이스나 기반 요소가 사용자의 요구 사항 혹은 수용 능력에 영향을 받아 변경된다고 하더라도 애플리케이션의 주요 동작(도메인 로직 혹은 비즈니스 로직)에는 아무런 영향을 주지 않습니다. 도메인 로직을 견고하게 유지하며 소프트웨어의 지속 가능성을 높일 수 있는 것이죠. 저는 이번 글을 통해 포트와 어댑터가 무엇인지, 이 설계를 따르면 코드가 어떤 식으로 조직되는지, 실제 인터페이스나 기반 요소 등 한 번 변경되면 작업량이 많은 일에도 어떻게 쉽게 적용되는지, 설계에 따라 개발된 업무 로직을 얼마나 쉽게 테스트할 수 있는지를 보여드리겠습니다. 이를 통해 포트와 어댑터 설계의 장점을 실제로 보여드리고자 합니다.

LINE 통화: 최고의 품질을 위한 8년간의 여정

요즘엔 대부분의 사람들이 기존의 유료 통화 대신에 메신저에서 대화하다가 클릭 한 번으로 통화할 수 있는 인터넷 전화를 사용합니다. 인터넷 전화는 통화 품질도 좋고, 무엇보다 전 세계 누구와 통화해도 무료라는 점이 매력적이죠. 이런 장점 덕분에 인터넷 전화 서비스는 본격적으로 시작된 지 채 10년도 지나지 않아 기존의 유료 통화를 빠른 속도로 대체해 나갔습니다. 하지만 인터넷 전화는 그 특성상 통화 중에 음성이 끊기거나 통화 자체가 안되는 경우가 가끔씩 발생합니다. 유료 서비스라면 해당 통신사에 불만을 접수해서 통화 품질을 개선하도록 만들 수 있겠지만, 인터넷 전화는 무료 서비스이기 때문에 통화 음질이 좋지 않다면 사용자들은 통화 품질을 개선하기보다는 다른 서비스로 발길을 돌리는 쪽을 선택하게 됩니다. 따라서 사용자가 무료 통화 서비스를 계속 사용하길 원한다면 좋은 통화 품질을 유지하는 것이 매우 중요합니다. 이번 글에서는 LINE 무료 통화 서비스가 최고의 품질을 유지하기 위해 얼마나 많은 노력을 기울이고 있는지 공유하겠습니다.

서버 사이드 테스트 자동화 여정 – 5. 성능 테스트 리포트 생성 및 자동화 시스템 업무 적용 결과

안녕하세요. LINE 미디어 플랫폼 개발과 운영 업무를 담당하고 있는 하태호입니다. 지난 글(4편)에선 앞서 블로그(서버 사이드 테스트 자동화 여정 1편, 2편, 3편)를 통해 소개했던 자동화 시스템에 이어서 성능 테스트를 자동화하게 된 계기와 목표, 구성한 환경에 대해 소개했는데요. 이번 글에선 자동화된 성능 테스트의 리포트를 생성한 방법과 자동화된 성능 테스트를 실제로 적용하면서 겪었던 일을 공유하겠습니다.

서버 사이드 테스트 자동화 여정 – 4. 성능 테스트 자동화 목표 설정 및 테스트 환경 구성

안녕하세요. LINE 미디어 플랫폼 개발과 운영 업무를 담당하고 있는 하태호입니다. LINE 내 수많은 서비스가 사용하는 미디어 플랫폼은 앞서 블로그(서버 사이드 테스트 자동화 여정 1편, 2편, 3편)를 통해 소개했던 자동화 시스템을 이용해 지속적으로 테스트하고 있습니다. 개발자들은 자동화 시스템에 계속 추가되는 테스트 케이스 덕분에 단순한 API 호출과 관련된 문제만 확인하는 것이 아니라, 실제 서비스에서 API를 호출하는 흐름 중에 발생하는 문제도 코드 리뷰 시작 전부터 확인하는 등 많은 도움을 받고 있는데요. 이번 글에서는 더 나아가 성능 테스트를 자동화하며 겪은 일들을 공유하고자 합니다.

LINE 트랜스코딩 서버 아키텍처 개선기 – 2

안녕하세요. LINE에서 트랜스코딩(Transcoding) 서버 개발과 운영 업무를 담당하고 있는 백승훈입니다. 1편에서 LINE의 트랜스코딩 서버인 ‘리코더(Licoder, LIne TransCODER)’를 소개하고 그 기능과 인터페이스에 대해 말씀드렸는데요. 이번 글에서는 리코더의 초기 아키텍처를 설명하고 이 아키텍처가 LINE의 급격한 성장에 따라 어떻게 변화했는지 공유하겠습니다.

LINE 트랜스코딩 서버 아키텍처 개선기 – 1

안녕하세요. LINE에서 트랜스코딩(transcoding) 서버 개발과 운영 업무를 담당하고 있는 백승훈입니다. 우리는 생활 속에서 다양한 방식으로 동영상을 생산하고 소비하고 있습니다. 자신의 스마트폰으로 직접 동영상을 촬영하기도 하고, 누군가가 메신저로 공유해 준 동영상을 감상하기도 하고, 인터넷에 공개된 동영상을 다운로드하기도 합니다. 그런데 이렇게 다양한 곳에서 다양한 방식으로 얻은 동영상이 간혹 재생되지 않는 경우가 있습니다. 재생할 수 없는 이유에는 여러 가지가 있을 수 있지만, 대부분 스마트폰의 코덱이나 성능의 제약이 문제가 됩니다. LINE에서는 이런 문제를 어떻게 해결하고 있을까요?
이번 글에서는 전 세계의 LINE 사용자가 발생시킨 동영상 트래픽을 처리하고 있는 LINE 트랜스코딩 서버의 아키텍처에 대해 이야기하겠습니다.

서버 사이드 테스트 자동화 여정 – 3. Docker를 활용한 통합 테스트 환경 개선

2편에서 소개한 Docker 기반의 통합 테스트를 이용하여 PR 단위 회귀 테스트를 수행할 수 있게 되면서 적은 테스트 비용으로도 안정적으로 서비스를 개발할 수 있게 되었습니다. 하지만 Docker의 기술적 특성 때문에 발생하는 문제들이 있었습니다. 이번 글에서는 Docker의 기술적 특성 때문에 발생했던 여러 문제를 해결하는 과정을 소개하고, 문제를 해결하기 위해 구축했던 인프라 환경을 활용하여 시스템을 추가적으로 개선했던 사례를 소개하고자 합니다.