전체 글 315

[Django] 채팅 시스템 (3) UUID가 포함된 URL을 Channels Websocket이 수신하는 법

관련 글 Django Channel 라이브러리와 적용 전/후의 구조 비교 (링크) Django Channel을 이용한 채팅 시스템 구현 (링크) Trouble Shooting Django Channels을 이용하여 채팅 시스템을 구현 하던 중 웹 소켓 API에 UUID를 넣어서 전송하게 되면 아래와 같은 오류가 나오게 된다. 문제점 : "WebSocket connection to 'ws://127.0.0.1:8000/ws/chat/6647dbe4-2e61-4e78-8b8c-8ebc6676626b/ ' failed" 해결 방법 : Django의 routings.py (or urls.py) 에서 uuid를 받을 수 있는 정규식으로 변환 (두번째줄) 해 주면 된다. from django.urls import ..

Python/Django 2022.07.22

[Javascript] destructuring assignment - Uncaught (in promise) TypeError: Cannot set properties of undefined 에러

자바스크립트에서 destructuring assignment 문법을 쓰다 보면 제대로 작동이 안되는 경우가 있다. var a = '하이' var b = '바이' // Destructuring assignment [a, b] = [b, a] console.log(a, b) // 하이, 바이 출력 => 바뀌지 않음 Error 매우 허무하게도 바로 윗줄에 세미콜론 ( ; ) 을 붙여주면 해결 된다. var a = '하이'; var b = '바이'; // Destructuring assignment [a, b] = [b, a] console.log(a, b) // 하이, 바이 출력 => 바뀌지 않음 Error

HTML, CSS, JS 2022.07.20

[Week I Learned] 22년 7월 3주차

금주 진행 사항 기간 : 22.07.11 (월) ~ 22.07.15 (금) 학습 내용 Django 지식 정리 Django-AWS, Django DB 연동 정리 AWS, WebServer, Javascript, Gitaction 지식 정리 Django 지식 정리 프로젝트 진행 간 Django 지식 알게 된 내용 정리 https://yubi5050.tistory.com/115 // Channels 이란? (with. 적용 전/후 구조 비교) https://yubi5050.tistory.com/116 // Channels 채팅 시스템 구현 (with. WebSocket) https://yubi5050.tistory.com/117 // Timezone 한국 시간으로 설정하기 Django - AWS / Djang..

WIL (~22.09) 2022.07.18

[Django] Timezone 한국 시간으로 설정하기

Django나 왠만한 서버(인프라)는 다 시간대가 기본적으로 UTC로 되어있다. 이를 한국 시간대로 바꾸고 싶으면 아래와 같이 수정하면 된다. Django settings.py📌 Timezone 한국 시간대로 설정# settings.pyTIME_ZONE = 'Asia/Seoul'USE_I18N = TrueUSE_L10N = TrueUSE_TZ = False # 원래 True, 현재 DB값들 KOREA Time으로 바꾸기 위해 False로 설정 DockerfileDockerfile에 시간대 설정을 포함하는 방법. 혹은 도커 실행 명령어에도 포함 가능하다.# dockerfileENV TZ=Asia/SeoulRUN sudo ln -snf /usr/share/zoneinfo/Asia/Seoul /etc/lo..

Python/Django 2022.07.17

[Django] 채팅 시스템 (2) 코드 구현하기 (with. FE, BE)

이전 글에서는 Django Channel 라이브러리와 적용 전/후의 구조 비교에 대해 알아보았었다. 이번 글에서는 Django Channel을 이용한 채팅 시스템 구현을 해보려고 한다. (+추가 트러블슈팅) Channels Websocket UUID가 포함된 URL 수신하는 법 (링크) 📌 Django Channel 동작 Flow 📌 Channel layer란? channel layer는 쉽게 말해 의사소통 시스테므로, 많은 소비자들(client)들이 다른 client와 의사소통을 할 수 있게 해줌 개념 1. channel - 각 메시지가 전달될 수 있는 우체통 - 각 channel은 이름을 가지며, 다른 channel에게 메시지 전송 가능 개념 2. group - 연관된 channel들의 group -..

Python/Django 2022.07.15

[Django] 채팅 시스템 (1) Channels 적용 전/후 구조 비교

이번 글에서는 Django Channel 라이브러리와 적용 전/후의 구조에 대해 알아보았었다. 다음 글에서는 Django Channel을 이용한 채팅 시스템 구현을 해보려고 한다. (+추가 트러블슈팅) Channels Websocket UUID가 포함된 URL 수신하는 법 (링크) Django Channels 이란? ASGI를 기반으로 만들어진 프로젝트로 Django 3.0 이상에서 Channels 기능을 제공 HTTP 프로토콜 외에 WebSocket(채팅), IoT 프로토콜 등 긴 연결 시간/많은 연결을 갖는 프로토콜 처리 가능 Django의 동기적으로 작동하는 Core 하위에 비동기 코드 작성 https://github.com/django/channels GitHub - django/channels:..

Python/Django 2022.07.15

[배포] CGI vs ASGI vs WSGI 비교

Python Web Framework들은 Web Server와 효율적으로 통신하기 위해 잘 정의된 인터페이스가 필수적이다. 해당 Interface는 CGI => WSGI => ASGI 순으로 발전 해 왔으며 최근 파이썬 프레임워크 들은 ASGI를 지원한다. Web Server란? Webserver는 하드웨어 적인 의미와 소프트웨어 적인 의미를 함께 가지고 있으며 Client의 요청을 최초 수신하여 Web Applicaton 과 상호 소통 하고, Response를 전달해주는 역할을 한다. 대표적으로는 Apache HTTP Server와 Nginx가 있다. CGI (Common Gateway Interface ~2003) 서버와 웹 애플리케이션 간에 데이터 교환에 대한 표준 컨벤션 CGI 동작 순서 1) W..

Python/Deployment 2022.07.15

[AWS] AWS Service 종류 정리

📁 Compute EC2 : 컴퓨팅 환경 ElasticBeanStorks : EC2 배포 및 통합 관리용 Lambda : 마이너한 기능 처리해주는 서비스 (ex. 유저에게 가입 email 자동 전송) Stepfunctions : Lambda 연속으로 묶어서 쓰는 용 (ex. email 전송 + 핸드폰 문자 전송 + .. 등) EKS : Kubernetes 서비스 (Docker 보다 진보된 컨테이너 시스템) 📁 DB S3 : 스토리지 (정적 데이터 저장소) DynamoDB, RDS : 데이터베이스 (SQL, NOSQL) ElasticCache : 데이터베이스 인메모리용 서비스 (ex. Redis = DB랑 같은데 인메모리라 Read/Write 더 가볍고 빠름) 📁 Network VPC : 가상 네트워크 E..

AWS/AWS 일반 2022.07.14

[PostgreSQL, Django] PostgreSQL 셋팅 (Local, Docker)

1-1. PostgreSQL 로컬 설치 설치 간 유의할 점 : root의 password 입력하는 란 나오는데 유의할 것. https://www.enterprisedb.com/downloads/postgres-postgresql-downloads Download PostgreSQL PostgreSQL Database Download www.enterprisedb.com 1-2. PostgreSQL Docker 설치 PostgreSQL을 Docker 환경에서 설치하고 싶다면 docker를 설치하고 아래 명령어를 실행 하면 된다. --name : container 이름 -e : 환경변수로 postgresql의 password 넘겨줌 -v : docker container 종료시에도 db 데이터 유지되도록 v..

DB/기본 실습 2022.07.14