개발자 커리어

구글 스태프 엔지니어가 CS 논문 읽기를 무조건 추천하는 3가지 이유

2024.04.29 | 조회 789 |
3
|

데브필 DevPill

Top 1% 개발자로 거듭나는 성공 처방전

Introduction

안녕하세요 구독자 여러분 👋, 오늘은 구글의 L6(스태프 엔지니어)이자 테크 리드인 Micah Lerner를 소개하려고 합니다. 이분은 기술 주제에 대한 깊이 있는 탐구를 하는 블로그 'Micah Learns'의 저자이기도 합니다.

Micah는 자신이 성장하는데 기술 백서(Whitepaper) 읽기가 큰 역할을 했다고 말합니다. 오늘의 글에서 이분이 경험한 가치와 비슷한 결과를 우리도 얻을 수 있는 방법을 공유해볼게요.


 

구글의 테크 리드로서, 제 성장에 가장 큰 영향을 준 활동 중 하나는 최신 학술지에 올라오는 컴퓨터 과학 논문(or 백서)을 읽는 것이었습니다.

저에게 이 습관은 시스템 신뢰성에 관한 최고의 업계 컨퍼런스에서 발표한 우리 팀의 전략을 재정립하고, 구글의 최고 성과 평가를 반복적으로 받기까지 만들어주었어요.

이 글에서는 이러한 아이디어를 왜, 그리고 어떻게 적용함으로써 엔지니어로서 성장을 가속화할 수 있는지 설명해보고자 합니다.

⭐️ 백서를 읽는 것이 시니어 엔지니어 이상으로 성장하게 만드는 이유

백서를 읽는 것이 우리 개발자에게 이익이 되는 주된 이유는 3가지입니다.

  • 새로운 통찰력을 제공함으로써 여러분의 영향력을 확장합니다.
  • 개인 성장의 선순환을 만듭니다. 학습에 시간을 할애할수록 미래에 더 나은 속도로 배울 수 있습니다.
  • 여러분의 경력을 미래 지향적으로 만들고 업계 동향을 파악하는 데 도움이 됩니다.

여러분의 영향력을 확장할 수 있습니다.

학술적인 컴퓨터 과학 지식을 읽는 것은 여러분의 팀 내에서 업무를 한 단계 높일 수 있는 새로운 기술적 통찰력을 얻게 해준다는 것, 믿으시나요?

제 개인적인 이야기를 하나 해보겠습니다. Meta의 자동 소프트웨어 배포 시스템에 대해 읽은 것이었어요 이 글에서는 비즈니스 메트릭과 사용자 참여도 변화를 기반으로 새로운 서버 배포를 모니터링하는 것에 대해 이야기하고 있습니다. 저는 이 논문과 다른 논문들을 비교해 읽어봤는데요. 여기서 아이디어를 얻어, 우리 팀이 설계한 새로운 변경 사항이 사용자에게 부정적인 영향을 미치는지 여부에 따라 모든 변경 사항을 제어해야 한다고 주장했습니다.

더 높은 엔지니어링 레벨로 올라갈수록, 조직은 여러분이 영향력을 키우기를 기대할 거예요. 사실, 어떤 기술 주제에 전문가가 된다는 것은 종종 승진을 위한 전제 조건이기도 합니다. 여러분 자신과 프로젝트를 넘어 영향력을 확장한다는 것을 의미하기 때문이죠. 그렇기 때문에 백서(or 논문)를 읽는 것은 전문성을 쌓는 가장 좋은 방법 중 하나라고 할 수 있습니다.

기존 업계의 패턴을 이해한다는 것은 이를 프로젝트에 적용함으로써 시간을 절약할 수 있다는 것을 의미하죠. 예를 들어볼까요? 대부분 논문의 경우, scalable한 시스템을 설계하기 위한 구체적인 기술을 설명합니다. 발표된 접근 방식을 기반으로 구축하면 기존 개념에 대해 바퀴를 재발명하는 것을 피할 수 있죠. 당연히 엔지니어링 구현에 대한 리스크 역시 줄일 수 있습니다.

우리가 아이디어를 직접 구현하지 않더라도, 그 교훈을 내면화하는 것은 창의력과 패턴 인식 능력을 기를 수 있습니다. 이는 팀의 다른 엔지니어들의 설계를 검토할 때 가장 많이 적용되죠. 다른 사람들이 이미 해결한 공통된 문제를 배우기 때문에 우리가 예상하는 시나리오에서 어떤 식으로 일어날지 예측할 수 있게 됩니다.

