# 인증 및 세션 관리 (React Native) > OAuth2/OIDC, PKCE, refresh token, 보안 세션 저장, webview vs in-app browser, 생체 인증 - 22 면접 질문 - Mid-Level - [면접 질문: React Native](https://sharpskill.dev/ko/technologies/react-native/interview-questions.md) ## 1. 모바일 인증의 맥락에서 OAuth2란 무엇입니까? **답변** OAuth2는 모바일 애플리케이션이 자격 증명을 노출하지 않고도 사용자 리소스에 접근할 수 있게 해주는 업계 표준 인가 프로토콜입니다. access token을 발급하는 인가 서버에 인증을 위임하는 방식으로 작동합니다. 애플리케이션이 비밀번호를 처리하는 직접 인증과 달리, OAuth2는 사용자가 서드파티 제공자(Google, Apple 등)를 통해 안전하게 인증할 수 있도록 합니다. ## 2. OAuth2와 OpenID Connect (OIDC)의 주요 차이점은 무엇입니까? **답변** OAuth2는 리소스에 대한 접근 권한을 얻을 수 있게 해주는 인가 프로토콜인 반면, OIDC는 OAuth2 위에 구축되어 인증을 추가하는 신원(identity) 계층입니다. OIDC는 사용자 신원에 관한 정보(claims)를 JWT 형식으로 담은 ID token을 도입하여, 애플리케이션이 사용자가 특정 리소스에 접근할 수 있다는 사실뿐만 아니라 그 사용자가 누구인지도 알 수 있도록 합니다. ## 3. PKCE (Proof Key for Code Exchange)란 무엇이며 모바일 애플리케이션에 왜 필수적입니까? **답변** PKCE는 인가 코드 가로채기 공격으로부터 보호하는 OAuth2 보안 확장입니다. 클라이언트 측에서 무작위 code_verifier를 생성하고, 이로부터 code_challenge를 도출하여 인가 요청 시 전송하는 방식으로 동작합니다. 코드를 토큰으로 교환할 때 원래의 code_verifier가 전송되고 서버에서 검증됩니다. 모바일 앱은 client_secret을 기밀로 유지할 수 없기 때문에 이는 매우 중요합니다. ## 19개 추가 질문 이용 가능 - React Native 모바일 애플리케이션에는 어떤 OAuth2 flow가 권장됩니까? - access token과 refresh token의 차이점은 무엇인가요? 무료로 가입하기: https://sharpskill.dev/ko/login ## 기타 React Native 면접 주제 - [JavaScript 핵심](https://sharpskill.dev/ko/technologies/react-native/interview-questions/javascript-essentials.md): 25개 질문, Junior - [React 기초](https://sharpskill.dev/ko/technologies/react-native/interview-questions/react-fundamentals.md): 20개 질문, Junior - [React Native 기초](https://sharpskill.dev/ko/technologies/react-native/interview-questions/react-native-basics.md): 22개 질문, Junior - [React Hooks](https://sharpskill.dev/ko/technologies/react-native/interview-questions/react-hooks.md): 20개 질문, Junior - [React 및 React Native를 위한 TypeScript](https://sharpskill.dev/ko/technologies/react-native/interview-questions/typescript-for-react-native.md): 22개 질문, Junior - [React Native 컴포넌트 및 API](https://sharpskill.dev/ko/technologies/react-native/interview-questions/rn-components-api.md): 20개 질문, Junior - [React Native 스타일링 및 레이아웃](https://sharpskill.dev/ko/technologies/react-native/interview-questions/rn-styling-layout.md): 18개 질문, Junior - [React Native 내비게이션](https://sharpskill.dev/ko/technologies/react-native/interview-questions/rn-navigation.md): 22개 질문, Mid-Level - [React Native 상태 관리](https://sharpskill.dev/ko/technologies/react-native/interview-questions/rn-state-management.md): 24개 질문, Mid-Level - [React Native 네트워킹 및 API](https://sharpskill.dev/ko/technologies/react-native/interview-questions/rn-networking-api.md): 20개 질문, Mid-Level - [데이터 영속성](https://sharpskill.dev/ko/technologies/react-native/interview-questions/rn-data-persistence.md): 20개 질문, Mid-Level - [폼과 유효성 검사](https://sharpskill.dev/ko/technologies/react-native/interview-questions/rn-forms-validation.md): 18개 질문, Mid-Level - [React Native 애니메이션](https://sharpskill.dev/ko/technologies/react-native/interview-questions/rn-animations.md): 22개 질문, Mid-Level - [Native Modules & Bridge](https://sharpskill.dev/ko/technologies/react-native/interview-questions/rn-native-modules.md): 20개 질문, Mid-Level - [플랫폼별 코드](https://sharpskill.dev/ko/technologies/react-native/interview-questions/rn-platform-specific-code.md): 18개 질문, Mid-Level - [권한 및 디바이스 API](https://sharpskill.dev/ko/technologies/react-native/interview-questions/rn-permissions-apis.md): 20개 질문, Mid-Level - [Push Notifications](https://sharpskill.dev/ko/technologies/react-native/interview-questions/rn-push-notifications.md): 18개 질문, Mid-Level - [React Native 테스팅](https://sharpskill.dev/ko/technologies/react-native/interview-questions/rn-testing.md): 20개 질문, Mid-Level - [React Native 디버깅](https://sharpskill.dev/ko/technologies/react-native/interview-questions/rn-debugging.md): 18개 질문, Mid-Level - [Build & Deployment](https://sharpskill.dev/ko/technologies/react-native/interview-questions/rn-build-deployment.md): 20개 질문, Mid-Level - [Expo vs React Native Bare](https://sharpskill.dev/ko/technologies/react-native/interview-questions/expo-vs-bare-rn.md): 18개 질문, Mid-Level - [성능 최적화](https://sharpskill.dev/ko/technologies/react-native/interview-questions/rn-performance-optimization.md): 24개 질문, Senior - [메모리 관리](https://sharpskill.dev/ko/technologies/react-native/interview-questions/rn-memory-management.md): 20개 질문, Senior - [Architecture Patterns](https://sharpskill.dev/ko/technologies/react-native/interview-questions/rn-architecture-patterns.md): 22개 질문, Senior - [React Native New Architecture](https://sharpskill.dev/ko/technologies/react-native/interview-questions/rn-new-architecture.md): 24개 질문, Senior - [보안 모범 사례](https://sharpskill.dev/ko/technologies/react-native/interview-questions/rn-security-best-practices.md): 20개 질문, Senior - [Offline-First Architecture](https://sharpskill.dev/ko/technologies/react-native/interview-questions/rn-offline-first.md): 20개 질문, Senior - [React Native CI/CD](https://sharpskill.dev/ko/technologies/react-native/interview-questions/rn-ci-cd.md): 20개 질문, Senior - [Monorepo와 코드 공유](https://sharpskill.dev/ko/technologies/react-native/interview-questions/rn-monorepo-architecture.md): 18개 질문, Senior - [고급 주제](https://sharpskill.dev/ko/technologies/react-native/interview-questions/rn-advanced-topics.md): 22개 질문, Senior - [앱 라이프사이클 및 백그라운드 실행](https://sharpskill.dev/ko/technologies/react-native/interview-questions/rn-app-lifecycle-background.md): 20개 질문, Mid-Level - [Monitoring & Crash Reporting](https://sharpskill.dev/ko/technologies/react-native/interview-questions/rn-monitoring-crash-reporting.md): 20개 질문, Senior --- Source: SharpSkill (https://sharpskill.dev), tech interview preparation for your real stack. HTML version of this page: https://sharpskill.dev/ko/technologies/react-native/interview-questions/rn-auth-session-management