[회고] HTTP 완벽 가이드 스터디

kuku·2023년 12월 10일
1

회고

목록 보기
1/1

약 한달 동안 진행한 'HTTP 완벽 가이드' 책의 스터디가 끝이 났다. 스터디 과정과 느낀점 등을 정리해보고자 한다.

📖책 선정 과정

책 선정 당시 다양한 후보들이 있었다. 많은 사람들이 읽어보았을 '객체지향의 사실과 오해'나 '오브젝트'도 후보에 들었었다.

난 후보로 언급되었던 책들 중 읽어본 것이 없었지만, 모두 제목은 한 번쯤 들어봤을 정도로 유명하고 내용이 좋다는 평가가 많은 책들 뿐이었기 때문에 뭐가 되든 열심히 읽어야겠다고 생각했다.

하지만 내심 그 중에서도 'HTTP 완벽 가이드'가 선정되면 좋겠다고 생각했는데, 최근에 그 책에 대한 좋은 평가를 많이 들어 내용이 궁금했고, 스스로가 HTTP에 대한 지식이 꽤 부족하다고 여겼기 때문이었다.

개발 프로젝트에 참여하며 404, 200 등의 HTTP 상태코드나 POST, GET 등의 HTTP 메서드를 거의 항상 사용해왔지만, 근간이 되는 HTTP에 대해서는 잘 알지 못했던 것 같다.

그래서 'HTTP 완벽 가이드'를 통해 이전에 알고 있던 내용은 다시한번 탄탄하게 복습하고, 새로운 내용은 자세히 공부해보고자 했다.

스터디를 함께할 팀원들도 비슷한 생각이었는지 다수의 표를 받아 'HTTP 완벽 가이드'로 스터디를 진행할 수 있게 되었다.

🎓스터디 방식

앞서 언급한 바와 같이 스터디는 약 한달 동안 진행되었다. 책이 HTTP 전반에 대해 자세하게 다루고 있어 중요하다고 느껴지는 장들을 위주로 뽑아 다음과 같은 일정으로 진행하기로 결정했다.

여담이지만 스터디를 시작한 이후에 사람들이 이 책의 일부 내용만 골라 읽을 때 웹 프로그래머를 위한 HTTP 완벽 가이드 읽는 법 이라는 글을 참고한다는 것을 알게 되었는데, 우리가 선정한 부분과 동일해 신기했던 기억이 있다...ㅎㅎㅎ

스터디 방식에는 3가지 후보가 있었다.

내가 최근에 참여한 스터디는 3번의 방식과 비슷했는데, 다만 한 명만 발표를 하는 것이 아니라 모든 사람들이 발표를 했다. 모두가 내용 공부를 열심히 한다는 장점이 있지만, 모두가 발표를 하기 때문에 다소 시간이 오래 걸린다는 단점이 있었다.

2번 방식은 생각해본 적 없는 방식이라 신선했지만, 모두가 동일한 범위에 대해 문제를 출제하면 문제가 비슷할 것 같기도 했고 스터디가 진행될수록 스스로가 내용 이해보다 문제 출제에 더 신경 쓰는 주객전도가 일어날 수도 있을 것 같아 그다지 끌리는 방식은 아니었다. (그리고 이 생각은 추후에 완전 뒤집히게 된다...!)

1과 3, 2가 비슷비슷한 지지를 받아 시작은 가볍게 1번으로 하고, 차차 스터디에 적응이 되면 2도 적용해보기로 결정했다.

📁 스터디 진행

스터디는 매주 화요일, 목요일 오전 9시에 한 시간 동안 진행되었고, 모두 노션 페이지를 만들어 기록해두었다.

말그대로 자기가 중요하다고 생각하는 부분, 새로 알게 된 부분, 몰랐던 부분을 공유하는 시간이었기 때문에 대화를 위주로 하고, 기록은 간단하게 했다.

같은 내용을 읽고 이야기를 나누는 것이었지만, 다들 저마다 궁금했던 부분이나 추가적으로 찾아본 내용들은 달랐기 때문에 그런 부분들을 공유하며 HTTP에 대해 더 알아갈 수 있는 시간이 되었다. 팀원들이 모두 백엔드 개발을 공부하고 있기 때문에 책 내용과 백엔드 지식을 엮어서 이야기하게 되는 경우가 많아 재밌기도 했다.

차근차근 스터디가 진행되던 중, 중반인 5장 웹 서버와 7장 캐시 부분 정도에 들어서니 뭔가 새롭게 리프레쉬(?)가 되면 좋을 것 같아 이전에 얘기했던대로 스터디 방식을 문제 출제로 변경하였다.

앞서 언급한 바와 같이 난 스터디 시작 전에는 문제 출제 방식이 그닥 끌리지 않았는데, 막상 스터디를 진행해보니 같은 방식으로 계속 진행되는 것이 전체적으로 스터디를 지루하게 만드는 것 같기도 했고 이전에 경험해본 적 없는 방식이라 한 번 해보고는 싶다는 생각이 들었다.

다음은 내가 출제했던 문제들이다.

Q. 다음 중 쿠키에 대한 설명으로 옳은 것은?

1. 대부분의 브라우저와 서버는 기본적으로 두 버전의 쿠키를 지원한다.
2. 쿠키는 크게 세션 쿠키와 지속 쿠키 두 가지 타입으로 나눌 수 있으며, 두 쿠키의 다른 점은 파기되는 시점뿐이다. 쿠키에 Discard 파라미터가 설정되어있거나, 파기되기까지 남은 시간을 가리키는 Expires 혹은 Max-Age 파라미터가 없으면 해당 쿠키는 브라우저를 닫거나 컴퓨터를 재시작하더라도 남아있다.
3. 각 브라우저는 각기 다른 방식으로 쿠키를 저장한다.
4. Set-Cookie 헤더를 가진 응답을 캐시하면 사용자 추적에 실패할 것이기 때문에 캐시할 수 없다.
다음은 암호에 대한 설명이다.

