전체 글 153

Django - PostgreSQL 연동하기, VScode에서 Psql 사용하기

자!! 이번에 Django에 postgreSQL을 연동하기 위하여 여기까지 달려왔다!! 지난시간에 PostgreSQL에 유저와 DB까지 생성해 놓았다는 가정하에 적도록 하겠다. DATABASES = { 'default': { 'ENGINE': 'django.db.backends.postgresql', 'NAME': 'test_db', 'USER': 'test_user', 'PASSWORD': 'test_user', 'HOST': localhost, 'PORT': '', } } Name에는 내가 생성해둔 Database의 이름을, User에는 내가 사용할 User의 이름을, Password에는 내가 사용할 User의 비밀번호를 입력하여준다. 여기서는 직접 값을 입력해주었지만!!! 꼭 .env에 관리하도록 ..

카테고리 없음 2022.10.22

PostgreSQL 유저생성 및 권한 설정해주기

저번시간에 PostgreSQL을 이용하여서 DataBase를 만드는 방법을 알아보았다. 이번에는 PostgreSQL에서 유저의 권한 설정을 하여 알아보겠다!!! Psql 새로운 유저 만들기 create user ${username} with password '${password}'; # 데이터베이스에 새로운 유저를 만들어주는데, passwrod는 ''로 감싸준다. alter role ${username} set client_encoding to 'utf-8'; alter role ${username} set timezone to 'Asia/Seoul'; grant all privileges on database ${데이터베이스 이름} to ${username}; 저번시간에 이어서 DB에 접속한 후부터 이..

카테고리 없음 2022.10.22

PostgreSQL DB 생성, 접속하기

PostgreSQL을 사용하기 위해서는 처음에 PSQL(shell)을 요구로한다. 우선 PSQL에서 우리가 사용할 DataBase를 만들어 주기로 하자!! 우선 PSQL에 접속을 해주길 바란다. 성공적으로 접속이 되었다면!! 이렇게 기본 상태가 될 것이다. 1. DataBase 생성하기 CREATE DATABASE ${데이터베이스 이름} ; 성공적으로 실행이 되었다면, CREATE DATABASE라는 문구가 뜬다. (PSQL은 소문자로 입력을 해도 먹어요 ^^) 2. 생성한 DataBase의 목록을 보고 접속하기 \l # 데이터베이스 목록을 보기 \c ${데이터베이스 이름} # 데이터베이스에 접속하기 기본적으로 PSQL문은 '\'로 시작한다고 익혀두면 좋다고 생각한다. \l 명령어를 통해 현재 내가 가지..

카테고리 없음 2022.10.22

Django - seed를 이용한 더미데이터 생성하기

많은 양의 데이터를 다루기 위해서는 많은 유저들이 있으면 좋다! 오늘은 Django에서 사용이 가능한, 더미데이터 생성을 알아보도록 하자! from faker import Faker from django.core.management.base import BaseCommand from django_seed import Seed from user.models import User class Command(BaseCommand): def add_arguments(self, parser) -> None: parser.add_argument( "--total", default=1000, type=int, ) def handle(self, *args, **options) -> None: total = options..

카테고리 없음 2022.10.22

Django FK로 되어있는 테이블의 개수로 order_by 사용하기!(annotate)

order_by는 어떠한 기준을 토대로 정렬을 할 때 사용한다! class Post(models.Model): user = models.ForeignKey(User, on_delete=models.CASCADE) title = models.CharField("제목", max_length=50) content = models.CharField("내용", max_length=500) hashtags = models.ManyToManyField(HashTags, blank=True) is_active = models.BooleanField("활성화", default=True) views = models.PositiveSmallIntegerField("조회수", default=0) create_date = mo..

카테고리 없음 2022.10.03

Docker run과 start의 차이점, attached 모드와 detached모드

Docker run, start 차이점 Docker run docker run -p 3000:80 image_id 이 명령어는 이미지를 기반으로하여 완전 새로운 컨테이너를 생성하는 명령어이다. 이 명령어는 터미널을 차단한다.(defualt = attached 모드) docker run -p 3000:80 -d image_id 기본이 attached 모드인 run 명령어를 detached모드로 사용 Docker start docker ps -a docker start container_id or name 으로 컨테이너를 다시 사용이 가능하다. 또한 이 명렁어는 터미널을 차단하지 않고, 컨테이너만 실행하는 상태로 사용이 가능하다. (default = detached모드, 백그라운드 실행) docker sta..

카테고리 없음 2022.10.03

Docker 이미지 빌드 및 컨테이너 실행

Dokerfile == 이미지를 만들기 위한 설정 파일! Docker File 이미지를 생성하기 위한 파일 이미지는 모든 설정명령과 모든 코드가 포함된 공유가 가능한 패키지이다. FROM node WORKDIR /app COPY . /app RUN npm install EXPOSE 80 CMD ["node", "server.js"] FROM node 베이스가 되는 이미지를 고른다. node라는 이미지에서 실행을 할 것이다. WORKDIR /app Docker에게 모든 뒤에 일어날 명령들이, /app 이라는 디렉토리 위치에서 실행을 한다고 미리 명시. COPY . /app COPY는 2개의 경로를 지정을 해주어야 한다. 앞에 첫 번째 경로는, 이미지로 복사되어야 할 파일들의 위치이다. .을 놓게되면 현재 ..

카테고리 없음 2022.10.01

Django, DRF Query_Set합치는 방법

오늘은 Query_set을 합치는 방법이다. Django에서 ORM을 사용하다보면, Query_set은 정말 많이 마주하게된다. 결론부터 말하면!! " | " 요 백슬래쉬로 합치기가 가능하다. posts_query_set = ( PostModel.objects.filter(title__icontains = search) | PostModel.objects.filter(content__icontains = search)) 이렇게 사용하여서 합치기가 가능하다!! 이 코드에서 사용한 기능들을 파악해 보도록 하자. 해당 기능은 검색기능을 Django ORM으로 구현을 해 본 것이다. PostModel은 게시글을 담당하는 모델로서 게시글답게 (title : 제목, content : 내용)를 포함하고있다. sera..

카테고리 없음 2022.09.28

(09/26 기술면접 스터디) 관심사 분리란?, SOLID 원칙이란?

관심사 분리란 무엇인지 설명해주세요. 관심사 분리란 개발을 할 때, 하나의 함수에 여러가지 조건들로 혼잡스러운 로직을 정리할 때 사용하는 디자인 원칙중 하나이다. 로직을 작성할때 작은 단위의 기능으로 쪼개어서 함수화 하는 작업을 거친다. 리스트 안의 숫자들에서 최대값과 최솟값을 찾고, 그들을 합치는 로직이 있다고 가정을 한다면. 그 안에서의 관심사는 최대값찾기, 최솟값찾기, 합치기 이렇게 3가지로 나눌 수 있다. 이러한 각각의 관심사를 함수로 나누어서 처리를 하는 기법이다. SOLID 원칙에 대해 설명해주세요. 객체지향 프로그래밍의 가장 큰 장점인 유연성, 재사용성, 유지보수성 Solid 원칙은 SRP(단일책임원칙) 클래스는 다른 책임과 관련된 코드에 영향을 미치지 않기 위해 단 한개의 책임을 가져야한다..

카테고리 없음 2022.09.26