UICollectionView를 이용한 LINE iOS 대화방 리팩토링 – 2

지난 1편에서 UICollectionView의 커스텀 레이아웃 기능을 활용해 대화방 UI를 표시하는 방법에 대해 설명했습니다. 이번 글에서는 대화방에 뷰 모델을 적용한 방법과 비동기 콘텐츠 로딩을 처리한 방법을 설명한 뒤 리팩토링하면서 어려웠던 점과 개선된 점, 그리고 앞으로 더 개선해 나가야 할 점들에 대해서 이야기해 보겠습니다.

UICollectionView를 이용한 LINE iOS 대화방 리팩토링 – 1

LINE의 대화방 화면은 사용자가 가장 많이 사용하는 화면 중 하나이며 새로운 기능이 계속 추가되고 있습니다. 그에 따라 코드가 점점 복잡해지면서 최근에 리팩토링을 진행했고, 그 과정에서 UICollectionView를 도입했습니다. 저희는 이번 리팩토링 과정에서 사용한 iOS 기술과 뷰(view) 모델 도입을 중점으로 대화방의 코드를 어떻게 개선했는지 블로그를 통해 두 번에 걸쳐 공유하려고 합니다.

코드 가독성에 대해 – 5. 리뷰와 정리

안녕하세요. 커뮤니케이션 앱 LINE의 Android 클라이언트 팀 Ishikawa입니다. 이 글은 ‘코드 가독성에 관한 프레젠테이션’을 소개하는 비정기 연재 블로그의 다섯 번째 글(1편, 2편, 3편, 4편)이자 마지막 글입니다. 이번 글에서는 8장 ‘리뷰’에 관해 설명한 뒤 본 연재의 요점을 정리하겠습니다.

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

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

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

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

Armeria의 서킷 브레이커 사용해 보기

안녕하세요. LINE에서 OpenChat 서비스의 백엔드를 개발하고 있는 주승환입니다. 이번 글에서는 간단한 코드 예제와 함께 Armeria의 서킷 브레이커 기능을 사용해 보며 정리한 내용을 공유하고자 합니다.

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

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

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

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

LINE Timeline의 새로운 도전 1편 – 추천 컨텐츠 탐색을 위한 Discover와 새로운 구독 모델 Follow

LINE 타임라인 서비스에 ‘Discover’와 새로운 구독 모델인 ‘Follow’ 기능이 추가되었습니다. 사용자에게는 많이 낯설지 않은 기능일 것이나, 그 속에서 우리가 고민하고 노력했던 부분들이 무엇인지 공유하고 싶어 이 글을 작성하게 되었습니다. 이번 소개 글을 시작으로 조금 더 자세한 내용까지 전해 드리고자 총 3부작으로 기획했습니다.

  • LINE Timeline의 새로운 도전 1편 – 추천 컨텐츠 탐색을 위한 Discover와 새로운 구독 모델 Follow
  • LINE Timeline의 새로운 도전 2편 – Discover Delivery System 소개
  • LINE Timeline의 새로운 도전 3편 – Discover 추천 모델 자세히 살펴보기

Android 취약점 탐색 자동화를 위한 Jandroid 적용기

안녕하세요. LINE에서 보안 업무를 담당하고 있는 박선주입니다. LINE 보안 팀에서는 릴리스될 서비스와 애플리케이션의 보안 위협을 사전에 발견하여 제품을 더 안전하게 만들기 위해 노력하고 있습니다. 서비스나 애플리케이션을 대상으로 보안 검수를 진행하다 보면, 기존에 보안 이슈가 발생했던 코드와 유사한 패턴을 사용하거나 취약한 패턴의 코드를 재사용하여 취약점이 발생하는 경우가 많습니다. 이처럼 빈번하게 발생하는 보안 이슈를 쉽고 빠르게 탐지하기 위해서 상용 솔루션을 사용하거나 자체적인 도구를 개발하고 있는데요. 이번 포스팅에서는 Android 애플리케이션에서 사용할 수 있는 자동화 취약점 탐색 도구인 Jandroid를 LINE Android 애플리케이션에 적용하여 보안 이슈를 발견한 내용을 공유하고자 합니다.