PYTHON 56

TIL_WSGI(Web Server Gateway Interface)란?

Django project를 시작할 때, 'startproject'를 사용하여 프로젝트를 생성하고 나면 아래 그림처럼 'wsgi.py' 파일이 생성된 것을 볼 수 있다. 'wsgi.py'파일이 하는 역할은 무엇일까? WSGI(Web Server Gateway Interface)는 web application server이 web server(WS)와 통신하기 위한 interface이다. API와 비슷하게 web server와 web application server 사이에서 data를 주고 받기 위한 규약이다. client - Web Server(WS) - WSGI - Web Application Server(WAS)의 관계와 역할 client가 web browser을 통해 HTTP 방식으로 WS에 re..

TIL_Django, F expressions

팀 프로젝트 안에서, 게임의 힌트 버튼을 누르게 되면 누른 사람의 포인트가 약간 차감이 된다. 이 부분을 views.py에서 구현해 보았다. from django.db.models import F ... class HintView(APIView): permission_classes = [permissions.IsAuthenticated] def post(self,request,quiz_id): quiz = get_object_or_404(Quiz, pk=quiz_id) hint = quiz.hint user = request.user user.update(point=F("point")-constant.HINT_DEDUCTED_POINT) History.objects.create(user=user, act..

TIL_CNN, RNN, LSTM

CNN, RNN, LSTM은 모두 deep learning에서 널리 사용되는 인공 신경만 구조이다. 각각의 구조는 특정한 유형의 데이터 처리에 특화되어 있는데, 이들에 대해 정리를 해 보았다. CNN(Convolutional Neural Network) 이미지 처리에 주로 사용되는 구조. 합성곱층과 풀링 층을 포함하여 이미지에서 특징을 추출 합성곱 층이 이미지의 특징을 감지 풀링 층은 이미지의 크기를 줄이는 등의 작업 이미지 인식, 객체 감지, 이미지 분할 등 다양한 컴퓨터 비전 작업에 효과적임 RNN(Recurrent Neural Network) 순차적인 데이터나 시계열 데이터를 처리하는 데 사용 이전 단계의 출력이 다음 단계의 입력으로 사용되는 순환 구조를 가짐 순차적인 패턴을 파악하고 처리 가능 긴..

TIL_Machine Learning(3)

Machine Learning에서 사용되는 주요 library 정리 NumPy Python에서 수학적인 작업을 수행할 수 있도록 만들어진 library. 배열이나 행렬과 같은 다차원 데이터를 쉽게 다룰 수 있다. 리스트보다 빠르고 강력하며, 다양한 수학적 연산을 지원한다. 데이터 과학, machine learning, 과학 연구, 공학 등 다양한 분야에서 매우 유용하게 사용된다. 복잡한 수학적 연산을 효율적으로 수행할 수 있다. Pandas 데이터 조작과 분석을 위한 python library이다. 데이터를 구조화하고 조작할 수 있으며, 데이터를 빠르게 분석하고 처리할 수 있다. 엑셀 시트처럼 데이터를 테이블 형태로 다룰 수 있게 해 주는 도구이다. 데이터를 필터링하고 정렬하며, 누락된 데이터를 처리하고..

TIL_Machine Learning(2)

Linear Regression 두 변수 사이의 관계를 알아보는 방법. 예를 들어, 하루에 먹는 초콜릿의 양과 나의 행복 감정 사이의 관계를 알아볼 때, 만약 먹는 초콜릿의 양이 많을수록 더 행복해진다면, 이 둘 사이에는 양의 선형 관계가 있을 것이다. 이렇게, 데이터에서 두 변수 사이의 '직선적인' 관계를 찾는 것이 선형회귀이다. 하나의 변수를 알면 다른 변수를 예측할 수 있다. Multi-variable linear regression Linear regression과 똑같지만 입력 변수가 여러 개인 경우를 말한다. Gradient descent method 함수의 기울기를 이용하여 함수의 최솟값을 찾는 알고리즘 중 하나. 시작점을 잡고, 그 위치에서 함수의 기울기를 계산. 그리고 기울기가 가리키는 ..

TIL_Machine Learning

Algorithm(알고리즘) 수학과 컴퓨터 과학, 언어학 또는 관련 분야에서 어떠한 문제를 해결하기 위해 정해진 일련의 절차나 방법을 공식화한 형태로 표현한 것. 즉, 어떤 문제를 풀기 위해 공식을 만든 것이라고 보면 됨. Machine Learning > Deep Learning Machine Learning의 범위 안에 Deep Learning이 포함되어 있다. Machine Learning Regression(회귀) 나이의 값처럼 출력값이 연속적인 소수점으로 예측하게 하도록 푸는 방법 Classification(분류) 출력값이 딱 떨어짐. Binary class(0과 1로 나뉨)처럼 0 또는 1로만 출력값이 나옴. 여기서 class는 Bionary Classification 뿐만 아니라 여러 개의 ..

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_Cookie/Session 방식과 Token 방식의 차이점

Django에서 Cookie와 Session 방식과, Token 방식의 차이점을 정리해 보았다.. Cookie Session Token 저장 위치 client 측에 저장, 사용자의 브라우저에 정보 저장 서버 측에 저장, 서버에 저장된 데이터는 일반적으로 메모리나 데이터베이스에 보관 client 측에 저장, 주로 웹 클라이언트의 로컬 스토리지나 쿠키, 모바일 앱의 메모리에 저장 데이터 유지 기간 만료 날짜/시간을 설정할 수 있고, 만료 기간이 지나면 삭제 세션 데이터는 일반적으로 사용자가 브라우저를 닫을 때까지 유지 보통 설정된 만료 시간까지 유효, 만료 시간이 지나면 더 이상 사용할 수 없음 보안 브라우저에 저장되어 보안에 취약할 수 있음, 민감한 정보를 저장하기에는 적합하지 않을 수 있음 서버에 저장되..

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 알고리즘을 사용해 시그니처를 생..

LIST