본문 바로가기

Coding343

Django Restframework Custom User Model 적용 방법 Django에는 디폴트로 유저모델이 존재한다.하지만 해당 유저모델에는 상당히 많은 기본 컬럼이 존재하기에, 커스터마이징이 필요한 경우가 많다.일반적으로 Custom User Model을 만들려면 AbstractUser 또는 AbstractBaseUser를 상속받아서 만든다.먼저 아래의 명령어로 프로젝트와 앱을 생성한다. django-admin startproject project .django-admin startapp users 그리고 settings.py에 우리가 생성한 users와 rest_framework를 추가해준다.다음으로 models.py에 아래의 내용을 채워넣는다.from django.contrib.auth.models import AbstractBaseUser, BaseUserManage.. 2019. 2. 28.
Django + Uwsgi + Supervisor + Nginx Docker-compose와 연동하는 방법 목적Django를 배포할때는 Uwsgi를 통해 Nginx 또는 Apache웹서버와 엮어서 배포한다.이러한 경우에서 만약 AWS ECS를 사용한다면 Docker-compose를 통해 컨테이너화 시켜주는 작업이 필요하고그러한 과정에 대해 기술한다.구현먼저 docker-compose파일은 다음과 같이 총 3개로 나뉜다.docker-compose-dev.ymlversion: '3.7' services: nginx: build: context: . dockerfile: docker/nginx/Dockerfile container_name: nginx hostname: nginx ports: - '80:80' networks: - backend restart: on-failure links: - web_servic.. 2019. 2. 26.
AWS SecretManager를 이용한 도커 환경변수 적용 방법 목적ECS에 도커 컨테이너를 배포할 때 AWS Secret Manager를 통해 환경변수를 관리하는 방법에 대해 기술한다. IAM으로 권한 주기기본적으로 awscli를 통해 접근하려면 credential관련한 설정이 필요하다.하지만 도커 컨테이너를 빌드할 때 해당 자료를 같이 넘겨주면 의미가 없으므로 IAM을 통해 권한을 설정해줘야 한다.해당 방법을 사용하면 특별한 crendential 설정이 필요없이 awscli를 통해 접근이 가능하다.먼저 IAM - 역할로 들어가서 역할 만들기를 누른다.우리는 ECS 관련한 역할을 만들것이므로 AWS서비스 - EC2를 선택하고 다음을 누른다. SecretManagerReadWrite를 선택하고 다음을 누른다.태그 추가는 그냥 넘어간다.역할 이름에 원하는 이름을 적고 .. 2019. 2. 26.
Python Observer Pattern 소프트웨어를 설계할 때 가장 먼저 고려할 점이 바로 아키텍쳐 구조이다. 또한 아키텍쳐의 구조를 제대로 설계하려면 디자인 패턴또한 고려해야한다. 나는 이번에 다음과 같은 프로그램을 짜고 있었다. - 파일을 업로드하고 데이터베이스에 관련 정보를 저장하는 프로그램 위 프로그램의 플로우를 하나하나 살펴보자면 다음과 같다. 1. S3에 파일을 업로드한다.2. 업로드된 파일의 URL을 통해 특정 비즈니스 로직을 거친다.3. 로직을 거친 이후 나온 결과물을 최종적으로 데이터베이스에 저장한다. 여기서 발생할 수 있는 문제점이 있다. 1번 파일 업로드 부분에서 바로 오류가 발생하면 상관이 없겠지만, 2번 또는 3번처럼 파일을 업로드한 이후 오류가 발생한다면 S3에는 파일이 남아있지만 실제적으로 해당 파일을 Trackin.. 2019. 2. 20.
PyCharm AWS Lambda Plugin으로 작업하는 방법 AWS Lambda는 여러가지 장점을 가지고 있다.하지만 로컬에서 작업할 수 없기에 항상 작업한 결과물을 업로드하거나 직접 AWS콘솔에 붙어서 작업을 해야했는데이는 너무나 불편한 작업이었다.그래서 PyCharm에서 AWS Lambda관련하여 플러그인이 없을 지 찾아보던 중 SAM이라는 플러그인을 발견했다.나는 OSX를 사용하고 있으므로 맥 기준으로 설명한다.먼저 아래의 명령어로 brew를 업데이트한다. brew upgradebrew update 이제 저장소에 추가하고 설치한다. brew tap aws/tapbrew install aws-sam-cli 다음으로 파이참을 키고 설정 - Plugins에서 lambda를 검색한다. 오른쪽에 있는 AWS Toolkit을 설치한다음 재시작한다.이제 File - Ne.. 2019. 2. 11.
awscli Library not loaded: @executable_path/ 오류 해결방법 파이썬 버전을 다운그레이드하고 지웠다 재설치하는 과정을 반복하던 도중정확히 어떤 부분을 건드렸는지 기억은 나지 않지만 환경변수, 링크들이 다 깨져버린 경험이 있다.그래서 기존에 설치했던 많은 프로그램들에 대한 링크가 제대로 작동하지 않았다.그러던 도중 aws에 접근하여 작업을 하기위해 aws명령어를 입력했더니 아래와 같은 에러가 발생했다. Library not loaded: @executable_path/먼저 which aws를 입력하여 경로를 확인한다.나는 OSX를 사용하고 있고, /usr/local/bin/aws에 위치해있다고 나왔다.해당 폴더를 삭제한다.그리고 아래의 명령어를 터미널에서 입력한다. sh 2019. 2. 11.