2023/12/29

2023년 말, Evernote의 기술이 한층 더 개선되었습니다

Evernote 2023 recap blog post (banner)

2023년은 Evernote에게 돌풍 같은 한 해였으며, 중요한 변화와 흥미진진한 성장이 있었습니다. Bending Spoons가 Evernote를 인수한 후, 저희는 회사를 재정적으로 안정시키기 위한 몇 가지 조치를 단행했습니다. 공동 편집과 두 가지 강력한 새 AI 기능도 도입했습니다. 수천 건의 설문 응답, 인터뷰, 이메일, 포럼 게시물 등을 통해 고객에 대한 귀중한 통찰을 얻었습니다. 하지만 가장 중요한 것은 Evernote의 기반 기술을 크게 개선했다는 사실입니다.

올해 초, 저희에게는 세 가지 명확한 목표가 있었습니다:

1. Evernote를 더 빠르게 만들기

2. Evernote를 더 신뢰할 수 있게 만들기

3. Evernote를 안전하게 만들기

아직 계획하고 있는 일이 많지만, 저희는 이미 상당한 진전을 이루어냈습니다. 지금부터 올해의 가장 주목할 만한 개발 사항을 요약하고, 앞으로 일어날 몇 가지 변화에 관해서도 살짝 소개해드리려고 합니다.


성능을 최우선으로 삼았습니다

Evernote에 대한 작업을 시작하면서 저희가 마주한 가장 큰 도전 중 하나는 자원 할당을 최적화하는 것이었습니다. 무한한 자원을 투입한다고 해서 제품에 생긴 모든 문제를 해결할 수 있는 것은 아니며, 오히려 이런 접근 방식은 대부분 복잡성과 비효율성을 증가시켜 결국 더 나쁜 결과를 초래합니다. 약한 기반 위에 지어진 집은 오래 버티지 못하는 법이므로, 올해 저희는 제품의 근본적인 부분을 개선하는 데 집중하고, 제품 혁신에는 상대적으로 자원의 적은 일부분만 할당하기로 결정했습니다.

올해 제품 혁신의 속도보다 기술적 성과에 무게가 더 실린 것은 그러한 이유입니다. 기쁘게도 저희는 핵심 집중 영역(속도, 신뢰성, 보안)에서 상당한 진전을 이루었습니다. 또한, 앞으로 수년 동안 제품 개발을 더욱 촉진할 수 있는 여러 하부 단계 이점을 확보했습니다.

이제, 각 목표를 좀 더 자세히 살펴보겠습니다.

목표 1 | Evernote를 더 빠르게 만들기

· Evernote에 즉시 동기화 및 공동 편집을 도입했습니다. 새로운 데이터 구조 덕분에 모든 장치에서 노트 내용을 즉시 동기화할 수 있게 되었습니다. 원래의 구조로는 불가능했을 일입니다. 자세한 내용은 여기서 알아보세요.

· 모든 클라이언트에서 로딩 및 동기화 속도를 개선했습니다. 이는 레거시 실험, 기능 플래그, 그리고 사용하지 않는 코드를 체계적으로 제거함으로써 이루어졌습니다. 모두 합쳐 약 4만 줄의 레거시 코드가 제거되었습니다.

· Evernote 웹의 초기 동기화 작업을 거의 17배 앞당겼습니다. 다른 클라이언트와 더 잘 호환되는 저장 시스템으로 클라이언트를 업데이트한 덕분이었습니다. 자세한 내용은 여기서 알아보세요.

· 소프트웨어 업데이트의 빈도를 크게 늘렸습니다. 4~8주마다 하나를 출시하던 것에서 매주 정기적으로 출시하는 일정으로 전환했습니다. 결과적으로, 이제는 개선 사항이 전보다 더 빠르게 반영됩니다.

목표 2 | Evernote를 더 신뢰할 수 있게 만들기

· 공동 편집 도입 이후 많은 레거시 코드를 제거했습니다. 이로 인해, 모든 노트 편집 작업이 더욱 안정적으로 이루어지며, 문제를 파악하고 해결하기가 더 쉬워졌습니다.

