안녕하세요, 성조입니다.
오랜만에 포스트를 작성하게 됐네요.
이번 포스트는 간단하게 학습하고 정리한 내용을 작성한 포스트입니다.
getSession()과 getUser()란?
공통 - Supabase의 auth 모듈에서 유저의 인증 정보를 관련해서 가져오는 함수이다.
getSession()
- 사용자가 로그인되어 있는지 확인하고, 세션의 만료 시간을 포함한 정보를 반환함.
- 인증 토큰이 필요할 때 사용할 수 있음.
getUser()
- 현재 로그인한 사용자의 기본 정보를 반환.
- 프로필 정보(이메일, ID, 사용자 메타데이터 등)를 얻을 때 사용.
정리
함수 | 설명 | 반환 값 |
getSession() | 현재 인증 세션 정보를 가져옴 | {session, expires_at } |
getUser() | 현재 로그인한 사용자의 정보를 가져옴 | {user} |
최신 Supabase 코드에서 더 이상 지양되는 getSession()?
- 최신 Supabase Auth API에서 getSession()보다 getUser()가 조금 더 권장되는 편.
- getUser()를 호출하면 내부적으로 세션도 확인할 수 있기 때문에, getSession()을 따로 사용할 필요가 줄어들어서 처음 로그인/로그아웃 하는 과정에서 주로 사용되는 정도로 축소 됨
onAuthStateChange의 등장과 적용 사례
- 사용자가 로그인/로그아웃할 때 자동으로 UI를 업데이트하고 싶을 때
- 세션이 만료되었을 때 자동 로그아웃 처리하고 싶을 때
- 클라이언트 앱(Next.js, React 등)에서 로그인 상태를 유지 및 관리할 때
즉, 실시간 상태 감지를 위해 사용하는 onAuthStateChange 함수.
onAuthStateChange의 단점
1. 불필요한 API 요청을 반복 호출하는 경우
2. 컴포넌트가 여러 번 마운트될 때마다 이벤트 리스너가 중복 등록되는 경우
효율적 함수 세팅
✅ getSession() → 초기 로그인 상태 확인 (1회 호출)
✅ onAuthStateChange() → 로그인/로그아웃 감지 (UI 자동 업데이트)
✅ getUser() → 필요할 때만 사용자 정보 가져오기 (불필요한 API 요청 방지)
아직 제가 만들고 있는 프로덕트에서는 onAuthStateChange를 적극적으로 가져오지 못하고 있는 상황이에요.
조금 더 공부해서 다듬을 수 있도록 해보겠습니다.
[잡담]
2023년과 2024년은 쉽지 않은 일들로 가득한 시간이었네요.
주변에서 걱정할 만큼 힘든 일들이 종종 있었지만, 그에 슬퍼하고 주저앉아 있기엔 젊음이 너무 아깝다고 생각합니다.
이제는 털어내고 또 다시 앞으로 나아가 보려고 해요. 😊
올해는 이전보다 조금 더 행복하기 위함을 목표로 스스로 조금 더 노력해보려 합니다. 그리고, 네이버 블로그도 꾸준히 다시 작성해보려 해요.
이 글을 읽어주시는 분들 올해는 지난 날보다 더 행복하시길 바랄게요.
아직은 부족한 점이 많지만, 직접 하나씩 개발해 나가며 더 나은 서비스를 만들기 위해 웹과 앱을 함께 1인 개발하고 있습니다.
Muricture
Muricture는 일정과 콘텐츠가 연결되는 SNS 기반 캘린더 플랫폼입니다. 모먼츠를 자유롭게 공유하고, Planaz로 나만의 캘린더를 커스터마이징하세요.
www.muricture.com
블로그 좋아요와 구독도 좋지만, 제가 차근차근 만들고 있는 서비스를 피드백 받을 수 있다면 조금 더 행복할 것 같습니다.😊
오타 또는 잘못 전달된 내용이 있다면 언제든지 댓글로 공유주시면 감사드리겠습니다!
다음 포스트에서 뵐게요 🫡
'Study 📔' 카테고리의 다른 글
[Study] 고객 충성도를 높이는 CRM(Customer Relationship Management) 마케팅 전략 (0) | 2024.11.21 |
---|---|
[Study] MVP(Minimum Viable Product)란? 빠르고 효율적인 시장 검증 전략 방법 (0) | 2024.11.18 |
[Study] 사용자 여정 맵핑(User Journey Mapping) 개념 익히기 (0) | 2024.11.16 |
[Study] 사용자 중심의 서비스 기획, 왜 중요할까? (0) | 2024.11.14 |
[Study] 모듈(Module)과 패키지(Pakage)의 차이점 (1) | 2024.09.18 |