📌 1. 카카오 개발자센터 OAuth 앱 등록 및 세팅
·
프로젝트
📌 1. 카카오 개발자센터 OAuth 앱 등록 및 세팅1️⃣ 카카오 개발자센터 접속https://developers.kakao.com/→ 카카오 계정 로그인2️⃣ 내 애플리케이션 > 애플리케이션 추가내 애플리케이션 메뉴 클릭+ 애플리케이션 추가 버튼 클릭앱 이름: 원하는 이름 입력 (예: 가계부)사업자명: 개인이면 본인 이름3️⃣ 앱 정보 확인 및 REST API Key 복사앱 생성 후, 앱 키 탭에서REST API 키 복사Client Secret도 필요하면 발급(선택, 기본 미설정)4️⃣ 플랫폼 등록왼쪽 메뉴에서 플랫폼 클릭웹 플랫폼 > 사이트 도메인 등록http://localhost:8000(배포 시엔 https://api.yourdomain.com 도 추가)5️⃣ Redirect URI 등록제품 ..
📝 가계부 API (OpenAPI 3.0.3) 시각적 구조 요약 API 상세 명세서
·
프로젝트
📝 가계부 API (OpenAPI 3.0.3) 시각적 구조 요약1️⃣ 기본 정보API 명: 가계부 API버전: 1.0.0설명: Django REST Framework 기반 가계부 관리 API2️⃣ 메인 엔드포인트 구조📦 [accounts] 계좌 관련메서드경로설명GET/api/accounts/계좌 목록 조회POST/api/accounts/새 계좌 생성GET/api/accounts/{account_id}/특정 계좌 상세 조회DELETE/api/accounts/{account_id}/특정 계좌 삭제 💸 [transactions] 거래내역 관련메서드경로설명GET/api/accounts/{account_id}/transactions/거래내역 목록 조회POST/api/accounts/{account_id}/t..
OAuth 회원가입/닉네임 등록 과정에서 만난 브레이킹 체인지 및 디버깅 기록
·
프로젝트
📌 OAuth 소셜 로그인/닉네임 강제등록 실전 브레이킹 체인지 기록 (feat. Django DRF, JWT, 쿠키 인증)🕓 0. 배경과 목적목표:네이버/깃허브 소셜 로그인 → JWT 쿠키 기반 인증 → 닉네임 강제등록 → 내 정보 호출까지실전 서비스 흐름을 Django DRF로 완성문제:“회원가입, 인증 다 되는 줄 알았는데 계속 401/500 에러… 진짜 브레이킹 체인지가 한 번에 여러 개 터짐!”⚡️ 1. 실전 문제 상황 (파일별, 변수별, 단계별 정리)1) 비밀번호 임시 생성에서의 AttributeError문제 파일:에러 라인:user.set_password(User.objects.make_random_password())에러 메시지:AttributeError: 'CustomUserManag..
📌 Django OAuth 리팩토링 - 10편: Swagger API 문서화 설정 & 실전 활용 팁
·
프로젝트
Swagger API 문서화 설정 & 실전 활용 팁🎯 API 명세를 자동으로 생성하고 직관적으로 테스트까지 가능한drf-spectacular 기반 Swagger 문서 구성과 활용법을 정리📌 1. Swagger 설정 핵심 포인트📁 settings/base.py → 핵심 설정INSTALLED_APPS += [ "drf_spectacular",]REST_FRAMEWORK = { 'DEFAULT_SCHEMA_CLASS': 'drf_spectacular.openapi.AutoSchema',}SPECTACULAR_SETTINGS = { "TITLE": "가계부 API", "DESCRIPTION": "Django REST Framework 기반 가계부 API", "VERSION": "..
📌 Django OAuth 리팩토링 - 9편: 닉네임 설정 & 중복 확인 API
·
프로젝트
📌 Django OAuth 리팩토링 - 9편: 닉네임 설정 & 중복 확인 API🔐 OAuth 이후 회원가입을 마무리하는 닉네임 등록 API와✨ Swagger에 잘 나타나도록 한 GET/POST 중복확인 API까지 정리🧭 1. 닉네임 설정 흐름소셜 로그인 완료 후 email만 저장된 CustomUser 생성사용자에게 닉네임 입력 화면 제공닉네임을 API로 전송 → 중복 확인 → 등록 완료🛠️ 2. 닉네임 설정 API@extend_schema(request=NicknameSetSerializer)@api_view(["POST"])@permission_classes([AllowAny])def set_nickname(request): serializer = NicknameSetSerializer(d..
📌 Django OAuth 리팩토링 - 8편: 닉네임 중복 확인 API 구축
·
프로젝트
OAuth 소셜 로그인 (Naver & GitHub)🔐 소셜 로그인을 통해 가입 장벽을 줄이고🎯 JWT 기반 토큰 + 닉네임 API까지 완전 연동🧭 1. 구조 개요/oauth/naver/login/, /oauth/github/login/ : 각 소셜 로그인 시작/oauth/naver/callback/, /oauth/github/callback/ : 로그인 후 콜백 처리/oauth/nickname/ : 신규 회원의 닉네임 등록 처리🏗️ 2. URL 구성# config/urls.pypath('oauth/', include('oauth.oauth_urls'))# oauth/oauth_urls.pyurlpatterns = [ path("naver/login/", naver_login), pat..
📌 Django OAuth 리팩토링 - 7편: 닉네임 중복 확인 API 구축
·
프로젝트
닉네임 중복 확인 API 구축🔹 실시간 중복 검사 대응🔹 GET / POST 방식 모두 구현🔹 Swagger 문서 커스터마이징으로 명확한 응답 예시 제공🚩 1. 목적닉네임이 이미 사용 중인지 프론트엔드에서 즉시 확인 가능하게 함기존 Form 로직 제거 후 API 전환GET / POST 방식 모두 지원 → 유연한 클라이언트 대응🔧 2. Serializer 정의class NicknameCheckSerializer(serializers.Serializer): nickname = serializers.CharField() def validate_nickname(self, value): if CustomUser.objects.filter(nickname=value).exists()..
📌 Django OAuth 리팩토링 - 6편: 닉네임 설정 API 리팩토링 (HTML Form → DRF API)
·
프로젝트
📌 Django OAuth 리팩토링 - 6편: 닉네임 설정 API 리팩토링 (HTML Form → DRF API)✅ 기존 HTML Form 처리 → DRF 기반 API로 전환✅ 프론트엔드 SPA 환경에 적합한 구조✅ 닉네임 설정 시 JWT 쿠키 자동 세팅까지!🔧 1. 기존 방식 문제RedirectView 기반 처리 → 비동기 환경에서는 불편CSRF Token 문제로 API 활용이 제한적별도 Form page를 통한 닉네임 입력 → SPA 구조와 어울리지 않음🛠️ 2. API 방식으로 전환🔹 Serializerclass NicknameSerializer(serializers.Serializer): nickname = serializers.CharField() def validate_nic..