

Android 프로젝트에서 코끼리 모양(Gradle) 클릭 > Execute Gradle Task에 gradle signingReport 에서 SHA1 키를 디지털 지문으로 등록해주면 끝!
여기에서 발생한 이슈는, 같은 코드가 있는 git에서 clone한 프로젝트라도, 로컬 프로젝트의 SHA1 값은 다 다르기 때문에 함께 개발하기 위해서는 모두의 값을 넣어두어야 한다.
구글 로그인을 구현하기 위해서는 웹용 클라이언트가 필요하기 때문에 웹용 클라이언트까지 추가한 후 생성되어 있는 클라이언트 ID를 환경변수 삼아 해주면 된다.
완료했다면 사용자 인증 정보 탭 아래에 위치한 ‘OAuth 동의화면’을 차근차근 채워주면 된다. 여기에서 필요한 정보를 체크해서 받아올 수 있다.

해당 화면에서 테스트 사용자에 추가한 메일만 구글로 로그인할 수 있다.
코드에서 Login을 위한 로직을 구현하면 된다.
앱 배포 후 구글 로그인은 apk로 추출하면서 받은 keyStore에 있는 SHA1키를 등록해주면 된다.
Build > Generate Signed App Bundle / apk로 들어가서apk클릭한 후
“create new”를 눌러 key 파일을 원하는 곳에 만든 후, 비밀번호를 설정해주면 된다.
Open Java JDK가 깔려있다면! 명령 프롬포트(cmd)를 켜서
key 파일을 저장해둔 파일 경로로 이동한 후,
keytool -list -v -keystore ${당신의 Key 파일 이름}.jks"을 치고, 키 비밀번호를 입력하면
안에 여러가지 key가 들어있고 거기에 있는 SHA1 키를 구글 로그인 콘솔에 등록해주면 끝!
아래에 쓴 이름은 프로젝트에서 제가 썼던 이름이므로, Activity와 ViewModel, Repository, Page 흐름만 봐주면 될 것 같습니다.
MainActivity: 앱의 메인 엔트리 포인트입니다. 여기에서 LoginViewModel을 초기화하고, StartPage를 시작 화면으로 설정합니다. MainActivity는 구글 로그인 결과를 처리하는 signInLauncher를 통해 로그인 결과를 받아 LoginViewModel로 전달합니다.StartPage: 앱의 첫 화면으로, 사용자가 구글 로그인 버튼을 눌러 MainActivity에서 로그인 프로세스를 시작하게 만듭니다. StartPage에서 LoginViewModel의 profileUrl을 구독하여 사용자가 로그인 완료 후 프로필 URL이 설정되면 MainPage로 이동하게 합니다.LoginViewModel: 앱의 상태 관리와 로그인 로직을 처리하는 뷰 모델입니다. 여기서:GoogleLoginRepository를 통해 구글 로그인 결과를 받고, 성공 시 프로필 정보(이메일, 닉네임, profileUrl)를 설정합니다.accessToken을 받아 저장합니다.accessToken이 만료되면 재발급을 요청하는 로직도 여기에 추가됩니다.MainPage: 로그인 완료 후 표시되는 메인 화면입니다. profileUrl을 TheHeader와 같은 UI 컴포넌트에 표시하고, 다른 주요 기능들을 제공합니다.LoginActivity: LoginActivity는 구글 로그인 UI와 백엔드 로그인 관련 처리를 하는 페이지로, 사용자 인증 절차를 담고 있습니다. GoogleLoginRepository를 통해 로그인 요청 및 결과를 처리하고, 이를 LoginViewModel에 전달합니다.