All 144

Programing Language/Python
디스코드 훅을 이용하여 채널에 메세지 보내기

디스코드 웹훅디스코드에 내장되어 있는 웹훅 기능은 자동 메세지들과 데이터를 서버에 있는 텍스트 채널로 쉽게 보내주는 역활을 한다. 쉽게 말하면 해당 API을 이용하여 HTTP POST 요청을 보내면, 해당 내용을 디스코드 텍스트 채널에서 확인 할 수 있다.   웹훅 URL 만들기 해당 과정을 진행하면 해당 텍스트 채널에 대한 웹훅 URL을 얻을 수 있다.      요청 보내기 python으로 requests 패키지를 이용하면 쉽게 디스코드로 메세지를 보낼 수 있다. import requestsheaders = { "Content-Type": "application/json"}json_data = { "content": "안녕하세요?"}requests.post("웹후크 URL", headers=..

FrameWork/Django
장고 개발 환경에서 프로세스 2개가 실행되는 이유

django에서 프로세스 2개가 실행되는  이유최근에 django에서 스케쥴러를 공부하고 있었는데, 스케쥴러를 장고 앱에 등록하고, "python manage.py runserver"로 서버를 실행했는데 출력이 2번 일어나는 현상을 보게 되었다.  이는 프로세스가 2개가 돌아가고 있다는 것인데,  해당 이유를 찾기 위해서 구글을 통해 정보를 찾아보기 시작했고 스택오버플로우에 문제에 대한 대답을 들을 수 있었다.   Why django runserver command starts 2 processes? What are they for? And how to distinguish between each in the code?While building some standalone Django app, which..

Programing Language/Python
pipenv을 사용한 가상환경, 패키지 관리하기

Pipenvpipen는 파이썬에서 패키지를 프로젝트 단위로 관리할 수 있도록 하는 고급 패키지 관리 도구이다. pip 위에서 동작하지만, 프로젝트 별로 격리된 가상 환경을 제공한다.  🖥️ Terminalpip install pipenv   버전에 따른 가상 환경 구성 및 설치버전에 따른 가상 환경을 구성하기 위해서는 다음과 같은 옵션값과 함께 명령어를 실행한다. pipenv --python 3.11 # 버전에 따라 변경 가능 구성된 가상 환경을 활성화하기 위해서는 다음 명령어를 실행한다. pipenv shell 가상환경 내에 패키지를 설치하기 위해서는 다음 명령어를 실행한다. pipenv install django # 설치pipenv uninstall django # 삭제 pipfile, pipfil..

FrameWork/Django
유저 커스텀 모델 사용하기

유저 커스텀 모델 사용하기 Django에서는 유저 모델을 기본적으로 제공하고 있다.  django.contrib.auth.models.User에 보면 장고의 유저 모델은 다음과 같이 명시되어 있다.  📁 django.contrib.auth.models.Userclass User(AbstractUser): class Meta(AbstractUser.Meta): swappable = 'AUTH_USER_MODEL' 아래는 User 모델에서 사용하고 있는 속성들이다. username = models.CharField()first_name = models.CharField()last_name = models.CharField()email = models.EmailField()is_staff ..

FrameWork/Django
Django에서 static, media 관리하기

static, media 폴더 관리하기장고에서는 static, media와 같이 용도에 맞는 파일을 제공하기 위해서 settings.py에서 파일을 제공하는 경로를 비롯한 설정을 할 수 있다. 여기서 나오는 static, media의 폴더들은 다음과 같은 역할을 지닌다. static: 주로 장고에서 제공하는 정적 파일을 관리할 때 주로 사용한다. (html, css, javascript)media: 유저로부터 받은 파일을 저장하거나 제공할 때 주로 사용한다. 로컬 파일에서 static, media을 사용할 때는 프로젝트의 시작 urls.py에 static, media 경로를 입력해 사용한다.  🛣️ urls.pyfrom django.contrib.auth import settingsfrom django..

Cloud/Nginx
Nginx

Nginxnginx는 오픈 소스 웹 서버로 고성능 및 확장가능한 프로그램을 제공하기 위해 설계된 소프트웨어이다. 주로 아래와 같은 용도로 사용한다. 웹 서버: 정적 및 동적 웹 콘텐츠를 서빙하는데 사용한다. 정적 콘텐츠를 빠르게 처리할 수 있고, 요청에 따라 동적 웹 응용 프로그램 (WAS)로 연결하여 처리 할 수도 있다. WAS에서 처리하는 정적 콘텐츠를 웹 서버가 제공 함으로써 WAS에 일어나는 작업량을 낮춰 부담을 줄여주는 용도로 사용한다. 리버스 프록시 : 백엔드 서버 앞단에서 클라이언트 요청을 전달하는 역활을 수행하며, 부하 분산 및 고가용성을 실현하는데 사용된다. SSL/TLS 지원 : HTTPS을 지원하여 웹 서버 보안을 강화하는데 역활을 한다. 높은 성능, 커뮤니티 지원이 높다.     N..

Cloud/Docker
docker compose을 이용하여 django, postgres 연결하기

일단 해당 작업을 하기 전에 현재 나의 폴더 구성을 보여주자면 아래와 같이 되어 있다.  backend 폴더는 django 프로젝트로 되어 있고 이를 이미지로 빌드하기 위해서 backend안에 Dockerfile 생성하여 만들었다.   🐳 DockerfileFROM python:3.9WORKDIR /appCOPY requirements.txt ./RUN pip install --no-cache-dir -r requirements.txtCOPY . .CMD [ "python", "manage.py", "runserver", "0.0.0.0:8000" ] 📄 requirements.txt   .........psycopg2 여기서 psycopg2 라이브러리는 python에서 postgreSQL을 사용하기..

Cloud/Docker
Docker compose 작성하는 방법과 명령어

Docker compose도커 컴포즈는 단일 서버에서 여러개의 컨테이너를 하나의 서비스로 정의하여 컨테이너의 묶음으로 관리할 수 있는 작업환경을 제공하는 관리도구를 의미한다. 여러 개의 컨테이너가 하나의 어플리케이션으로 동작할 때 도커 컴포즈를 사용하지 않는다면 일일이 하나씩 컨테이너를 만들어야하는데 해당 방법으로 한다면 관리가 쉽지 않다.  이런 단점을 보완하기 위해서 나온 것이 도커 컴포즈이며 이를 통해 여러개의 컨테이너의 옵션과 환경을 정의하는 파일을 읽어 컨테이너를 순차적으로 생성하는 형식으로 간편하게 여러개의 컨테이너를 관리 할 수 있다. 아래는 도커 컴포즈 파일의 예시이다.참고로 yaml 파일은 뛰어쓰기 2칸을 기준으로 영역을 구분한다.  🐋 docker-compose.ymlversion: ..