수강평
안녕하세요. 시큐리티와 OAUTH2 강의 잘 들었습니다.
강사님이 강의를 많이 준비하신 게 느껴지고 열정도 느껴집니다.
그리도 굉장히 지식적으로 깊은 분이라는 것도요.
하지만 교수법은 좀 보완해주시면 좋을 것 같습니다.
1. 설명이 좀 급하게 진행되는 느낌이 있어요. 이건 사바사긴 한데 차분하게 강의를 이끌어주시는 게 사바사를 줄일 수 있는 방법 같다고 생각됩니다. 가끔은 발음 때문에 무슨 단어인지 끝내 알지 못하고 넘어간 적도 있습니다.
2. 강의는 수강생이 주도적으로 학습하기 어려운 구조입니다. 기본적으로 따라갈 수밖에 없어요. 그런 상황에서 강의자와 수강생이 제대로 동기화가 안 되고, 강의자가 수강생과 맥락이 다르게 되면 수강생은 굉장히 스트레스를 받게 됩니다. 커뮤니티에도 그런 부분에서 불만을 표하는 좀 감정적인 글이 가끔 보이더라고요. 심정은 조금 이해가 갑니다. 강의 구매자들은 대부분 꽤 많은 기대를 하고 강의 수강을 시작하게 되기 때문입니다.
강의자 입장에서 너무 당연한 것이(연차가 높고 지식을 많이 알수록 이런 경향이 강해집니다), 수강생 입장에선 전혀 그렇지 않을 때가 왕왕 있어요.
3. 예를 들어 권한 부여 요청을 포스트맨으로 실습하다가 스프링으로 넘어가는 것 자체는 좋았는데요. 음. 말씀하시는 속도가 특별한 포인트 없이 빠르다 보니까 중요한 이야기 같은 것이 물 흐르듯 넘어가는 느낌이 있어요. 예를 들어 최초 권한 부여 요청 할 때 로그인 버튼 누르면 클라이언트가 /oauth2/authorization으로 요청하고 클라이언트가 인가 서버로 임시 코드 요청할 때는 /oauth2/authorize로 내려주는데, 이게 그냥 와다다다 진행되니까 인지가 한동안 안 되더라고요. 꽤 오랫동안 좀 많이 헷갈리고 혼란스러웠습니다. 그래서 혼자 한땀한땀 디버깅하면서 익숙해졌어요. 아마 강사님 입장에선 너무 익숙하다 보니, 그런 것에 대한 인지가 잘 안 되실 수 있다 생각은 합니다만, 강의 하실 때 "이 url이 좀 헷갈릴 수 있다. 최초 로그인은 /oauth2/authorization, 코드 요청은 /oauth2/authorize 인데, 실제로 권한 처리 방식은 클라이언트가 code 요청을 하면서 시작되니까 authorize가 권한을 부여하다라는 의미이므로 /oauth2/authorize가 코드 요청을 하는 URL입니다. 이런 맥락에서 기억하면 좋을 것 같습니다" 같은 식으로 한 번 짚어주시는 게 수강생 입장에선 학습에 꽤나 큰 도움이 되는 포인트가 됩니다.
4. 다음 챕터 강의를 진행할 때 새로운 코드(처음부터)를 진행하시는 경우가 많이 있습니다. 수강평에 어떤 분이 코드를 유지해달라고 한 게 같은 이유인 것 같은데요. 영한님이 처음 강의 이후에는 다 코드를 남겨주니까 확실히 편하더라고요. 그 과정이 편집없이 진행되는데 그냥 그거를 같이 보고 따라하는 것만으로도 공부가 될 수도 있고 수강생과 강의자가 같은 페이지에 놓일 수 있어 장점이 있습니다.
수원 강사님처럼 매번 새로운 브랜치에서 시작하셔도 되는데, 강의 초반에 딱 한 번의 가이드가 있었으면 좋았을 것 같아요. 각 클립 혹은 섹션은 브랜치 단위로 관리되니까 웬만하면 수강생들도 그렇게 해달라. 깃 초급자도 있을 수 있으니까요. 한 번만 보여주면 되죠. PR 날려서 마스터로 병합할 거 아니니까 그냥 브랜치만 새로 생성하는 것만 보여주시면 수강생이 강사님과 같은 페이지에 있게 되는 거죠.
5. 마지막으로 Filter -> Manager -> Provider -> .. 이런 관계는 강의 본격적인 시작 전에 알려주시는 게 더 좋았을 것 같아요. 강의 중후반부에 언급하시더라고요. 강의 들으면서 저 패턴이 정해져있다는 걸 알게 되긴 했지만 초반에 패턴을 알았다면 더 수월했을 것 같습니다. 아마 다른 강의는 좀 덜할텐데 시큐리티기 워낙 클래스가 많고 뎁스가 깊어서 강의를 따라가다 보면 좀 정신 없고, 강의를 따라가는 중에도 길을 잃게 되더라고요. 물론 강사님께서 초반에 클래스 도식도 같은 거로 흐름을 짚어주시긴 하는데 처음 보는, 긴 이름의 클래스들들이 화면을 가득 채우면..그 흐름이 한 번에 확 와닿지 않습니다. 물론 도움은 되지만, 여전히 수강생과 같은 페이지에 있진 않은 것 같아요.
6. 아 그리고 인메모리에 저장하는 거 말고 최종 실습 때는 db에 저장한다고 분명 말씀하셨는데 중간에 잊으셨는지 끝까지 인메모리로 해서 실습이 종료된 건 조금 많이 아쉬웠습니다. 이건 작은 거긴 한데 최종 실습 때 리소스서버 이름을 1, 2 이렇게 하는 것보다 ResourceServerPhoto 이런 식으로 해주시면 더 좋을 것 같습니다. 옛날에 C++ 강의를 들을 때 강의자가 말하기를 "매번 같은 예제여서(거의 Person 클래스에 이름, 나이, 몇 가지 정보만 넣어서 예제를 작성함) 좀 지루하거나 재미 없을 수 있는데, 여러분은 앞으로 배울 게 많기 때문에 이런 부분에서는 새로움에 대한 허들이 낮아야 학습하기 편하다"라고, 말씀하신 게 기억에 좀 남아 있습니다.
아인슈타인이 말하기를, 설명할 때는 관련 지식이 없는 할머니도 이해할 수 있게 만들어야 한다고 하는 말을 좋아하는 터라, 교수법 관련해서 느낀 게 많아 생각을 남겨봤습니다.
그럼에도 불구하고 수강생 여러분, 시큐리티도 그렇고 이 강의는 시큐리티 프레임워크의 깊은 속내를 파악할 때 훌륭한 지침서가 되어주는 강의입니다. 저는 이제 디버깅 할 때 중단점을 어디에 어떻게 찍어야 할지 거의 다 알고 있습니다. 제가 생각한 곳에 중단점이 찍히지 않으면 더 이리저리 뒤지면서 올바른 흐름을 파악할 수 있게 됐어요. 시큐리티나 OAUTH2 분명히 쉬운 강의는 아니지만 그만큼 노력한다면 얻어가는 게 많은 강의라고 생각합니다.
잘 배워갑니다. 감사합니다.