네트워크 스터디 회고 및 스터디 진행에 대한 고찰

2021.04.20

지난 1월 11일에 시작하여 3월 17일까지, 라인웍스의 엔지니어들이 네트워크 스터디를 진행했습니다. 이 포스팅에서는 해당 스터디에 대한 회고를 기록하며, 라인웍스 구성원들이 어떻게 함께 성장했는지를 공유합니다. 또한 스터디장으로서 진행하는 데에 있어 사내 스터디를 효과적으로 관리하는 법에 대해 고찰해본 경험을 함께 소개하고자 합니다.

왜 이 모임을 가졌을까?

네트워크 스터디를 시작하게 된 계기는 신입 백엔드 엔지니어들이 회사에서 업무를 진행하는 데에 네트워크 지식의 필요성을 느꼈었기 때문입니다. 회사에서 개발과 트러블 슈팅을 하다보면 네트워크 지식이 필요할 때가 자주 있었습니다. HTTP, TCP/IP가 정확히 무엇인지, 각 HTTP 상태 코드는 어떤 상황에 나오는지, 포트 포워딩은 어떻게 해야 하는지 등의 지식이 부족하여, 장애 원인을 정확히 파악 못한다는 상황과 마주쳤습니다.

따라서 스터디를 진행하는 것으로 네트워크 기초 소양을 갖추고, 각자의 부족한 점을 보완하는 것을 목표로 삼았습니다. 또한 단순히 기능을 개발하고 버그를 고치는 것을 넘어서 컴퓨터 시스템끼리 어떻게 통신을 하는지 이해하며, 백엔드 엔지니어링 역량이 올라가리란 기대를 했습니다.

그러나 보다 깊은 네트워크 지식을 가진 멘토가 필요했으며, 다양한 시각을 통해 배워야 시너지 효과가 날 것이라는 결론에 도달했습니다. 이에 따라 스터디원 모집 제한을 풀었고, 머신러닝 엔지니어와 프론트엔드 엔지니어, 데이터 엔지니어 또한 함께 참여하여 총 9명(멘토 1명 포함)이 스터디를 진행하게 되었습니다.

무엇을 공부했는가?

기초 네트워크 강의 중 [따라學IT] – 네트워크 기초(개정판) 라는 자료를 이용하였습니다. 이론과 실습이 적절하게 이뤄져 초심자가 듣기 좋았던 강의였다는 평이 있었습니다.

이 강의에서는 네트워크의 기초 용어를 시작으로, OSI 7계층과 각 계층의 프로토콜에 대한 자세한 내용을 다루고 있습니다. 또한 각 강의마다 Wireshark 실습이 포함되어 있습니다. 자세한 내용을 알고 싶다면 해당 수업을 수강하시기 바랍니다.

강의 이외에도 개인의 추가 학습에 의한 자료를 공유하거나, 경험 또는 지식을 이용한 실습을 보여줌으로써 정보를 전하기도 했습니다.

어떤 방법으로 공부했을까?

  1. 스터디 Kick-off를 진행하여 스터디 규칙과 스터디 방식에 대해 정했습니다. 규칙은 다음과 같이 정했습니다.
    • 강의 커리큘럼에 맞춰 매주 스터디 내용을 정했습니다. 각자 강의를 들은 후 내용 정리를 하여 공유 드라이브에 올리고, 스터디장은 제출률을 확인했습니다.
    • 강의의 커리큘럼에 따라 매주 발표를 했습니다. 모두가 함께 알아야 할 내용의 챕터는 발표 자료를 필수로 제출하고 스터디 당일에 발표자를 뽑았습니다. 그 외 챕터의 발표자는 첫 시간에 미리 결정했습니다.
    • 발표 이후, 자유롭게 추가 내용 공유 및 질의응답 시간을 가졌습니다.
    • 스터디 일정은 모두가 가능한 시간대를 정하여 유동적으로 진행했습니다.
    • 매 스터디가 끝난 후, 스터디장이 스터디 로그 및 다음 일정에 관한 공지를 작성하여 공유했습니다.
  1. 코로나로 인해 전원이 원격 근무를 하는 시기와 순환 근무를 하는 시기가 혼재되어, 온라인 또는 오프라인으로 진행하였습니다.
    • 온라인 진행
      • 전원이 화상미팅으로 참여했습니다. 발표자는 화면공유를 하여 발표를 진행하였습니다. 이 때 발표자의 부담을 덜어주기 위해 카메라 키는 것을 권유했습니다.
    • 오프라인 진행
      • 전원이 회의실에서 모여 참여했습니다. 전체적인 진행방식은 (카메라 밖의 세상으로 나왔다는 차이점 빼고는) 온라인 진행 때와 동일하였습니다.
      • IPv6에 대한 특강을 진행한 바가 있으며, 해당 내용을 잘 아시는 시니어 분께서 도움을 주셨습니다.