개인 성장의 선순환(Flywheel)을 돌릴 수 있습니다.

최첨단 기술의 교훈을 깊이 파고들어 적용하는 것은 향후에 다시 설계하는 능력을 향상시킵니다.

저는 Meta와 같은 회사에서 진행하는 최첨단 지식을 우리 팀에 적용했습니다. 이로부터 중대한 장애가 일어나기 전에 예방하고 감지할 수 있는 영향력 있는 프로젝트를 수행할 수 있었죠.

이러한 성공을 바탕으로 저는 제 범위를 넓혔고, 조직에서 더 많은 리더십 기회를 받게 되었습니다. 긍정적인 피드백 고리를 형성한 거죠.

나아가 새로운 정보를 더 빠르게 처리하고 더 많은 통찰력을 생성할 수 있게 되어 "플라이휠" 효과로 성장을 더욱 가속화했습니다.

경력의 미래 지향성

학술 연구를 계속해서 팔로업하는 또 다른 이유는 우리가 속한 기술 산업이 항상 빠르게 변화하고 있기 때문입니다. 최고 컨퍼런스에서 발표한 논문을 읽으면 새로운 아이디어에 노출되고 업계가 어디로 향하고 있는지 이해할 수 있는데요.

저는 특히 AI 어플리케이션 관련 기술을 배우는 데 이 접근 방식을 사용했습니다. 제가 그동안 AI 업계 연구를 잘 follow-up하고 장애 예방에 전문성이 있다고 알려졌기 때문에, Google Maps에서 생성형 AI를 출시하는 팀에서 주도적인 역할을 맡을 수 있었습니다.

📚 논문을 찾고 읽는 방법

만약 CS 관련 논문을 처음 보거나 한동안 관련 백서를 읽지 않았을 경우라면 충분히 겁먹을 수 있습니다. 이를 더 쉽게 하려면 아래 3단계 프로세스를 적용해볼 수 있는데요.

  • 전문 분야 선택하기
  • 해당 영역에서 읽을 백서 찾기
  • 관심 있는 연구에 깊이 파고들기

1. 전문 분야 선택하기

처음 시작한다면 관심 있는 분야에 집중하세요. 지루한 것이라면 시간을 잘 할애하지 않을 것이예요. 아래 예시는 최근에 가장 인기 있는 컴퓨터 과학 연구 분야 중 일부입니다.

인공지능(AI): ChatGPT나 Bard와 같은 대규모 언어 모델을 뒷받침하는 기술은 어떻게 작동하며 개선될 수 있을까?

분산 시스템: 전 세계에 있는 컴퓨터에서 실행되는 시스템은 어떻게 상태에 대한 합의에 도달할까?

데이터베이스: 시스템이 실시간 또는 나중에 분석을 위해 데이터를 어떻게 확장 가능하게 저장하고 검색할까?

운영 체제: 컴퓨터가 초대규모에서 네트워킹, 디스크 접근 및 메모리를 어떻게 처리할까?

보안: 어떤 유형의 숨겨진 보안 취약점이 존재하며 자동으로 찾아 예방하는 방법은?

현재 저의 개인적인 관심사는 이러한 주제 중 여러 주제, 특히 AI, 분산 시스템, 운영 체제의 교차점에 있습니다.

2. 읽을 백서 찾기

관심 있는 분야를 하나 이상 선택한 후에는 더 깊이 파고들 수 있는 2가지 방법을 제안합니다:

  • 기초 연구 식별: 기본 사항을 가르쳐 주는 연구
  • 최신 연구 검색: 해당 분야의 최신 연구

시작하기 좋은 백서 목록은 다음과 같습니다:

3. 🔬논문에 깊이 파고드는 방법

이제 집중할 영역과 몇 가지 논문을 선택했으니, 최신 연구를 이해할 때입니다. 저는 "How to Read a Paper"에서 도출된 3단계 프로세스로 이를 수행합니다:

  • 15분 동안 논문을 읽고 고차원적으로 연구 내용을 이해하는 데 집중합니다.
  • 설계, 구현 및 평가의 세부사항에 대해 1시간 동안 깊이 파고듭니다.
  • 이해한 내용을 내재화하기 위해 제 언어로 연구를 요약합니다.

