LINE 신입 SW 개발자 코딩 테스트, 이렇게 만들어졌습니다

안녕하세요. LINE Developer Relations 팀입니다. 지난 3월 10일, LINE 신입 SW 개발자 공개 채용이 시작되었습니다.

이번 인터뷰에서는 온라인 코딩 테스트 문제를 직접 준비한 LINE의 개발자들을 만나보았습니다. 앞으로 함께 하실 분들을 모시기 위한 과정이기 때문에 굉장히 열정적으로 준비하셨다고 하는데요. 과연 그 과정은 어땠을까요?

LINE에서 전 직원이 재택 근무하면서 생산성을 유지하는 방법

코로나19가 확산되고 있다는 뉴스를 막 접했던 이번 사태 발생 초기에는, 그 소식이 이렇게나 빨리 실제 업무 환경에 영향을 미치리라고는 생각하지 못했습니다. 하지만 상황이 예상보다 급박하게 진행되면서, LINE에선 전 직원에게 재택 근무를 적극 권장했고, 실제로 현재 매우 소수의 인원만 사무실로 출근하고 있습니다.

LINE에는 이번 사태로 인해 전 직원에게 재택 근무를 권장하기 전에도 제한적으로 원격으로 근무할 수 있는 제도가 있었습니다. 그럼에도 전사적으로 재택 근무를 시행하기 전후로 많은 고민을 하게 되었는데요. 2월 말부터 전 직원이 적극적으로 재택 근무에 임하면서 그동안 LINE이 겪었던 전사적 재택 근무에 대한 고민과 이를 해결하기 위한 노력을 정리해 보았습니다.

Kubernetes로 클러스터 외부 자원 관리하기

안녕하세요. 저는 LINE에서 LINE 개발자를 위한 서비스, Pipeline을 개발하고 있습니다. Pipeline은 테스트부터 서비스 배포까지 가능한, Kubernetes 기반 워크플로(workflow) 서비스입니다. 사용자가 코드를 검증하기 위한 테스트나 코드를 배포하기 위한 빌드 또는 주기적으로 작업을 실행하기 위한 크론(cron) 작업과 같이 실행하고 싶은 작업을 워크플로 형태로 Pipeline에 정의하면, Pipeline이 사용자가 정의한 대로 작업을 실행합니다. 작업의 결과는 다양한 형태로 나타나는데요. 파일이 산출되기도 하고 서비스가 실행되기도 합니다.

이번 글에서는 외부에서 발생한 트래픽을 Kubernetes 클러스터에서 실행되는 서비스로 전달하기 위해 필요한 Pipeline 컴포넌트를 직접 개발한 경험을 나누고자 합니다.

오크(ORK) – 난독화 컴파일러 도구 2편

안녕하세요. LINE에서 클라이언트 보호 솔루션인 AIR ARMOR 개발을 담당하고 있는 정상민입니다. 지난 1편에선 예제 소스 코드의 컴파일 과정을 살펴보며 난독화가 실행되는 단계를 확인했습니다. 이번 글에선 오크의 난독화가 어떻게 동작하는지 역시 예제 실행 파일을 통해서 살펴보겠습니다.

오크(ORK) – 난독화 컴파일러 도구 1편

안녕하세요. LINE에서 클라이언트 보호 솔루션인 AIR ARMOR 개발을 담당하고 있는 정상민입니다. 이전 글, ‘iOS 코드 서명에 대해서’에서는 심민영 님이 iOS 앱의 무결성과 서명자를 검증할 수 있는 iOS 코드 서명에 대해서 설명했는데요. 이번 글에서는 앱의 위변조 및 도용 방지를 위해서 자체 개발 중인 난독화 도구를 소개하려고 합니다. 예제 소스 코드를 이용해 컴파일러 동작의 각 단계를 확인하면서 난독화가 어떻게 수행되는지 살펴보겠습니다.

LINE 메시징 서버가 새해 트래픽을 대비하는 과정

LINE의 트래픽은 메신저 특유의 독특한 패턴을 갖고 있습니다. 새해 0시가 되는 순간, 사용자들이 메신저로 새해 인사를 주고받으면서 평소 대비 메시지 발송 건수가 대폭 증가하는데요. 이때 서비스 국가별 시차와 문화에 따라서 다양한 트래픽 증가 패턴이 나타납니다. LINE에선 이런 순간적인 트래픽 증가를 문제없이 처리하기 위해 매년 다양한 준비를 하고 있는데요. 이를 ‘신년 대응’이라고 부르고 있습니다. 이번 글에서는 2020년 신년 대응에서 저희가 노력했던 일들과 그 결과에 대해서 소개하려고 합니다.

코드 가독성에 대해 – 4. 의존성

안녕하세요. 커뮤니케이션 앱 LINE의 Android 클라이언트 팀 Ishikawa입니다. 이 글은 ‘코드 가독성에 관한 프레젠테이션’을 소개하는 비정기 연재 블로그의 네 번째 편입니다. 지난 글은 여기(1편2편3편)를 참고하세요. 

이번 글은 유형 간의 ‘의존성’과 관련된 이야기로, 6장과 7장에 관해 설명하겠습니다. 

Armeria로 Reactive Streams와 놀자! – 2

안녕하세요. LINE+에서 오픈소스 Armeria와 Central Dogma를 개발하고 있는 엄익훈입니다. 지난 포스팅에선 Reactive Streams의 개념을 살펴보았는데요. 이번 포스팅에선 Reactive Streams를 오픈 소스 비동기 HTTP/2, RPC, REST 클라이언트/서버 라이브러리인 Armeria에서 사용하는 방법에 대해 공유하려고 합니다.

Armeria로 Reactive Streams와 놀자! – 1

LINE+에서 오픈소스 Armeria와 Central Dogma를 개발하고 있는 엄익훈입니다. 저는 Reactive Streams의 개념과, Reactive Streams를 오픈 소스 비동기 HTTP/2, RPC, REST 클라이언트/서버 라이브러리인 Armeria에서 사용하는 방법에 대해 공유하려고 하는데요. 이번 포스팅에선 먼저 Reactive Streams의 개념을 알아보겠습니다.

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

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