이 스터디를 거쳐 무엇을 얻었을까?

3월 17일, 스터디의 회고 자리를 마련하여 함께 소회하는 시간을 가졌습니다. 각자 다양한 소감을 전했는데, 그 내용은 하단에 정리해봤습니다.

  • “네트워크 지식에 대한 전반적인 틀을 잡을 수 있었다. 앞으로 잘 모르는 부분이 생기면 무엇을 찾아봐야 하는지 도움이 되었다.”
  • “이번에 수강했던 강의에 특히 해킹 관련 내용이 많아 해보고 싶은 것이 생겼다. 해킹에 대한 심화 공부하면 역으로 웹 보안을 고려하는 데에 좀 더 도움이 될 것 같다.”
  • “그동안에 실무에서 마주했었던 네트워크 지식을 정리할 수 있었다. 어렴풋이 알던 개념을 구체화하는 자리였다.”
  • “로우레벨에서 네트워크가 어떤 식으로 돌아가는지 이해하게 되었다. 요즘은 로우레벨의 지식을 알지 못해도 하이레벨에서 작업이 가능하니 미처 인지하지 못했었는데, 이것을 원리적으로 깨닫는 시간이었다.”
  • “다만 배운 내용을 실무에 적용하는 방안을 고려했었으면 좋았을 것이다. 스터디에서 발표를 듣고 공부할 땐 이해하는 것 같았지만 실무에 적용해보는 것은 또 다른 문제였다. 그래서 후에는 함께 사내 프로젝트에 어떤 네트워크 지식을 연결할 수 있는지 실습하는 자리가 있었으면 더 좋겠다.”
  • “스터디를 하는 방법이 좋았다. 각자 강의를 듣고난 후 서로 궁금했던 것을 찾아보고 공유했던 시간이 유익했다 생각한다.”
  • “진행자가 있어서 좋았다. 이전 스터디는 진행자가 따로 있지 않아 스터디 진행에 있어 아쉬운 부분이 있었는데, 이번 스터디는 이 부분을 해소시켰다.”
  • “스터디가 잘 진행이 되었던 것은 어느 한 명의 노력이 아닌, 모두가 열심히 한 결과다.”
  • “이번 스터디를 정기 콘텐츠화 시켜, 이후에 입사하는 분들까지 커버할 수 있으면 좋겠다는 생각이 있다. 이는 장기적으로 봤을 때 현재 스터디원들에게도 복습의 기회를 제공한다는 장점이 있다. 또한 네트워크 뿐만이 아니라 사내에서 이뤄지는 다양한 주제의 스터디들이 콘텐츠화 되어 지속됐으면 좋겠다.”

위와 같은 소감을 밝히며, 2달 간의 네트워크 스터디는 막을 내렸습니다.

스터디를 이끈다는 것은

위의 소감 중 ‘스터디 진행’에 대한 평가가 있었는데, 진행자가 존재했다는 것이 이전 스터디와 차별화 됐다는 의견이었습니다. 그래서 필자가 스터디를 진행한 입장에서 어떤 부분을 고려했는지 공유합니다.

스터디 모집 결과, 생각보다 큰 규모로 모임이 결성이 되었기에 체계적인 방법으로 스터디를 이끌어야 한다는 생각을 했습니다. 따라서 ‘스터디장이 갖춰야 할 3가지 기본 자세’를 스스로 정하여, 진행자가 해야 할 일이 무엇인지 고민해보고 실천해봤습니다.

첫번째, ‘기록하는 것’입니다. 스터디장으로서 ‘기록’한다는 것은 매 스터디 진행 사항과 앞으로의 일정을 꾸준히 요약하여 공지하는 것입니다. 이 기록은 알림 역할을 하는 동시에, 스터디 진행 사항을 문서로 남겨둔다는 것에 의미가 있습니다.