1. 인코딩을 할 때 사용하는 키가 디코딩을 할 때와 같은 암호 알고리즘을 공개키 암호법이라고 한다. (o / x)
2. 두 개의 비대칭 키를 사용하는 암호 방식에서는 메시지 발송자에게만 디코딩 능력이 부여된다. (o / x)
3. 대칭과 비대칭 방식을 섞은 암호 방식의 알고리즘이 쓰이기도 한다. 이때, 의사소통 채널 수립을 위해 대칭 키를 사용하고, 이후의 나머지 데이터를 암호화할 때는 공개 키를 활용한다. (o / x)
4. N번 회전 암호는 마침표나 공백을 포함하여 회전시킨다. (o / x)
다음 중 옳은 것을 고르시오.

1. 만약 HTTP 요청에 Accept-Encoding 헤더를 포함하지 않는다면, 서버는 클라이언트가 콘텐츠 인코딩을 받아들일 수 없는 것으로 간주한다.
2. 전송 인코딩과 콘텐츠 인코딩은 동시에 사용될 수 없다.
3. HTTP/1.1 명세는 청크 인코딩에 대해 Q 값이 1.0을 갖는 것을 허용한다.
4. 만약 서버가 이해할 수 없는 전송 인코딩된 메시지를 받았다면, 서버는 411 Length Required 상태 코드로 응답해야 한다.
다음 중 국제화에 대한 설명으로 옳은 것은?

1. Accept-Language 헤더에서 사용되는 품질 인자 q의 기본값은 0이다.
2. 서버의 응답에서 문자집합이 명시적으로 나열되지 않았다면, 수신자는 문서의 콘텐츠로부터 문자집합의 추측을 시도한다.
3. URI는 두 번 이상 언이스케이핑 되어도 데이터가 변질되지 않는다.
4. HTTP 애플리케이션이 글자들을 처리하기 위해 사용하는 라이브러리들은 모두 ASCII 범위를 벗어난 글자를 지원한다.

실제로 스터디를 진행해보니 같은 범위에서도 팀원들마다 다양한 문제를 출제했고, 문제를 출제하고 풀이하기 위해 책을 다시한번 꼼꼼히 읽어볼 수 있는 기회가 되었다. 게다가 처음 진행했던 방식보다 더 재밌었다...!

재미가 있으면서 내용을 이해하는 데에도 소홀히 하지 않게 되는 스터디 방식이라는 생각이 들어 앞으로도 책 스터디를 할 때 추천할만한 방식인 것 같다.

🍀진짜 회고

사실은 처음 이 스터디를 시작할 때 장마다 내용을 읽고 그 내용을 벨로그에 정리하려고 했었다. 그 흔적이 아직 임시 글 목록에 남아있다...

그런데 정리를 하다보니 어디까지가 '정리'인지 감이 잘 오지 않았다. 그냥 책 내용을 따라치게 되는 것 같다고 해야하나...? 그리고 생각보다 시간이 오래 걸려서 주객전도의 느낌이 들기도 했다. 그래서 과감하게 정리 포스트는 잠시 미뤄두고, 책을 읽고 내용을 이해하는 데 집중하기로 결정했었다. 책을 읽으면서 궁금하거나 이해가 되지 않는 부분들은 바로바로 키워드 위주로 검색해보면서 이해하려고 노력했다.

그렇기 때문에 스터디를 하기 이전보다는 HTTP에 대한 지식이 꽤 늘었다고 생각한다. 그런데 내가 당장 이 지식들을 실질적으로 써먹을(?) 일은 없을 것 같아 제대로 이해했는지는 앞으로 차차 백엔드에 대해 더 공부하며 실감할 수 있을 것 같다는 생각이 들기도 한다. 그래서 나에게 이 책은 한 번에 모든 내용을 이해하려고 하기보다는 여러 번 읽어보며 이해하는 것이 더 적합한 책인 것 같기도 하다.

또, 개발 관련 책 스터디는 처음이었는데 혼자 개발 관련 책을 읽는 것을 어려워하는 나에게는 정말 유익한 스터디였다. 어려워한다는 것이 내용상의 어려움을 의미하는 것은 아니고, 혼자서 책을 읽으려고 하다보니 지루하기도 해서 꾸준히 하기가 어려워 곧잘 흐지부지되는 것을 의미한다...

하지만 여러 명이서 스터디를 하니 나의 사회적 체면(?)을 지키기 위해 저절로 꾸준히 책을 읽게 되었고, 끝까지 잘 참여하게 되어 뿌듯했다. 단순히 책을 읽기만 한 것이 아니라 다른 사람들과 그 내용에 대해 이야기하고 문제 출제&풀이하는 과정이 있었다는 점에서 혼자 책을 읽는 것보다 내용이 기억에 더 오래 남을 것 같기도 하다. 이래서 사람들이 책 스터디를 하나보다...!

이전에는 개발 공부를 위해 강의나 검색을 주로 이용했었는데, 책으로도 한 번 끝을 봤으니 혼자서도 이전보다 더 잘할 수 있지 않을까 하는 생각이 든다. 속도가 더디더라도 개발 공부에 도움이 될 책들을 읽어봐야겠다!

0개의 댓글