· 시의적절한 앱 내 커뮤니케이션을 구현했습니다. 동기화 문제 발생 시 사용자에게 알리고 앱을 재시작하여 관련된 변경 사항을 잃지 않도록 유도했습니다. 이 시스템 덕분에, 콘텐츠가 백엔드 서버와 동기화되지 않는 경우가 크게 줄었습니다.

· 향상된 모니터링을 도입했습니다. Evernote의 백엔드에서 제품의 건전성 상태를 지속적으로 추적합니다. 새로운 모니터링 시스템 덕분에 복잡한 오류를 더 간편하게 진단할 수 있어, 더 빠르게 문제를 수정하고 전반적으로 더 나은 사용자 경험을 제공합니다.

· 광범위한 데이터 마이그레이션을 통해 Evernote의 백엔드를 현대화했습니다. 전에 언급했듯이, Evernote의 Monolith 백엔드 애플리케이션 때문에 과다한 기술 부채가 쌓였습니다. 올해 저희는 아키텍처를 현대화하는 데 상당한 자원을 투자했습니다. 2억 명이 넘는 Evernote 사용자의 데이터를 새 시스템으로 마이그레이션하는 것은 상당한 도전이었지만, 이러한 노력은 이미 결실을 맺고 있습니다. 새로운 아키텍처 덕분에 Evernote의 백엔드에서 필요한 수동 유지보수가 훨씬 적어졌고, 이로 인해 더 안정적인 개발 환경을 제공하는 한편 사용자에게 발생하는 문제도 적어졌습니다.

· Evernote의 클라이언트 코드 일부를 다시 작성하기 시작했습니다. 저희는 클라이언트 코드베이스 작업을 시작하기 전부터, 반복되는 문제에 대한 패치를 제공하는 것이 장기적으로 지속 가능하지 않다는 것을 알고 있었습니다. 그래서 대신 코드베이스의 선별된 부분을 처음부터 다시 작성했습니다. 현재까지 노트북 목록과 소수의 위젯을 업데이트했으며,  앞으로는 노트 편집기, 노트 목록, 작업 목록, 검색 기능에 대한 작업도 착수할 예정입니다.

목표 3 | Evernote를 더 안전하게 만들기

Evernote의 관리 주체로서 저희에게는 사용자의 민감하고 개인적인 정보를 최대한 보호해야 할 책임이 있습니다. 올해 저희는 악의적인 활동으로부터 Evernote를 더욱 보호하기 위한 중요한 혁신을 도입했습니다:

· 새로운 2단계 인증 절차로 전환했습니다. SMS 기반 인증을 Google Authenticator, Authy, 1Password와 같은 더 안전한 옵션으로 대체했습니다.

· 악용 행위를 방지하기 위해 지능형 속도 제한을 도입했습니다. 이 예방 조치는 Evernote 백엔드 서비스에 대한 호출 수를 제한하여, 악의적인 사용자가 Evernote 서버를 장악하고 사용자 데이터에 액세스하려고 시도하는 것을 방지합니다. 이 조치는 합법적인 사용자에게는 어떠한 영향도 미치지 않습니다. 예를 들어, 실제 사용자가 한 시간 이내에 백 개 이상의 고유 IP 주소에서 Evernote의 백엔드에 연락을 시도하는 일은 없을 것입니다.

· 취약한 비밀번호를 선제적으로 재설정했습니다. 이는 2단계 인증이 없는 계정에 대한 자동 비밀번호 재설정을 통해 이루어졌습니다. 이 계정들은 약하거나 재사용된 비밀번호를 통한 공격에 특히 영향을 받기 쉬운 상태였습니다. 해당 사용자들은 다음에 Evernote를 열 때 비밀번호를 업데이트하라는 안내를 받았습니다. 다시 한번 말씀드리지만 2단계 인증을 꼭 설정하시길 당부드립니다!

