전체 글 47

Django User (2)

User 관리(change, customizing)customizing 방법은 여러가지가 있지만, 앞서 사용했던 방법과 다르게 여기서는 AbstractUser를 상속 받아서 User를 customizing후 사용함UserChangeForm도 마찬가지로 ChangeForm을 상속받아 customizing 해서 사용함bootstrap을 사용하기 위해 widget에 attrs도 추가1. models.py에서 AbstractUser를 상속from django.db import modelsfrom django.contrib.auth.models import AbstractUser # AbstractUser를 가져옴# Create your models here.class User(AbstractUser): # Us..

Django User (1)

User 관리(sign in, out, up)로그인 기능을 넣는 방법model을 만들 필요 없이 django에서 제공하는 user 모델을 사용함bootstrap 사용을 기반으로 작성함1. accounts라는 새로운 app을 작성2. 기본 제공되는 User 모델을 사용하기 때문에 forms.py만 작성from django.forms import ModelFormfrom django.contrib.auth.models import User # django에서 기본 제공하는 model이 있음.from django import formsclass SignupForm(ModelForm): #회원가입을 제공하는 class이다. username = forms.CharField( max..

Django Paginator

Paginator 사용하기게시판 같은 곳에서 리스트의 양이 많아 질 경우 나누어 보여주기 위해서 사용여기 적힌 예에서 model은 Review 이고 forms는 ReviewForm이다.bootstrap을 사용했음.1. views.py에 내용 추가하기from django.core.paginator import Paginatordef review_list(request): reviews = Review.objects.order_by('-pk') paginator = Paginator(reviews, 5) #한 페이지 당 몇개 씩 보여줄 지 지정 page_number = request.GET.get('page') page_obj = paginator.get_page(page_number)..

Django CRUD

CRUD - Create, Read, Update, Delete1. Model 사용할 경우1. Model 만들기 (ex: Article이라는 모델을 만들경우)# 프로젝트 명/App이름/models.pyclass Article(models.Model): title = models.CharField(max_length=140) content = models.TextField() created_at = models.DateTimeField(auto_now_add=True) updated_at = models.DateTimeField(auto_now=True)models.Model 을 상속받은 클래스를 생성한다.속성은 내가 구성하고 싶은 테이블의 컬럼의 이름을 지정하고, 데이터 타입에 맞춰..

Django 시작하기

2020년 작성 -> 현재 django와 차이 있을 수 있음기초1. django 설치$ pip install django==2.1.15(2.1.15 기준으로 배웠기 때문에)2. 프로젝트 시작$ django-admin startproject {프로젝트 이름}그 후에 프로젝트 폴더의 settings.py에서 ALLOWED_HOST = ['*']로 수정3. App 만들기# manage.py 파일이 있는 폴더에서 터미널 진입 후 bash 에 $ python manage.py startapp {앱 이름}# 그 후에 settings.py에서 INSTALLED_APPS = [ '{앱 이름}' 추가]4. urls.py 작성# 프로젝트 이름/urls.py에서 예를 들어 index 페이지를 넣을 경우 from app..

docker - nginx - ssl

https 사용하기(docker, nginx 사용)처음에 openssl 로 .key 와 .cert를 만들어 사용했지만 인증되지 않았기 때문에 https가 나왔음. 그래서 certbot을 이용하여 다시 인증키를 발급받아 사용.1. certbot 이용하여 키 발급certbot certonly --standalone -d 도메인이름 으로 키 발급발급이 완료되면 /etc/letsencrypt/live/도메인이름 경로에 cert.pem chain.pem fullchain.pem privkey.pem 파일들이 생김2. Nginx 설정나는 default.conf에서 설정하여 실행시켰음생성된 파일을 다른 폴더에 넣어서 사용했음upstream client { server 도메인이름;}server { listen..

Docker 2025.03.02

처음 docker-compose 이용 경험

Docker-compose를 이용한 배포Docker compose를 이용하여 배포했던 것 정리.혼자 찾아보고 진행했던 내용.1. docker-compose.yml 파일 만들기docker 실행 옵션을 미리 작성하고 편하게 사용하기 위함frontend, backend, database, webserver를 각각 컨테이너로 사용했음frontend는 vue cli로 backend는 node.js, 웹서버는 nginx, db는 mysql 이용아래 docker-compose.yml파일은 내가 사용했던 것. 루트 폴더에 작성version: '3'services: frontend: build: context: ./frontend dockerfile: Dockerfile volumes: ..

Docker 2025.03.02

Docker 관련 명령어

실시간 로그 저장 (docker-compose) docker-compose logs -f {컨테이너 이름} | tee {저장할 파일 이름}실행중인 컨테이너 리스트 docker ps --format "table {{.ID}}\t{{.Names}}\t{{.Status}}"모든 컨테이너의 리스트 출력 docker ps -a --format "table {{.ID}}\t{{.Names}}\t{{.Status}}"컨테이너 삭제 docker rm -f {컨테이너 이름 or 컨테이너 ID} // 강제로 삭제 docker rmi -f {이미지 ID} // 강제로 이미지 삭제모든 컨테이너 삭제 docker rm -f $(docker ps -aq) // 모든 컨테이너 강제로 삭제모든 이미지 삭제 dock..

Docker 2025.03.02

Kafka partition consumer

Partition과 Consumer의 관계기본 규칙Partition은 하나의 Consumer만 접근 가능Consumer는 여러 개의 Partition 소비 가능설계 시 고려사항Partition의 개수 >= Consumer 인스턴스의 개수 유지Consumer 개수가 Partition 개수보다 많으면 일부 Consumer는 유휴 상태가 됨하나의 Partition에 하나의 Consumer가 담당하는 것이 이상적Consumer 수가 부족한 경우 하나의 Consumer가 여러 Partition 처리 가능주의사항Partition 확장 시 고려사항Partition은 한번 증가시키면 다시 줄일 수 없음처리량을 고려하여 신중하게 Partition과 Consumer 개수 설정 필요테스트를 통한 최적의 개수 파악 권장성능 ..

Kafka 2025.03.02