Category Archives: Miscellaneous

효과적인 코드 리뷰를 위해서

종종 팀 내에서 코드 품질이 이슈가 됩니다. 그리고 유닛 테스트와 코드 커버리지를 향상시키는 방법에 대해 모두가 한 마디씩 던집니다. 하지만 그리 오래가진 못합니다. 모두들 다시 바빠지면서, 코드 품질에 대한 관심은 금세 식어버리기 때문입니다. 하지만 아마도 대부분은 1년 이내에 데쟈뷰를 겪게 될 것입니다. 내년이 되면 또 코드 품질이 이슈화 될 것이고, 이전에 나왔던 아이디어와 똑같은 것들을 또 테이블 위에서 보게 될 것이니까요.

안녕하세요. 저는 LINE NOW에서 테스트 자동화 관련 업무를 맡고 있는 QA(Quality Assurance) 엔지니어 Bryan Liu입니다. 이번 글에선 LINE 대만에서 유닛 테스트와 코드 리뷰 프로세스를 활성화시키기 위해 제가 했던 일들을 소개해드릴까 합니다.

(보이 스카웃 규칙 – 항상 네가 처음 만난 것보다 더 나은 상태로 코드를 만들어놓고 떠나라)
코딩을 위한 보이 스카웃 규칙, from {codemotion}

유럽 최대 소비자 가전 전시회 IFA에 IoT 플랫폼 ‘LINE Things’ 부스를 마련했습니다

안녕하세요, Developer Product실의 Jose입니다. 지난 8월 31일부터 9월 5일까지 베를린에서 열린 IFA에 참가한 후기를 전해드리겠습니다.  IFA 소개 IFA(Internationale Funkausstellung)는 매년 9월 경 베를린에서 개최되는 전시회입니다. 거슬러 올라가 보면 이 전시회는 방송 기술에 대한 국제 전시회로 시작되었다고 합니다. 역사가 길다 보니 아인슈타인 박사도 1930년에 이곳에서 연설을 한 바 있다고 하네요. 지금은 최신 가전과 가젯, IT 기술 등 세계 각국의 브랜드와 기업이 …

세계 최대 IT 경진 대회인 ‘Imagine Cup 2018’ 3위를 차지했습니다

안녕하세요? LINE에서 광고 플랫폼을 개발하고 있는 Kunihiko Sato입니다. 저는 2018년 7월 23일부터 25일까지 미국 시애틀에서 열린 Microsoft 주최 IT 경진 대회 ‘Imagine Cup‘에 일본 대표로 참가해 3위에 입상했는데요. 오늘은 그 후기를 전해드릴까 합니다. 참고로 Imagine Cup은 학생들이 참가하는 IT 경진 대회인데요. 2018년도에는 2017년 9월부터 2018년 7월 사이에 하루라도 학생이었던 사람에게는 출전권이 주어졌습니다. 저는 2018년 3월에 …

Behavior Tree를 알아봅시다

안녕하세요. 저는 Clova를 구성하는 시스템 가운데 NLU(Natural Language Understanding,자연어 이해)파트의 서버쪽 개발을 담당하고 있는 @overlast입니다.

얼마전에 Youichiro Miyake(三宅陽一郎)씨와 대담(일본어)을 나눌 기회가 있었는데요. 이야기하다보니 게임 업계에서 캐릭터 AI 등을 만들 때 자주 사용되는 Behavior Tree(행동 트리) 모델을 저는 아직 한번도 다뤄본 적이 없다는 사실을 깨달았습니다. 이에 ‘좋은 기회다’ 싶어 이참에 Behavior Tree와 기존 구현체를 사용해 보고 이 내용을 정리하게 되었습니다.


그림 1 : ‘수중에 지닌 돈과 기분에 따라 주변 자판기에서 음료 구입하기’의 Behavior Tree

테크니컬 라이팅 컨퍼런스: Write the Docs Prague 2018 방문기

안녕하세요. Clova 기술 문서 작성 및 관리 업무를 맡고 있는 Technical Writing 팀 강정일입니다.

Write the Docs(이하 WTD)는 커뮤니케이션, 문서, 그리고 사용자를 연구한 경험을 서로 공유하는 커뮤니티입니다. WTD는 특히 소프트웨어 산업과 관련된 분야에 좀 더 집중하고 있습니다. 이 커뮤니티는 매년 정기적으로 봄에는 미국 포틀랜드에서, 가을에는 체코 프라하에서 WTD 컨퍼런스를 열고 있는데요. WTD 컨퍼런스에서 참석자들은 각자가 문서 및 프로젝트를 관리하면서 얻은 경험을 공유하고, 좀 더 관심있는 주제가 있으면 토론도 하면서 새로운 사람과 뉴스를 접할 수 있는 기회를 가집니다.