실제 진행할 때는 문서화라고 할 만큼 구체적이지는 않고 약소했습니다. 다만, 나중에라도 어떤 내용을 공부했는지 기억하고 싶을 때, 요약을 확인하는 것이라도 도움이 될 것이라 생각했습니다. 문서화에 대한 보완이 필요하겠지만, 어찌되었든 달라지지 않는 진리가 있습니다. ‘기록은 기억을 이기기 마련입니다.’

두번째, ‘동기부여를 위한 격려를 표하는 것’입니다. 사내에서 이루어지는 스터디이기 때문에, 본업과 겸해야 한다는 점에 있어서 각자가 커버할 수 있는 양은 다르다고 생각했습니다. 그럼에도 최소한의 동기부여를 지속적으로 전해야 한다는 (스터디장의) 사명감이 있었습니다. 개인의 학습 효과가 곧 ‘회사에서 일을 잘 하는 것’으로 이어지기 때문입니다.

이에 저는 넛지(nudge) 효과를 이용하고자 했습니다. 넛지는 ‘옆구리를 찌른다’는 표현으로, 넛지 효과는 자연스러운 상황을 통해 사람들의 행동을 이끌어 낸다는 이론입니다. 저는 이것을 이용해, 사람들이 스터디 참여를 할 수 있도록 했습니다. 방법은 아주 간단했습니다. 스터디 시작할 때마다 공유 드라이브에 얼마나 스터디 인증 자료를 제출했는지 확인합니다. 제출률이 낮은 날에는 ‘오늘은 제출률이 조금 낮으니, 다음 제출률이 높아지기를 기대한다’는 말씀을 전했습니다. 이는 실제로 숙제 제출률이 점차적으로 늘어난 요인 중 하나였다고 생각합니다.

세번째, ‘사회자로서의 명분을 다하는 것’입니다. 스터디의 중심을 잘 잡아 나아가기 위해, 발표 이후 자유로운 토의 또는 토론의 방식으로 진행하고자 했습니다. 따라서 사회자가 필요했고 이를 자처했습니다.

토의나 토론에서의 사회자는 발언의 기회를 공평하게 나눠주고 논점이 흐려지지 않도록 대화를 이끌어 나가는 역할을 합니다. 따라서 시간을 정하여 모든 스터디원들에게 발언할 수 있는 기회를 부여했습니다. 발언이 끝난 후에는 정리를 하여 다음 발언을 이어나갈 수 있도록 도우려고 노력했습니다. 한 주제를 가지고 보다 깊은 대화를 하는 시간도 있었으며, 모임 시간 내에서도 추가적으로 정보를 얻을 수 있었습니다.

위의 세 가지를 실천하는 것으로 스터디가 매끄럽게 진행되도록 노력했습니다.

개인적인 소감

라인웍스에서 스터디 진행을 하는 것은 제겐 처음 겪는 일이었습니다. 따라서 최대한 좋은 방향으로 스터디를 진행하고 싶었고 위에 상술한 내용처럼 스스로는 노력을 많이 했습니다. 물론 ‘실무에 지식을 연결할 수 있는 시간이 필요했다’는 등의 부족한 부분도 많이 있었습니다. 그럼에도 함께 스터디를 해주신 구성원들이 긍정적인 평가를 해주셔서 감사했고, 진행자로서 성장할 수 있는 자리였습니다. 아쉬운 부분은 후에 또 다른 방식으로 해결해보면 좋겠다고 생각합니다.

네트워크라는 컴퓨터 공학 기초 소양을 습득하여, 실무 진행에 필요한 기반도 다질 수 있었습니다. 앞으로도 실무에 필요한 지식(운영체제, 데이터베이스 등)을 학습하고 메타인지를 기를 것입니다. 그로써 개발자로서의 지속성장을 도모하고 회사의 한 구성원으로서 올바르게 업무를 하고자 합니다.

또한 이 글을 통해 라인웍스 구성원들이 개인의 성장을 위해 얼마나 노력하는지를 전하고 싶었습니다. 업무를 병행하는 와중에 매 스터디 전원 참석하여 열정적으로 학습하였습니다. 또한 스터디원 9명 외에도, 많은 분들이 아이디어 제안과 질의응답을 해주시며, 구성원의 성장을 정성껏 도와주셨습니다.

마지막으로 저의 개인적인 고찰이 스터디를 진행하려는 분들께 하나의 참고가 되었으면 합니다. 긴 글 읽어주셔서 감사합니다!

Yun Young Chung

Linewalks Back-end Engineer

Yun Young Chung