
2026.01.13 (화)
구글로그인

오늘 수업은 구글로그인 관련하여 대칭키와 비대칭키, 암호화와 복호화 등에 대해서 공부했다. 관련된 내용을 정리해서 작성해보기
먼저 암호화와 복호화에 대해 알아보자
암호화와 복호화는 정보를 안전하게 보호하기 위해 데ㅣ터를 읽을 수 없는 상태로 만들었다가, 다시 원래 상태로 돌리는 과정을 말한다
암호화: 데이터를 읽을 수 없는 암호문으로 바꾸는 과정
복호화: 암호문을 원래 다시 읽을 수 있게 바꾸는 과정
데이터를 암호화, 복호화 할 때 동일한 키를 사용한다
특징
비대칭키는 암호화, 복호화에 서로 다른 두개의 키를 사용하는 방식이다. 이 키를 공개키와 개인키라고 부른다.
특징
참고: 구글 클라우드 소개
https://docs.cloud.google.com/apigee/docs/api-platform/security/oauth/oauth-introduction?hl=ko

제 3자의 앱이 사용자의 비밀번호를 직접 몰라도, 사용자가 허용한 범위 내에서 구글이나 카카오 같은 서비스의 데이터에 접근할 수 있게 해주는 권한부여 해주는 시스템이다.
1. 로그인 요청
사용자가 앱에서 '구글 로그인' 버튼을 누른다
2. 권한 요청 및 동의
앱이 구글 로그인 화면을 띄우고, 사용자가 로그인 완료한 뒤 "나의 프로필 정보를 가져가도 좋다" 동의한다
3.인증 코드
구글 서버가 앱한테 임시 비밀번호 같은 코드를 보낸다.
4. 토큰 교환
앱은 이 코드를 가지고 구글 서버에 가서 진짜 권한 증명서인 "액세스 토큰"으로 바꾼다
5.데이터 접근
이제 앱은 이 토큰을 보여주고 구글 서버에서 사용자의 정보를 가져온다.
클라이언트
앱이다. 우리가 만들어낼 앱으로 리소스 서버에 요청을 보내고 액세스 할 수 있는 권한을 앱에 부여해야 한다.
리소스 소유자
사용자라고 한다. 일반적으로 보호대상 리소스에 대한 액세스 권한을 부여할 수 있는 사람이라고 한다.
리소스 서버
Facebook, Google 또는 Twitter와 같은 서비스,
Access Token (액세스 토큰)
위 과정에서 얻은 '출입증'. 보통 유효 기간이 짧다.
Refresh Token (리프레시 토큰)
액세스 토큰이 만료되었을 때, 다시 로그인하지 않고도 새 토큰을 받을 수 있게 해주는 '장기 출입증 발급권'이라고 한다.
Scope (스코프)
앱이 허용받은 권한의 범위라고 한다. (예: "이메일 주소만 읽기", "캘린더 쓰기 권한" 등)
보안
비밀번호를 우리 DB에 저장하지 않아도 되므로 보안 사고 위험이 줄어든다.
편의성
사용자는 새로 회원가입을 하지 않아도 되어 앱 이탈률이 낮아진다.
전문성
google_sign_in 이나 kakao_flutter_sdk 같은 패키지를 사용할 때 내부적으로 이 OAuth 2.0 과정이 일어나고 있다는 것을 이해하면 훨씬 수준 높은 코딩이 가능하다고 한다