Django
-
Django ChannelDjango 2024. 10. 2. 21:01
Django Channel장고 채널(Channel)은 Django 프레임워크의 기능을 확장하여 웹 소켓 통신과 같은 실시간 기능을 제공하는 패키지다. Django의 기본 요소들과 유사한 구조를 가지며, Django 프레임워크와 함께 사용되어 Django 애플리케이션의 구성 요소로 작동한다. ASGI(Asynchronous Server Gateway Interface) 프로토콜을 사용하여 웹 소켓 및 HTTP 기반의 프로토콜을 처리할 수 있다. ASGI는 WSGI(Web Server Gateway Interface)와 유사한 역할을 하며, 비동기적인 웹 애플리케이션 개발을 위한 표준 인터페이스다. 채널은 크게 두 가지 요소로 구성된다. 1. 채널 라우터(Channel Router)라우터는 urls.py..
-
[Django] 뉴스 API 서버 구현 중, 트러블 슈팅Django 2024. 9. 14. 03:04
트러블 슈팅 01. 비밀번호 변경 기능 구현 후 Postman에서 테스트를 하는데 에러가 났다. 왜 안되지.. dict를 불러올 수 없다구??🤔 views.py 코드를 보면 뭐가 문제일까..old_password와 new_password를 튜플로 묶어줘서 그런건가.. 리스트로 묶어주면?해결된다! 근데.. 비밀번호를 1로 바꿔도 변경이 된다..🫠 구글에 파이썬 비밀번호 검증 정규표현식으로 검색했더니 여러가지가 정보가 쏟아졌다. 그 중 하나를 참고해 validators.py 에 로직을 추가해줬다. def changepasswordValidation(pwd): if len(pwd) /?]+', pwd) is None: # 비밀번호는 최소 1개 이상의 특수문자가 포함되어야 함 ..
-
Django DRF 개인과제 트러블 슈팅Django 2024. 9. 10. 17:21
Django DRF 트러블 슈팅 1.1 발단 및 전개 로그아웃 기능 코드를 구현하고 테스트를 하는 과정에서 에러가 발생했다. except InvalidToken 으로 예외처리를 해줬는데 왜그럴까? 🤔 or 로 발견된 예외코드를 추가해줬다. except InvalidToken or TokenError: 1. 2 위기 및 해결 수정 후 다시 테스트를 했는데 여전히 에러가 났다.할 수 없이 구글링 하다, gpt에 물어보니 이런 경우에는 튜플로 처리를 해줘야 한다고 한다. 다시 테스트 해본 결과 잘 해결되었다. 하지만 간결하게 코드를 작성하고 싶어서 또다시 구글링 하다보니 TokenError가 InvalidToken을 포함하는 범용적인 에러이기 때문에 TokenError만을 사용하여 예외를 ..
-
[Django] API 문서화Django 2024. 9. 10. 03:32
API 문서화 API 문서의 경우, 사실 회사마다 다르고 개발팀마다 사용하는 방법이 다르다. 각 회사마다 다르고 팀마다 다르고 사용하는 툴도. 형식도 다르다. 로마에 가면 로마의 법을 따르듯, 문서도 아마 조직에 맞는 형식을 따르게 될 거다. 대표적으로 가장 많이 쓰이는 문서 형식들을 살펴보자. 노션(Notion)IT 업계에서 소통을 위한 도구로 많이 사용하는 도구다.검색, 필터, 정렬등 데이터를 편하게 작성하고 볼 수 있는 기능을 제공한다.https://teamsparta.notion.site/659a433196e84d619cbdaa2121efacfe?v=fd64cd963d064df1913fef419a50cf7a&pvs=4 포스트맨(Postman)Postman과 함께 제공되는 경우가 일반적이므로 ..
-
[Django] AWS 배포 → Gunicorn, Nginx 설치 및 설정Django 2024. 9. 8. 21:03
Django, AWS 배포 (Deploy) 이어서... gunicorn 설치 및 설정하기 설치과정에서 나오는 설정들은 tab해서 모두 OK로 설치하면 된다.$ sudo apt-get update$ sudo apt-get install gunicorn Gunicorn 실행 manage.py가 있는 프로젝트 폴더에서 실행해준다.gunicorn --bind 0:8000 api_pjt.wsgi:application다시 웹브라우저로 들어가봐도 잘 동작하는 것을 볼 수 있다. 그런데 /admin/ 으로 들어가면?정적 파일이 제공되지 않고 있지 않기 때문이다 → Nginx에서 처리 예정 정적 파일 다루기 정적파일 설정 및 한 곳으로 모으기 settings.py에 static 파일들이 위치할 경로와 url을..
-
Django, AWS 배포 (Deploy)Django 2024. 9. 6. 04:41
Django, AWS 배포 (Deploy) 지금까지는 테스트서버에서만 확인해본거니까 이제 배포를 해보자👀 AWS 계정 생성 (https://aws.amazon.com/ko/) 기본적으로 여러 자원에 대해 프리티어를 제공하여 정해진 사용량까지 무료로 체험 가능하다. (가입부터 해야함)이후로는 자동으로 과금이 들어가기 때문에 사용하지 않을거라면 자원을 해지해야 한다. 가입시 해외 결제가 가능한 카드 필요하다.(체크 or 신용), 100원의 테스트 결제 후 바로 취소된다.어려운 건 1도 없는데 주소 입력하고 카드번호 입력하고... 너무 귀찮..드디어 성공😊 → AWS Management Console로 이동 AWS EC2 인스턴스 생성 국가 서을로 바꿔주기 검색에 ec2 적고 ★..
-
Django 외부 API 연동하기Django 2024. 9. 5. 07:49
외부 API 연동하기 (feat. ChatGPT) 외부 업체와 제휴를 하게되면 업체 개발팀으로 부터 개발 문서 하나가 도착한다. 그럼 우리는 그 문서를 보고 하나하나 해석해서 우리 로직에 넣고 연동해야 하고, 그 과정에서 많은 외부 서비스를 이용하게 된다🫠소셜 로그인결제(PG)외부 데이터 APIOpenAI… 그럼 OpenAI API 를 사용해서 AI 서비스를 제공해보자! 1. 로그인https://openai.com/ 2. 설치pip install openaipip freeze > requirements.txt 설치했으면 ↑얘는 이제 자동 3. API Key 발급 및 설정외부 서비스를 가져다가 사용하는 경우 대부분 API Key를 이용해서 서비스를 이용하게 된다.API Key는 유저의 고유 Key이며..
-
Token Auth with JWTDjango 2024. 9. 3. 11:00
🤔JWT가 뭘까? JWT를 말하기 이전에 먼저 Session & Cookie를 알아야 한다. 🍪 쿠키 (Cookie)웹 브라우저와 요청과 응답을 주고받을때 사용하는 데이터 조각쿠키는 도메인에 제한적이며 유효기간이 정해져있음Auth 외에도 다양한 방식으로 활용🍫 세션 (Session)stateless한 HTTP 특징을 보완하기 위한 방법세션 DB를 이용해서 유저의 정보를 기억하며 Session ID라고 하는 랜덤한 Key를 쿠키에 담아서 Auth에 활용쿠키를 사용해서 Session ID를 주고 받는 것JSON Web Token, JWT Cookie는 웹 브라우저에만 존재하는 것으로, 서버가 다양한 장치들과 공통적으로 사용할 수 있는 방식이 필요하다. 이때 널리 사용되는 방법중 하나가 바로 Token ..