FIELD LIBRARY / READ WHEN NEEDED

4일차 · 선택 심화 자료

이 폴더 안에서 발표·교재·코드·심화 원문을 오프라인으로 이동할 수 있습니다.

04일차
04교시
38발표 슬라이드
04공통 원문 파일
REFERENCE LIBRARY

4일차 · 필요한 교시에서 더 깊게

이 일차의4교시 배치표와 공통 참고 원문4개를 포함합니다. 외부 원문은 온라인 참고 안내에서 주소를 확인하세요.

별도 파일내용
tools-guide.htmlT01~T08 · 생성도구·업무 자동화
git-guide.htmlG01~G20 · Thomas dot Git·Worktree·복구
setup-guide.htmlF01~F23 · Codex→GitHub→Supabase→Vercel→Resend/SNS
projects-guide.htmluc-anchor·kysong·u-livet 전체 구축 연표·기술 역할·판단
목차와 처음으로 ↑
FIELD NOTES

4일차 · 과제 앱의 SNS 로그인과 MFA

Google·Kakao·Naver에서 TOTP 추가 인증과 DB AAL2까지

CONNECTED READING

D4-1 · 과제 앱 Google 로그인과 callback

핵심 연결은 본 교시 안에 포함된다. 아래 원문은 선택 심화다.

Google Cloud와 두 종류의 복귀 주소

  • 제공자 callback은 Supabase, 앱 복귀 주소는 허용된 내 앱 루트다.
  • Google 웹 OAuth Client의 대상·동의·Redirect URI를 맞춘다.
  • Client Secret은 Supabase에 보관하고 프런트엔드에 넣지 않는다.
  • 최초 가입·취소·재로그인을 같은 테스트 계정으로 확인한다.

u-livet 사례 · 이번 실습에 적용할 판단

  • 기록: 카카오·구글·네이버 인증을 순차 보완했다.
  • 판단: 제공자 인증과 앱의 가입 완료를 분리했다.
  • 적용: Google 버튼 성공뿐 아니라 callback·세션·취소를 확인한다.

u-livet 전체 구축 과정·기술 역할 ↗

선택 심화 · 원문 2개 열기

해당 교시의 설명을 대체하거나 실습 뒤 선택한다. 별도 수업시간을 추가하지 않는다.

연결 내용을 설명하는 강사 메모

Google 계정의 자체2단계 인증과 Supabase 서비스 이용자 AAL2를 혼동하지 않는다. 설정 전체는 연결된 원문에서 확인한다.

이 교시 발표로 돌아가기 ↗ · 이 교시 상세 교재 ↗

목차와 처음으로 ↑
CONNECTED READING

D4-2 · 과제 앱 Kakao 로그인과 계정 연결

핵심 연결은 본 교시 안에 포함된다. 아래 원문은 선택 심화다.

Kakao 동의와 기존 계정의 소유권

  • REST API 키·Login Client Secret·Redirect URI를 구분한다.
  • 필요한 동의 항목과 이메일 미제공 조건을 확인한다.
  • 같은 이메일이라는 이유로 앱이 과제·관리자 역할을 합치지 않는다.
  • Supabase identity와 uid를 기준으로 기존 계정 연결 결과를 확인한다.

u-livet 사례 · 이번 실습에 적용할 판단

  • 기록: SNS 인증 이후 등록된 역할과 가입 완료 상태를 검사했다.
  • 판단: 외부 계정 인증이 관리자 권한을 자동 부여하지 않는다.
  • 적용: Kakao 재로그인 뒤에도 본인 과제 소유권이 유지되는지 확인한다.

u-livet 전체 구축 과정·기술 역할 ↗

선택 심화 · 원문 1개 열기

해당 교시의 설명을 대체하거나 실습 뒤 선택한다. 별도 수업시간을 추가하지 않는다.

연결 내용을 설명하는 강사 메모

실제 제공자의 동의와 메일 없는 계정 검사를 모의 SDK 인자 검사와 구분한다. 역할 복사는 실습에서 자동화하지 않는다.

이 교시 발표로 돌아가기 ↗ · 이 교시 상세 교재 ↗

목차와 처음으로 ↑
CONNECTED READING

D4-3 · 과제 앱 Naver Custom OAuth와 어댑터

핵심 연결은 본 교시 안에 포함된다. 아래 원문은 선택 심화다.

Naver: 검증한 id와 가입 완료 상태

  • custom:naver의 OAuth2 설정과 고정 서버 UserInfo 어댑터를 연결한다.
  • 서버가 네이버에서 검증한 id만 sub로 변환한다.
  • 단순 과제 앱의 이메일 없는 가입과 실제 서비스의 연락 메일 확인을 구분한다.
  • 토큰 오류·취소·최초 가입·재로그인·동일 identity를 검사한다.

u-livet 사례 · 이번 실습에 적용할 판단

  • 기록: 네이버 사용자 정보 변환과 별도 이메일 확인을 후속 보완했다.
  • 교훈: 제공자 인증·이메일 수신·앱 가입 완료는 각각 확인해야 한다.
  • 적용: 과제 앱은 이메일을 합성하지 않고 검증한 네이버 id를 유지한다.

u-livet 전체 구축 과정·기술 역할 ↗

선택 심화 · 원문 2개 열기

해당 교시의 설명을 대체하거나 실습 뒤 선택한다. 별도 수업시간을 추가하지 않는다.

연결 내용을 설명하는 강사 메모

F19는 u-livet의 확장 가입 흐름으로 별도 심화다. 기본 과제 앱의 email_optional 경로에 이메일 OTP를 무조건 추가하지 않는다.

이 교시 발표로 돌아가기 ↗ · 이 교시 상세 교재 ↗

목차와 처음으로 ↑
CONNECTED READING

D4-4 · 과제 앱 TOTP MFA와 DB AAL2 강제

핵심 연결은 본 교시 안에 포함된다. 아래 원문은 선택 심화다.

MFA 등록만으로 과제가 보호되는가?

  • TOTP enroll→코드 검증→AAL2의 각 상태를 구분한다.
  • 6자리 문자열로 앞자리0을 보존하고 QR·키·코드는 즉시 정리한다.
  • 소유자 RLS AND restrictive AAL2를 실제 DB에서 강제한다.
  • 재로그인·오답·미완료 취소·본인/타인 접근을 함께 검사한다.

u-livet 사례 · 이번 실습에 적용할 판단

  • 기록: SNS 후속 인증과 MFA를 순차 보완했다.
  • 판단: 추가 인증 강도와 업무 역할·데이터 소유권은 별개다.
  • 적용: 본인 AAL2만 과제에 접근하고 타인은 AAL2여도 차단되게 한다.

u-livet 전체 구축 과정·기술 역할 ↗

선택 심화 · 원문 1개 열기

해당 교시의 설명을 대체하거나 실습 뒤 선택한다. 별도 수업시간을 추가하지 않는다.

연결 내용을 설명하는 강사 메모

분실 복구는 본인 확인을 포함한 정식 절차로 별도 운영한다. 인증앱 등록 화면을 추가했다는 이유로 DB 보호 통과라고 하지 않는다.

이 교시 발표로 돌아가기 ↗ · 이 교시 상세 교재 ↗

목차와 처음으로 ↑

프롬프트 직접 복사

아래 전체 문장을 선택해서 복사하세요.