Category Archives: 미분류

라인x한국정보과학회에서 주최한 블록체인 경진대회 본선에 다녀왔습니다

안녕하세요. 지난 12월 21일, 라인과 한국정보과학회에서 공동 주최한 블록체인 경진대회에 다녀왔습니다. 이번 블록체인 경진대회는 라인의 블록체인 플랫폼인 링크체인을 기반으로 동작하는 dApp 관련 아이디어와 구현 능력을 살펴볼 수 있는 자리였습니다.

Vue.js 한국 개발자 모임, Vuetiful Korea Meetup에 다녀왔습니다

안녕하세요. 이번 글에서는 지난 12월 11일, Vuetiful Korea Meetup에 다녀온 이야기를 전해드리려고 합니다. Vuetiful Korea는 최근 핫한 프론트엔드 프레임워크인 Vue.js에 대한 관심 주제를 발표하고 서로 관련 경험을 공유하는 네트워킹 모임입니다. 2017년 4월에 시작하여 이번이 여섯 번째 밋업이었는데 90명 정원이 하루만에 마감되었다고 하니 Vue.js의 인기를 실감할 수 있었습니다.

Test Automation Workshop 2018 Tokyo 참석기

안녕하세요. LINE+ Platform Engineering, Software Engineer in Test 팀의 김모세입니다.

지난 2018년 10월 18일부터 2018년 10월 19일까지 LINE 도쿄 오피스에서 Test Automation Workshop 2018를 개최하였습니다. LINE 글로벌 그룹 내의 테스트 자동화 조직들이 모여 다양한 사례와 아이디어를 공유하는 이 이벤트를 짤막하게 여러분께 전해드리려고 합니다.

네덜란드 헤이그에서 열렸던 EuroSTAR 2018에 다녀왔습니다

안녕하세요. LINE에서 테스트 자동화 업무를 맡고 있는 김유빈입니다. 저는 지난 2018년 11월 네덜란드 헤이그에서 열린 EuroSTAR(Europe’s No.1 Software Testing Conference)에 다녀왔습니다. EuroSTAR는 1993년부터 매년 유럽에서 열리고 있는 유럽에서 가장 오랫동안 유지되고 있는 소프트웨어 테스트 분야의 컨퍼런스입니다. 매년 다양한 분야의 주제를 다루고 있는데요. 올해는 bitcoin과 AI(Artificial Intelligence), microservices, IoT(Internet of Things) 등의 분야를 다뤘습니다.

LINE Messaging API 사용해보기

안녕하세요. 이번 글에서는 LINE에서 제공하는 LINE Messaging API에 대해 간단히 알아보려고 합니다.

채널을 열고 heroku를 이용해 샘플봇을 빌드하고 실행한 후, 내 LINE 계정과 테스트 메시지를 주고 받는 것까지는 코딩이 ‘하나도’ 들어가지 않습니다(단, 기본적으로 git이 설치되어 있고 간단한 사용법은 알고 있다고 가정하겠습니다). 그럼 부담없이 시작해보겠습니다.

Atomic 처리와 cache stampede 대책을 위해 Redis Lua script를 활용한 이야기

안녕하세요? LINE에서 게임 플랫폼 개발을 맡고 있는 Kagaya입니다. 신입 사원 1년차였던 2016년에 마이크로 서비스용 프로젝트 생성 도구 Lazybones를 사용해 보니(일본어 글)를 포스팅한 데 이어 한번 더 기고하게 되었습니다. 반갑습니다. Redis와 LINE GAME Platform LINE GAME Platform은 주 데이터베이스의 하나로 인메모리(in-memory) NoSQL 데이터베이스인 Redis를 사용하고 있으며, 이를 주로 캐시로 이용합니다. 이를테면 LINE이나 Facebook 등의 계정으로 인증하는 …

MySQL Workbench의 VISUAL EXPLAIN으로 인덱스 동작 확인하기

안녕하세요. 저는 LINE 포인트 서버쪽 개발을 담당하고 있는 Ohara(@kory1202)입니다. 얼마 전 특정 테이블에서 데이터를 추출하는 코드를 작성했는데요. 함께 일하는 동료가 그 코드를 보더니 ‘이런 인덱스가 필요하겠다’고 조언해주었습니다. 이 일을 통해 제가 인덱스 관련 지식이 부족하다는 점을 깨닫게 되었는데요. 그래서 이번에 MySQL Workbench의 VISUAL EXPLAIN을 사용하면서 인덱스에 대해 스터디한 내용을 소개해볼까 합니다. VISUAL EXPLAIN은 SQL의 EXPLAIN을 …

세계 최대 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월에 …

Go SDK로 Flex Message 구현하기

안녕하세요? 교토 개발실에서 근무하는 @sugyan입니다. 교토의 여름은 이번에 처음 겪는데, 와 정~말 엄청난 더위네요.

2018년 6월, LINE Messaging API에서 사용할 수 있는 새로운 메시지 유형 ‘Flex Message’가 추가되었습니다. 복잡한 레이아웃이 가능해지면서 맞춤형 메시지를 보낼 수 있게 되었지요. 공식 SDK에서도 Flex Message를 지원하기 위해 즉각 구현에 착수했습니다. 이번 포스팅에서는 Go SDK 담당자로서 Flex Message 지원 기능을 구현하면서 얻은 노하우를 공유할까 합니다.

Go 언어의 GC에 대해

안녕하세요, LINE Ads Platform 개발을 담당하고 있는 Okada(@ocadaruma)입니다. 이번 포스팅에서는 개인적으로 쭉 관심있었던 Go 언어의 가비지 컬렉션(Garbage Collection, GC)에 대해 조사한 내용을 소개하겠습니다.

Go 언어

Go 언어는 Google에서 개발한 시스템 프로그래밍 언어입니다. Channel을 통해 동시성(concurrency)을 지원하고 GC를 제공한다는 점이 특징입니다. Google을 비롯한 많은 기업에서 사용하고 있으며, LINE에서도 Go로 개발하는 도구나 서비스가 많이 있습니다.

Go 언어의 GC

Go 언어를 사용하면 low-latency 애플리케이션을 쉽게 개발할 수 있습니다. 하지만 솔직히 GC는 다른 언어의 runtime GC에 비해 단순해 보입니다. 예를 들어 Go 언어(Go 1.10 기준)의 GC는 Concurrent Mark & Sweep(이하 CMS라 함) 컬렉터이고, JVM(Java Virtual Machine) 등에서 수행하는 일반적인 압축(compaction)이나 세대별 GC(Generational GC)를 수행하지 않습니다.

It is a concurrent mark and sweep that uses a write barrier. It is non-generational and non-compacting.
mgc.go 발췌