DRF 7

TIL_PortOne을 이용한 결제 시스템

결제 시스템 구현 목적 웹 사이트 기능 중, AI 채팅을 요청하거나 AI Reading 부분에서 문제 생성을 할 때마다 chatGPT 토큰을 사용하게 된다. 일정량의 토큰 이상을 사용했을 경우 요금이 부과가 되는 점을 고려하여 웹사이트의 자체적인 코인을 만들어 chatGPT 토큰을 남용할 수 없도록 기획하였다. 기본으로 제공되는 코인이 부족해진다면 상품 페이지에서 원하는 만큼 코인을 구매할 수 있다. 결제 시스템 관련 페이지 상품 선택 페이지 장바구니 페이지 결제 창 PortOne 온라인에서 상품을 판매하기 위해서는 결제 서비스가 필요하다. 수많은 은행, 신용카드 회사와 직접 문의하여 결제 수단을 연동하고 발생하는 모든 거래 내역에 대한 승인을 요청할 수도 있지만 매우 복잡한 과정이 될 것이다. 그래서 ..

TIL_DRF(Django REST Framework) project, Frontend에서 게시글 내용 받아서 DB에 저장하기

어느 정도 backend part가 만들어져서 이제는 frontend 쪽을 손 보았다. login이 된 user가 게시글(post)를 작성하고, '게시글 저장' 버튼을 누르면 database로 입력 내용이 저장되는 것을 구현해 보려 한다. url 주소 http://127.0.0.1:5500/frontend/postdetail.html Frontend 화면 로그인이 된 사용자가 게시글을 작성하고 '게시글 저장' 버튼을 클릭하면, 입력한 세 가지 정보(이미지(image), 제목(title), 내용(content))가 DB에 저장된다. 코드를 보면 다음과 같다. frontend/postdetail.html 게시글 작성 이미지 업로드 제목 내용 게시글 저장 button의 onclick='handlePostSub..

TIL_Django REST Framework(DRF)의 serializers 사용 방법

DRF(Django REST Framework)에서 serializers를 사용하여 article을 불러오고 생성하는 방법에 대해 알아보자. 우선 urls.py에서 url을 지정해 준다. #urls.py from django.urls import path from articles import views urlpatterns = [ path('articles/', views.ArticleView.as_view(), name='article_view'), ] 그리고 views.py에서 ArticleView를 작성해 준다. #views.py from rest_framework.views import APIView from rest_framework import status from rest_framework...

TIL_JWT(JSON Web Token)

로그인 인증 방식 중 하나인 JWT가 무엇인지 알아보자. JWT란? JSON Web Token 웹 어플리케이션 간에 정보를 안전하게 전달하기 위한 간단한 토큰 기반의 인증 방식 사용자가 로그인한 후에 발급 토큰은 사용자의 신원을 확인 토큰은 JSON 형식으로 인코딩되어 있고, 사용자의 정보와 함께 서명되어 있어 데이터의 무결성을 보장 사용자의 인증 및 권한 부여를 처리하는 데 매우 유용 웹 서비스와 모바일 앱 등에서 널리 사용 JWT의 구조 JWT는 Header, Payload, Signature 이렇게 세 부분으로 구성 1. Header(헤더) JWT의 header는 두 가지 정보를 가지고 있음 1) 이 토큰이 JWT임을 나타내는 "typ" 필드 2) 어떤 hashing 알고리즘을 사용해 시그니처를 생..

TIL_DRF에서 Meta class란?

Django project를 배우던 중, serializers.py에서 'Meta class'라는 것이 등장했다. 모양은 아래와 같이 class 안에 Meta class가 들어가 있다. 왜 class 안에 또 다른 class를 정의했을까? Meta class를 쓰는 이유에 대해 알아보았다. class ArticleSerializer(serializers.ModelSerializer): class Meta: model = Article fields = '__all__' Meta Class in Django Meta class는 django에서 model class (또는 serializer class) 안에서 정의되고, 해당 model (또는 serializer)에 대한 추가적인 data와 설정을 제어하는..

TIL_Django REST Framework, Cookie&Session와 Token의 차이점

로그인 인증 기능을 구현할 때 cookie, session, token에 대한 용어들이 등장한다. 전에 cookie와 session에 대한 내용을 정리한 적이 있는데, 이번에 token이 새로 등장하면서 개념들이 다시 헷갈리기 시작했다. 그래서 이들의 개념을 확실히 하기 위해 cookie, session, token에 대한 내용을 정리해 보았다. 웹사이트를 이용할 때 사용되는 HTTP(Hypertext Transfer Protocol)은 'stateless'라는 특징을 갖는다. stateless라는 것은 client에서 server로 요청이 갈 때마다 모두 독립적인 요청으로 다루어진다는 것이다. 따라서, server로 요청을 할 때마다 내가 누구인지를 매번 알려주어야 한다. server에게 내가 누구인지..

TIL_Django REST Framework(DRF)

오늘부터 Django 심화과정 공부를 시작했다. 지금가지는 Django에서 MVT(Model-View-Template) model로 웹페이지를 만들었다면, 이제부터는 Django REST Framework라는 library를 이용해서 웹페이지를 제작할 예정이다. Django Rest Framework(DRF)이란? Django 안에서 RESTful API server를 쉽게 구축할 수 있도록 도와주는 open source library이다. RESTful API가 무엇일까? RESTful 하다는 것을 회사 채용 공고에서 자주 보았던 것 같은데, 이게 무슨 뜻인지 확실히 알기 위해서 우선 REST가 무엇인지 알아보았다. REST(Representational State Transfer)이란? Softwar..

LIST