본문 바로가기
개발자 일기/일일회고 (TIL)

부트캠프 58일차 (OAuth)

by MS_developer 2022. 11. 14.

오늘의 생각

 

언제나와 같이 쉽지 않은 하루였다.

 

OAuth 자체는 매우 흥미롭고 유용한 기능이었지만, 처음 접해보고 사용법을 이히면서 페어 과제를 진행하는데는 어려움이 있었다.

 

어려웠던 점
1. 용어들과 개념들이 완벽히 숙지되지 않아서 사용하는데 어려움이 있었다.
2. axios 문법을 비롯한 기초들을 적절히 활용하지 못했다.
3. 주어진 템플릿의 데이터 구조를 "완벽히" 파악하지 못해 요구사항을 제대로 이해하지 못했다.

 

이전 과제를 진행하면서도 봤었던 에러였는데, 매우 기초적인 문제임에도 잘못 이해하고 있었던 오류였다.

 

해당 에러 코드를 검색했을 때 시스템 날짜 확인, 검색 데이터 지우기 등 다양한 원인에 따른 해결 방법이 제시되었는데, 나에게 해당되는 것들이 없었다. 디버깅이 잘 안되었기 때문에 프로젝트 파일을 새롭게 클론을 하고 제시된 가이드들을 천천히 순서대로 진행했을 때 문제가 없었기 때문에 그저 'axios 문법을 잘못 사용하고 있었구나'라고 생각했다.

 

오늘도 같은 문제를 겪자 본능적으로 같은 문제가 아니라고 생각했지만, 이번에도 무식하게 기존 폴더명을 바꾸고 새롭게 클론해 와 잘못된 코드가 무엇인지 하나하나 살펴보았다.

 

하지만 문제는 쉽사리 해결되지 않았고, 제법 오랜 시간동안 고민했음에도 답이 나오지 않았다.

 

결국 다시 검색을 시작했고 에러를 차근차근 뜯어보기 시작했다.

 

1. err_ssl_protocol_error 은 SSL 인증서과 연관이 된 에러로, 보안과 관련된 문제임을 파악
2. SSL(Secure Sockets Layer)의 정의를 찾아봄 -> 암호화 기반 인터넷 보안 프로토콜 
3. SSL 인증서에 포함된 가장 중요한 정보에 웹사이트의 공개 키가 있음을 알고 진행 과정을 다시 확인
4. 과제 파일에서 서버 폴더 안에 인증서가 없음을 확인 (key.pem, cert.pem파일이 누락되어 https 프로토콜을 사용하지 않고 있음)
5. 터미널에 mkcert -key-file key.pem -cert-file cert.pem localhost 127.0.0.1 ::1 입력

 

알고보니 매우 기초적인 실수였다. 섣부른 짐작에 따른 오해가 불러온 끔찍한 결과였다.

 

역시 기본적인 개념들을 이해하고 "내가 뭘 하고 있는지" 정확히 아는 것이 중요한 것 같다. 

 

이후 과정들도 OAuth를 정확히 어떤 식으로 활용하고 있는지 100% 이해하지 못했기 때문에 마냥 쉽지는 않았다. 그래도 침착하게 과정들을 짚어가며 어떤 식으로 OAuth를 활용하는지 로직 플로우를 돌아보면서 진행하니 상황에 적절한 axios 문법을 사용할 수 있었다.

 

특히 .env 환경변수를 쓸 때 클라이언트 폴더는 리액트를 사용할 경우 'REACT_APP_'을 덧붙여 주는 것을 몰라 꽤 긴 시간을 썼던 것 같다.

 

"모르면 맞아야지" - 철권 캐릭터 쿠마

 


오늘의 키워드

OAuth, Authorization Code Grant Type, Refresh Token Grant Type

 


오늘의 학습내용

  • OAuth의 정의와 쓰는 이유
  • OAuth에서 알아야 할 용어
  • OAuth 인증 흐름

 


어려웠던 keyword / 활용한 질문

 

Q. Authorization Code와 Access Token의 차이에 대해 설명할 수 있나요?

 

A. Access Token은 보호된 리소스에 엑세스하는데 사용되는 인증 토큰이고, Authorization Code는 Access Token을 발급받기 위한 코드입니다.

 

Q. Authorization 서버와 Resource 서버의 차이에 대해 설명할 수 있나요?

 

A. Authorization Server는 인증을 담당하고 있는 서버로 Access Token을 발급하는 인증 서버고, Resource 서버는 사용자의 정보를 저장하고 있는 서버입니다.

 

 

댓글