All 142

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: ..

Cloud/Docker
Docker Hub와 이미지 버전 관리

Dockerhub도커 허브란, 도커 이미지를 관리하는 버전 관리 서비스를 말한다. 도커 허브를 통해 도커 이미지의 버전을 관리하거나, 이미지를 가져와 새로운 레이어를 덧붙여 자신만의 새로운 이미지를 만들어 낼수도 있다. 깃허브와 마찬가지로 도커 허브를 통해 도커 이미지를 이용하기 위해서는 로컬에 도커가 설치되어 있어야 하며, 도커 허브에 가입되어 있어야 한다.  Docker Hub Container Image Library | App ContainerizationDeliver your business through Docker Hub Package and publish apps and plugins as containers in Docker Hub for easy download and deploymen..

Cloud/Docker
Dockerfile 작성하는 방법과 Docker 명령어 사용하기

Dockerfile 작성법Dockerfile은 도커 이미지를 생성하기 위한 스크립트 파일을 의미한다. 해당 스크립트 파일을 빌드하면, 도커파일에 나열된 명령문을 차례대로 수행하며 도커 이미지를 만든다. 그리고 만들어진 이미지를 통해 컨테이너를 구축할 수 있다.  🐳 Dockerfile# python 3.12버전의 이미지를 가져온다. FROM python:3.12# 현재 내가 위치한 경로에 있는 모든 파일을 도커 컨테이너 안의 project 폴더 안으로 복사한다. COPY . project/# 해당 URL에서 파일을 다운받는다.ADD https://example.com/file.tar.gz project/# 도커 컨테이너 안의 project 폴더로 이동한다. WORKDIR project/# 환경 변수를 ..