나는 자기 전에 생각이 많아지는 편이다. 그 생각들은 대부분 작성했던 코드가 최선이었는가? 새로운 프로젝트 주제, 공부 방법, 취업 고민 등으로 구성되어 있다. 그래서 잠이 오지 않는 날에는 IT 관련 유튜브 영상을 시청하다가 잠에 든다. 이때 영상을 통해 흥미로운 말을 들었다.
웹 개발자 분들은 HTTP 위에서 작동하는 코드를 작성하기 때문에 꼭 알아야 한다.
맞다. 백엔드 분야를 공부하고 있는 나도 HTTP 메시지를 주고 받으며, 더 나은 기능을 제공하기 위해 코드를 짜고 공부를 한다. 하지만 HTTP에 대해서 자세히 알려고 하지 않았다는 것을 깨달았다. 그래서 다음 날 HTTP를 공부하기 위한 방법을 찾았다.
여러 영상과 게시글에서 HTTP 완벽 가이드
책을 추천해주셨다. 나온지 오래된 책이지만, HTTP 개념이 크게 바뀐 것은 없어서 기본기를 공부할 때 전혀 무리가 없으며, 후기도 좋아서 책을 구매하려고 했다.
그러나 756 페이지
라는 거대한 숫자를 보고 망설였다. 우선 많은 페이지를 효율적으로 공부하는 방법이나, 방대한 정보 중에서 어떤 것이 지금 나에게 필요한 정보인지 판단하는 방법을 잘 모른다고 생각했다. 결국 다 읽어야 마음이 편하기에 시간이 꽤 오래 걸릴 것이라고 판단했다.
추가적으로 나는 비교적 짧은 시간으로 핵심 개념들을 공부해보고 싶었다. 그래서 책 대신 강의를 찾아보게 되었다.
여러 강의를 비교하다가 한국 JPA의 아버지라고 불리는 김영한님의 모든 개발자를 위한 HTTP 웹 기본 지식 강의를 찾았다. 수강생이 많고 후기가 좋은 것도 믿을만 했고, 수강 목표가 제일 마음에 들었다.
나에게 알맞은 학습량
이라는 키워드는 책보단 짧은 학습 시간으로 느껴졌고, 전체 흐름+원리
키워드는 HTTP를 처음 공부하겠다고 생각한 나에게 적합하다고 생각했다. 결국 해당 강의를 구매하기로 결정했다.
모든 개발자를 위한 HTTP 웹 기본 지식 강의를 들으며 배운 내용을 정리했다.
강의를 들을 때, "오 이런 것도 있었어? 당장 써야겠다."
라고 생각되는 개념들이 많았다. 하지만 그 개념의 한계와 해결 방법 또는 실무에서의 예시를 설명해주신다. 덕분에 어떤 개념의 한 부분만 보는 것이 아니라 여러 방면으로 보면서 생각해볼 수 있는 좋은 강의였다.
전체 흐름을 설명하며 각 개념의 원리를 이해하기 쉽게 설명해주시기 때문에 학습하는 시간이 지루하지 않고 더 배우고 싶게 만들어주셨다. 배운 내용들을 더 오래 기억하고 싶어서 정리해서 기록해두었다.
강의를 수강하고 정리하고 나서 아쉬운 마음이 들었다.
아쉬운 마음을 달랠 수 있는 방법을 고민하다가 다른 사람과 HTTP 이야기를 주고 받을 수도 있으며, HTTP를 잘 모르고 있던 사람들에게도 배운 내용을 공유할 수 있다고 생각해서 스터디를 모집하고 진행하기로 결정했다.
개인적으로 남에게 지식을 공유할 때 가장 많은 공부가 된다고 생각했기 때문에 비교적 빠르게 결정할 수 있었다.
스터디를 모집할 때 두 가지를 고려했다.
외에도 매력적인 스터디로 만들기 위해 약간의 어필을 첨가했다.
모집 대상은 고민 끝에 아래와 같이 결정했다.
- 프로젝트를 1회 이상 진행해봤지만, HTTP에 대해 크게 고민해본 적이 없는 분들
- HTTP에 대해 함께 학습해보고 싶은 분들
- 고민하고 결정하는 사람이 되고 싶은 분들
원활한 비교 설명을 위해 웹, 앱, 서버 등 API를 다루는 프로젝트를 1회 이상 진행했던 적이 있는 분들을 모집하게 되었다.
고민하고 이유를 찾아 결정하는 사람이고 싶은 사람들과 진행하면 더 의미있는 시간이 될 것 같아서 추가했다. (어떤 문제로 이렇게 되었다, 이러한 이유로 최선의 선택이었다 등과 같은 의미있는 대화를 나누고 싶었다.)
추가적으로 스터디 진행 비용 특히, 장소 대여료같은 비용을 아끼기 위해 교내 강의실을 빌리는 것을 고려했고, 그러려면 교내 강의실 출입이 가능한 사람들과 함께해야 하기 때문에 이번 스터디는 내가 활동했던 교내 GDSC(Google Development Student Clubs)에서 모집하기로 결정했다.
스터디가 김영한님의 강의를 기준으로 진행되기 때문에 다룰 내용이 정해져있었고, 한달을 넘어가면 루즈해질 것이라고 생각했다. 하지만, 여러 사람과 함께 시간을 보내는 것이니 현실적인 고려도 함께 했어야 했다. (아르바이트, 사전 약속 등)
그래서 일주일 중에서 하루를 고정으로 정하고 4주간 총 4번 진행하는 것으로 결정했다.
신청을 위한 구글 폼이다. 스터디를 진행할 때 강의 형식을 채택할 예정이었기 때문에 참여자분들이 얼마나 HTTP를 알고있는가?가 중요하다고 생각했다. 그래서 검색 없이 입력해달라고 부탁드렸다.
실제로 응답 결과를 확인하면, HTTP에 대한 자세한 내용은 모르지만, 프로젝트를 1회 이상 진행해보면서 알게된 Status Code, HTTP Method 등 사용할 때의 경험을 위주로 작성해주셨다.(500은 서버에 문제가 생긴 것이에요. 등) 덕분에 강의를 준비할 때 실제 사용 예시를 많이 가져와서 설명했고 반응이 좋았다.
스터디 이름이 있으면 좋을 것 같아서 HTTP와 친해지기
로 결정했다. (신청자 분들의 부담을 적게 주려고 결정한 이름이다.)
모집 결과는 나를 포함해서 총 10명의 인원이 모였고, 모두 GDSC 멤버들로 구성되었다.
인터넷 네트워크, HTTP 메시지 구조, Status, Header 등 흐름은 김영한님 강의와 유사하게 준비했고, 앞서 말했듯이 4차시로 구성했다.
대부분은 강의 형태로 진행했다. 분량은 키노트 50~70장 정도이다.
쉽게 이해할 수 있도록 예시를 많이 준비했었다.
리마인드
시간을 만들어서 이전 차시에서 학습한 내용을 스터디원이 설명할 수 있도록 만들었다. 배웠던 키워드를 나열해두고 모든 스터디원이 돌아가면서 각 키워드에 대해 생각나는 만큼 설명하도록 지도했다. 덕분에 모두 복습을 하게 되었고, 따로 질문을 주는 스터디원도 있어서 뿌듯했다.
진행하다가 다음에 나올 내용을 숨기고 물어보는 것도 효과가 좋았던 것 같다. 예를 들어, 리다이렉트를 설명하다가 Location 헤더를 기반으로 리다이렉트를 하게될 텐데 이때 기존 요청했던 메서드나 본문은 어떻게 될까요? 같은 질문이었다.
추가적으로 지식을 공유하는 입장에서 더 나은 학습을 위해 공식 스펙(+번역)을 되게 많이 찾아봤다. 이런 부분도 나에게 많은 도움이 되는 것 같다.
총 4번의 스터디를 마무리했다. 간단하게 KPT방식으로 회고를 해보려고 한다. 회고 범위는 나와 스터디 자체에 두려고 한다.
이번 스터디를 준비하는 과정에서 "누군가에게 지식을 공유하는 것으로 더 많은 성장을 할 수 있다" 는 것을 다시 한번 느끼게 되었다.
쉬운 이해를 위해 예시를 많이 사용했다. 쉽게 이해할 순 있었지만, 종종 개념의 정의를 예시로 말씀하는 분들이 있었던 것 같다. 좀 더 명확히 안내하고 나도 그렇게 되지 않도록 학습하면 더 좋을 것 같다.
지식을 공유하는 것은 나에게 많은 도움이 되고 있다. 더 챌린지한 곳에서 경험해보고 싶고, 지식을 공유받는 경험을 통해 서로를 이해할 수 있는 시간을 가지면 좋을 것 같다.
스터디에서 함께하신 분들의 후기글인데, 뿌듯하다.
읽어주셔서 감사합니다.
정말 유익한 스터디 진행해주셔서 감사합니다 🙇🏻♀️
고생하셨어요 :)