본문 바로가기

전체 글101

[TIL]내일배움캠프 - Django, Redis 한 명의 clients가 데이터를 요청하면 server에 다시 응답해 주는 구조인데 만약에 한 명이 아닌 수백 명 많게는 몇만 명이 server에 요청을 보낸다면 우리의 server는 시간도 많이 걸리고 다운될 가능성이 높다.  우리는 이것을 방지하기 위해 Redis를 사용하면 된다.  Redis  빈번하게 발생하는 데이터 기능을 미리 메모리 데이터를 사용해 담아 주는 방식이다.빠른 조회가 가능하지만 단점으로는 용량이 적어 곡 필요한 데이터 반족적으로 발생하는 데이터만 캐싱하여 사용한다. key : value로 이루어져서 보낸다.  Redis 설치  brew --versionbrew install redisredis-server --versionredis-server #mec은 자동 실행redis-cli.. 2024. 4. 27.
[TIL]내일배움캠프 - Django JWT, ORM JWT Json Web Token으로 Cookie와 Session을 대신하여 사용이 가능하다.  Sesstion은 Cookie를 통해 데이터베이스에 저장하고 기억하는 방법이지만 JWT는 데이터베이스가 따로 필요가 없이 인증이 가능하다.하지만 단점으는 Token 자체에 데이터를 담고 있기 때문에 탈취당하면 보안이 취약한다.  보안에 취약한 부분을 보안하기 위해 Access Token, Refresh Token을 사용하여 보안한다. JWT 구조   Header, Payload, Signature 구조로 나누어져 있는데Header은 타입과 서명에 어떤 알고리즘을 사용하는지 나타나 있고 Payload는 토큰의 발급일자, 토근의 대상자, 만료 시간 등 여러 데이터가 담겨있다.Sifnature은 Header + P.. 2024. 4. 26.
[TIL]내일배움캠프 - Django DRF, FBV, CBV 어떤 형태로든 view를 작성해도 된다. 코드 재사용이 높거나 유지보수성을 높이기 위해서는 CBV를 사용하고간단한 로직이라면 FBV로도 충분하다.FBVfunction Based View 함수형 뷰로 function으로 정의된 형태이이다.from rest_framework.decorators import api_view@api_view(['method'])꼭 위의 데코레이더 ap_view()와 같이 사용해 줘야 한다.  CBV Class Based View 클래스형 뷰로 Class로 정의된 형태이다.from rest_framework.views import APIViewclass CBV naem(APIView):이런 식으로 기본으로 APIView를 상속받아 사용해야 하며 APIView 이외에도 몇 가지가 .. 2024. 4. 25.
[TIL]내일배움캠프 -Django DRF, Serializers DRF를 공부하기 전 API에 공부할 필요가 있다. DRF는 Django REST Framework는 Django를 이용해서 API를 구축하는 기능을 제공하는 라이브러리이다. 그러면 API는 무엇일까?? API API는 Application Progrmming Interface이다. 즉 소프트웨어끼리 프로그래밍 언어를 통해 통신하는 방법이다. 우리는 이제 RESTful API를 통해 Json형식으로 서버와 클라이언트와 소통할 것이다. REST는 사람들 마다 정의가 다 다른데 나는 유저가 보낸 보청에 따라 보여주는 방식?? 이 부분은 따로 더 공부를 해보고 찾아봐야겠다. https://ics.uci.edu/~fielding/pubs/dissertation/top.htm RESR논문 규칙도 존제하는데 RES.. 2024. 4. 24.
Django 기본 setting Django를 이용해어 기본적인 setting을 반복적으로 학습하여 손에 익히려 한다. 완전하게 내 걸로 만들기 전까지 내용을 정리하려고 한다. 1. 가상환경 설정 가상환경 파일을 terminer에서 만들어준다. python -m venv venv 가상환경 활성화 source venv/bin/activate 2. django 설치 pip install django=='version' #협업을 위해 파일 공유 pip freeze > requirements.txt 설치시에는 pip install -r requirements.txt 3. Django Project django-admin startproject . 현제 파일에 프로젝트 생성 4. App python manage.py startapp app을 생.. 2024. 4. 23.
[TIL]내일배움캠프- Django DRF 지금 까지는 Django를 사용하여 web application을 제작하고 MTV를 제작했다. 이번 주부터는 요청에 대해 처리한 결과 데이터를 응답하는 형태의 DRF( Django REST Framwork)를 공부하려고 한다. 주로 백앤드 부분을 공부하기 위한 방법이다. 그러기 위해서는 다시 한번 HTTP와 URI에 관해 공부해야 한다. 어떻게 데이터를 보내고 받는지를 알아야 우리가 데이터를 어떻게 처리행 할지 알아야 하기 때문이다. HTTP HTTP는 Hyper Text Trnasfer Protocol로 web에서 이루어지는 데이터 교환의 기초이다. request 요청과 response응답이 존재하며 특성으로는 Stateless무상태 서버가 클라이언트의 상태를 보존하지 않으며 모든 요청과 응답에 독립적.. 2024. 4. 22.
[TIL]내일배움캠프- Django 개인과제(SpartaMraket) Django를 사용하여 처음으로 하는 프로젝트 SpartaMraket 구현하기였다. 기본 적인 user의 로그인, 로그아웃, 회원가입 기능과 Mraket이라는 주제에 맞게 나의 제품을 올리는 게시물의 CRUD 기능을 제작했다. 그리고 내가 마음에 드는 제품을 찜하는 기능과 다른 유저의 팔로우 기능을 구현하고 마지막으로 유저 프로필에서 찜한 것과 내가 올린 제품을 한 눈에 볼 수 있게 구성했다. 이번 과제를 통해 아직 기능 구현과 로직의 이해도가 많이 부족함을 느꼈다. 어딜 가서 기본적으로 있어야 하는 기능들인데 이기본적인 기능들을 몇 번을 다시 제작하고 만들어 봐야겠다. https://github.com/Doton2/spartamarket.git 내가 만든 SpartaMarket github링크이다. 많.. 2024. 4. 16.
[TIL]내일배움캠프- Django admin page Django admin page django는 관리자 페이지도 지원을 해준다. 우리의 project의 urls.py에 보면 가장 위에 ''admin'이라는 pattern이 있다. from django.contrib import admin urlpatterns = [ path('admin/', admin.site.urls), ] 우리의 서버를 열고 주소창에 amin/ 를 입력해보자 그러면 그러면 위와 같이 로그인 창이 뜨는데 terminer에서 우리의 super계정을 생성해 줘야 한다. python manage.py createsuperuser 일단 username 과 passwoerd , email를 설정해 주고 등록해 주면된다 (y 입력!!) 그러면 db에서 anth_user에서도 확인이 가능하고 로그.. 2024. 4. 13.
[TIL]내일배움캠프 - Django(model.py) Django의 패턴은 MTV 중에서 지금 까지 Templates와 Views를 했다. 그래서 오늘은 Models에 관리하려고 한다. Models는 주로 데이터 베이스를 담당하는 부분입니다. 데이터 베이스는 데이터가 잘 정리된 곳으로 스키마로 정리되어 있으며 쿼리 Query로 소통을 합니다. 데이터가 담겨 있는 것을 Table이라고 하며 속성값을 column이라고 하며 행 row는 데이터 레코드라고 한다. Django의 model은 class로 상속받아서 사용하며 하나하나의 필드로 정의합니다. Mifration 적용하기 하지만 이렇게 생성된 것은 python으로 정의된 것이기 때문에 데이터 베이스에 적용하기 위한 Migrations을 적용해 줘야 합니다. python manage.py makemigrati.. 2024. 4. 11.