이번 글에서는 제가 들었던 세션 중 가장 기억에 남는 두 세션과 각 세션에 대한 제 소감을 공유해드리려고 합니다.


OpenStack Summit Vancouver 2018 참관 후기(하)

안녕하세요? LINE Verda 2팀의 Nishiwaki입니다. 지난 포스팅에서는 청중 입장에서 흥미로웠던 컨테이너 관련 세션 몇 가지를 소개드렸는데, 이번 글에서는 ‘Excitingly simple multi-path OpenStack networking: LAG-less, L2-less, yet fully redundant’ 라는 제목으로 저와 Samir가 발표한 내용을 소개해 드리겠습니다.

LINE에서는 새로운 리전(region)을 대상으로 East-West 네트워크 트래픽(데이터센터 내 트래픽)에 강한 데이터센터 네트워크를 설계하고 있습니다. 저희는 발표에서 이 아키텍처 및 설계와 관련된 Neutron 통합에 관해 얘기했습니다. 발표 영상과 자료는 아래에서 보실 수 있습니다.


Promgen은 알림을 어떻게 전달할까요?

안녕하세요, Paul Traylor입니다. 저는 현재 LINE Fukuoka 개발팀에서 LINE 계열의 앱이 사용하는 수많은 서버를 모니터링하는 도구를 개발하고 기술 지원하는 업무를 맡고 있습니다. 제 주 업무 중 하나는 Promgen을 관리하는 일입니다. 참고로 Promgen은 Prometheus가 관련된 팀에게 알림을 제대로 전달할 수 있도록 관리하는 도구입니다. 오늘은 Promgen이 알림을 어떻게 전달하는지에 대한 내용을 다뤄보고자 합니다.

Webpack 같은 모듈 번들러를 만들어 보자

안녕하세요, LINE에서 프런트엔드 개발을 담당하고 있는 전현제입니다. 이번 포스팅에서는 JavaScript 생태계의 구성 요소 중 하나인 모듈 번들러(module bundler)에 대해 소개하려 합니다. 먼저 모듈 번들러의 개념을 간단하게 소개한 후 모듈 번들러가 실제로 어떻게 작동하는지에 대해 직접 모듈 번들러를 만들어 본 경험담을 함께 나누고자 합니다.

모듈 번들러란?

모듈 시스템이란 규모가 큰 코드 베이스를 모듈이라는 단위로 분할할 수 있게 만드는 구조를 말합니다. 자바스크립트에는 오랫동안 모듈 시스템이 없는 상태였는데, 2009년 Node.js가 CommonJS라는 모듈 시스템을 사용하기 시작한 이후 모듈화된 코딩을 하는 것이 보편화되었습니다. 또, ECMAScript 2015에서 자바스크립트 언어 사양에 신규 모듈 시스템인 ES Module이 포함되어 이제는 모듈 없이 자바스크립트로 코딩하기 힘들어졌다고 할 수 있을 정도입니다.

Java와 Armeria로 기본적인 웹 서버 만들기

안녕하세요. LINE Developer Relations 팀의 Developer Advocate 윤인성입니다. LINE은 Armeria, Central Dogma 등의 다양한 오픈소스를 주도적으로 개발하고 있습니다.

오늘은 Armeria에 대해서 알아보고, Armeria를 사용해 기본적인 웹 서버를 구성해보는 방법에 대해서 알아보겠습니다. 이번 글은 Java와 IntelliJ가 기본적으로 설치되어 있다는 것을 전제로 진행합니다.

Node.js와 헤드리스 크롬으로 크롤링을 챗봇에 적용해보자

안녕하세요? LINE에서 Developer Advocate를 맡고 있는 Nakajima입니다.

여러분, 혹시 다음과 같은 경험 없으셨나요?

  • 스마트폰이 지원되지 않는 웹사이트에서 뭔가 입력할 때면 짜증이 난다.
  • 매번 웹사이트에 로그인하기가 번거롭다.
  • 애초에 스마트폰으로는 입력란에 입력하는 것 자체가 힘들다.

당연한 얘기지만 LINE 앱은 주로 스마트폰으로 이용합니다. 그래서 LINE은 스마트폰 UX를 중요하게 여기고 많은 노력을 기울이고 있습니다. 이에, 앞서 언급한 사례들을 LINE으로 쉽게 이용할 수 있다면 편리하지 않을까라는 생각에서 시작된 한 가지 실험을 본 포스팅에서 소개할까 합니다.