1. 첫 번째 관문: 논문 읽기 

먼저 메모 편집기와 하이라이터를 준비합니다. 저는 Obsidian에서 탭을 열고 Zotero에 연구를 불러오는 것을 선호합니다. 다른 사람들은 논문을 인쇄하고 여백에 메모를 하는 것을 좋아하긴 하는데요. 어떤 방식을 선택하든 참여하는 것은 훑어보는 것보다 더 이해하기 좋고 기억에 많이 남습니다.

다음으로 서론과 결론을 읽습니다. 이 맥락을 사용하여 논문이 어떤 내용인지 제 자신의 말로 설명하고 제가 이해하지 못하는 주제를 파악하려고 합니다.

거기에서 제가 이해하지 못하는 주제에 대한 더 많은 정보를 찾을 수 있는 방법이 있는지 확인하기 위해 참고 문헌을 훑어봅니다. 바퀴 돌리기를 막기 위해 이를 15분으로 제한하려고 합니다.

2. 세부 사항에 파고들기

논문에 대한 기본적인 이해를 한 후에는 45-60분 타이머를 설정하고 나머지 부분을 읽습니다.보통 아래와 같이 내용을 하이라이트하는데요.

  • 파란색: 독특한 통찰력입니다.
  • 빨간색: 전혀 이해가 안 됩니다.
  • 노란색: 후속 조치를 취하고 싶은 연구가 포함되어 있습니다.

시간 제한은 한 주제에 얽매이는 것을 방지하고 읽은 내용을 처리하기 위해 정신적 휴식을 취하도록 상기시켜 줍니다.

3. 이해한 내용 요약하기 

마지막 단계는 이해한 내용을 확고히 하기 위해 제 독자들을 대상으로 해당 논문 글을 소개하는 것입니다. 다른 사람들에게 설명하면 오히려 제가 더 읽은 내용을 많이 이해하게 되죠.

저는 주로 제 뉴스레터에서 소개하지만, 여러분이라면 어디서든 할 수 있습니다. 팀 내에서, 소셜 미디어 게시물로, 또는 자신만 보는 블로그 게시물로 말이죠.

📖 결론

 CS 논문을 읽는 것은 다음과 같은 방식으로 엔지니어로서의 성장을 가속화할 수 있습니다:

  • 깊이 있는 기술 지식을 개발할 수 있습니다.
  • 위험이 높지만 영향력 역시 높은 프로젝트를 수행할 수 있습니다.
  • 팀원들이 짠 설계에 대해 피드백을 제공함으로써 팀 실력을 향상시킬 수 있습니다.

이 전문성은 3단계 시스템을 통해 구축할 수 있는데요.

  • 여러분이 열정을 가지고 있고 팀과 관련이 있는 분야를 식별합니다.
  • 저널과 컨퍼런스와 같은 리소스를 활용하여 최신 업계 연구를 찾습니다.
  • 연구에 깊이 파고들어 통찰력을 추출합니다.

 


Top 1% 개발자로 거듭나는 확실한 처방전, 데브필입니다.

 

 

다가올 뉴스레터가 궁금하신가요?

지금 구독해서 새로운 레터를 받아보세요

이번 뉴스레터 어떠셨나요?

데브필 DevPill 님에게 ☕️ 커피와 ✉️ 쪽지를 보내보세요!

댓글 3개

의견을 남겨주세요

확인
  • 로건

    0
    7 months 전

    안녕하세요, 항상 좋은 글 남겨주셔서 감사합니다! 혹시 위 "시작하기 좋은 백서 목록"의 링크도 알 수 있을까용? 추가로 제가 알고 싶은 부분의 논문을 찾는 방법도 알려주시면 좋을 것 같아요!

    ㄴ 답글 (2)
© 2024 데브필 DevPill

Top 1% 개발자로 거듭나는 성공 처방전

뉴스레터 문의dev.redpill@gmail.com

자주 묻는 질문 서비스 소개서 오류 및 기능 관련 제보

서비스 이용 문의admin@team.maily.so

메일리 사업자 정보

메일리 (대표자: 이한결) | 사업자번호: 717-47-00705 | 서울 서초구 강남대로53길 8, 8층 11-7호

이용약관 | 개인정보처리방침 | 정기결제 이용약관