이러한 개선 사항들은 올해 저희가 Evernote 기술과 관련해 실시한 작업 중 극히 일부분에 불과합니다. 대부분의 개선이 제품의 백엔드에서 깊게 이루어졌기 때문에, Evernote 사용자들은 아무것도 눈치채지 못했을 가능성이 높습니다. 이는 정확히 저희가 의도한 바였습니다. 궁극적인 목표는 사용자 경험을 손상시키지 않으면서 이 모든 세밀한 작업을 실행하는 것이었습니다. 그리고 이전 게시물에서 말씀드린 10월의 서비스 중단 사태를 제외하면 이 전략은 성공적이었습니다.

2024년을 기대하며

2023년에 저희가 이룬 성과로 앞으로의 개선을 위한 튼튼한 기반이 마련되었습니다. 2024년에 저희가 집중할 몇 가지 항목을 공유해 드리면 다음과 같습니다.

제품

2024년 초반에는 새로운 기능을 선보이는 것보다 Evernote의 기존 구성 요소를 미세 조정하는 데 집중할 것입니다. 다음 몇 개월 동안 기대할 수 있는 변화는 다음과 같습니다:

· 대폭적인 사용자 경험 개선. 지금까지 저희는 더 중대한 신뢰성 문제에 우선순위를 두었습니다. 그러나 (저 자신을 포함한) 사용자들을 종종 짜증나게 하는 것은 한두 개의 큰 문제보다 여러 개의 자잘한 버그들입니다. 2024년 1월부터 Evernote 팀은 가장 눈에 띄는 비효율을 해결하기 위해 노력할 것이며, 이를 통해 Evernote의 사용자 경험을 그 어느 때보다 매끄럽게 만들 것입니다.

· 놀라운 새 사용자 인터페이스. 1월부터 데스크톱 사용자들을 대상으로 제공됩니다. 새로운 UI를 통해 사용자들은 자신이 알고 사랑하는  앱 내 경험을, 가벼우면서도 현대적인 디자인으로 재구성된 상태로 즐길 수 있을 것입니다. 하지만 버튼을 이동시키거나, 기능을 재배열하거나, 기존의 작업 흐름을 방해하지는 않을 테니 걱정하지 마세요.

기술

Monolith를 현대화하고 클라이언트 코드베이스의 특정 부분을 재작성하는 작업을 계속 진행하면서 저희는 몇 가지 새로운 프로젝트에도 착수할 것입니다:

· 맞춤형 클라이언트 측 데이터베이스를 더 현대적인 솔루션으로 교체할 것입니다. 현재의 솔루션인 Conduit는 일반적으로 느리고 유지보수가 어려우며 클라이언트 성능 향상의 주된 병목 요인으로 작용합니다. 2024년에는 더 효율적이고 안정적인 대안으로 교체할 것입니다. 그럼으로써 개발이 더 쉬워지고 사용자가 겪는 자잘한 오류와 불일치가 많이 해결될 것입니다.

· RENT라는 새로운 메타데이터 동기화 프로세스를 출시할 것입니다. RENT는 2023년 4월에 도입된 공동 편집 이니셔티브의 대응물입니다. 공동 편집은 노트 내용을 여러 장치 간에 즉시 동기화하는 데 초점을 맞추는 반면, RENT는 노트 메타데이터의 동기화를 처리합니다. RENT를 통해 사용자는 노트 제목, 썸네일, 날짜, 노트 목록 내용의 변경 사항이 모든 장치에서 훨씬 빠르게 반영되는 것을 확인하시게 될 것입니다.

한 해를 (그리고 이 보고서를!) 마무리하면서, 저는 Evernote를 개선하기 위해 끊임없이 노력해준 똑똑하고 헌신적인 직원들을 매우 자랑스럽게 생각합니다. 더불어, 변함없는 신뢰와 지지를 보여주신 고객 여러분께 깊은 감사의 마음을 전하고 싶습니다. 지난해에는 약간의 불확실성과 변화가 있었지만, 기대와 낙관으로 미래를 바라볼 이유는 충분합니다.

2024년에 뵙겠습니다!

- Federico 드림