Puffin's DevLog

2019 DEVIEW 다녀온 후기

deview 2019 2일차 다녀왔다. 규모가 큰 회사는 역시 남다른 주제로 발표를 했다. 클라우드 서비스 잘 쓰는 법이 아니고, 클라우드 서비스 잘 만드는 법. 브라우저 잘 쓰는 법 아니고 브라우저 잘 만드는 법. 글로벌 규모의 오픈소스를 오픈하고 잘 메인테인하는 법. 그러다보니, 당장 알아듣지 못하는 이야기도 많았다. 다만 나는 당장 돌아가는 서비스를 만드는 데에 급급했는데, 나중에 어떤 일을 할 수 있을지에 대한 상상력을 키울 수 있는 시간이었다.

그 중에서 가장 흥미로웠던 발표는 역시 모바일 시대, 웹 브라우저는 더 새로운 웹 경험을 만들 수 있을까(Whale 2.0)라는 제목의 네이버 웨일 브라우저팀의 발표였다. 브라우저를 만든다는 게 어떤 수고로움이 들어가는지 잘 알지 못했던지라 아주 흥미로웠다.

점유율

웨일 브라우저의 한국 점유율은 약 5.6%로 chrome, safari, samsung internet, IE에 이어 다섯번째.

기능 추가

데스크톱 브라우저에 모바일 버전의 사이트를 확장하여 보여주는 사이드바를 추가했고, 모바일에서의 PWA 지원 기능이 추가되었다.

Rebase

Whale은 오픈소스인 크로미움 기반으로, 크로미움은 6주에 한번 업데이트를 한다. 제품 품질을 올리기 위해서는 해당 크로미움 레포를 시기에 맞게 rebase 해야 하는데, 이것이 굉장히 어려운 작업이었다. 아래와 같이 프로세스를 정립하여 기간을 줄여나가고 있다.

  • phase 1: 리베이스 장인이 골방에 틀어박혀 2주 동안 오류 없이 컴파일까지는 가능하도록 초도 버전 리베이스를 한다. (4주 목표)
  • phase 2: 초기 담당자가 물음표 표시를 해서 각 모듈 담당자에게 건내주면, 각 담당자가 기능에 맞게 추가 리베이스 작업을 한다. (2주 목표)
  • phase 3: QA & 안정화 (6주 목표)

가장 최근 rebase에서는 몇 번의 시도를 하면서 시기를 맞춰나간 덕에 자신감이 붙어, dev 버전부터 rebase를 하려고 했으나 실패했다. 개발 버전과 실제 릴리즈 버전의 차이가 너무 컸다.

rebase 외에 컴파일러 버전을 확인 없이 올렸던 것 때문에도 오류가 난 상황이 있었기 때문에 환경적인 변화도 인지해야 한다.

지금도 리베이스는 괴로운 작업이다. desktop, android, iOS, 네이버 내 브라우저 네 개의 타겟이 모두 버전이 다르다. 앞으로 한 번의 리베이스로 모든 타겟에 적용되도록 하는 것이 목표다.

Clean web

유저들이 많이 요청하는 기능 중 하나가 광고차단이나, 네이버의 많은 매출이 검색광고 등으로 발생한다. 무턱대고 광고를 차단하는 것이 옳은 방향도 아니라고 생각한다.

광고를 차단하는 방향에는 크게 두 가지가 있는데, 하나는 구글/페이스북을 필두로 광고를 제공하는 쪽에서 좋은 광고를 제공하자는 Coalition For Better Ads (http://betterads.org)이고, 다른 하나는 사용자가 받아들일 수 있을 만한 광고를 제공하자는 의미의 Acceptable Ads(http://acceptableads.com)이다.

네이버는 CBA와 결을 같이 하므로 웨일 또한 CBA의 기준에 맞추기로 했다. CBA가 내걸은 기준을 위반한 광고(ex. 팝업, 화면에 광고 비중이 30% 이상, 반짝거리는 애니메이션이 있는 광고, 소리가 들어간 경우 등)가 하나라도 있는 경우 해당 사이트의 모든 광고를 보이지 않게 만드는 방식으로 기술을 구현했다.

  1. CBA와 구글광고 표준에 위배되는 사이트를 필터링(1차)
  2. 위배되는 사이트에 포함된 광고를 차단(2차)

이렇게 생성된 필터가 너무 많아서 오히려 브라우저 속도를 해치고 경험을 나쁘게 만들 수 있으므로, 필터를 압축하는 과정을 거쳤다. 광고인 것을 거르기 위해서 광고를 가리는 방식(element hiding)과 아예 요청 자체를 차단하는 방식(request blocking)을 적용했다. 덕분에 경향신문은 좀 더 깨끗한 사이트가 만들어졌다고 감사하다는 표시를 하기도 했다.

아직 해결해야 하는 문제도 많은데, 광고 차단 때문에 콘텐츠가 차단되기도 하고 클릭되어야 할 것이 클릭되지 않기도 한다. 또, 필터를 사람이 하나하나 만들어주고 추가하는 것도 일이라 이를 머신러닝을 적용하려고 한다.

Loading script...