분류 전체보기 260

[Django] User model 확장

Reference https://yonghyunlee.gitlab.io/python/user-extend/ django login 유저 확장 방법 - 김땡땡's blog 장고의 auth 기능은 User 객체를 제공한다. 우리는 기본 default로 이 User 객체로 여러 인증을 구현할 수 있다. User model User model의 기본적으로 있는 여러 필드들이 있다. username 필수사항이다. 150자 이 yonghyunlee.gitlab.io https://github.com/dev-yakuza/django_custom_user_model GitHub - dev-yakuza/django_custom_user_model Contribute to dev-yakuza/django_custom_us..

Server/Django issue 2022.08.04

[Django] mysql 로그인 오류 해결방법

https://2vup.com/mysql-password/ [mySQL8] 로그인 오류 해결방법 ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES) / ERR 🔒 mysql 비밀번호 재설정 ❌ 오류 mysql에서 옳은 비밀번호를 입력했음에도 불구하고 (28000): Access denied for user ‘root’@‘localhost’ (using password: YES) 오류를 마주했다. mysql> UPDATE user set password=passwor 2vup.com

Server/Django issue 2022.08.04

[Django] mysqlclient 설치 에러 해결

macOS 환경에서 pip install mysqlclient를 실행할 경우 설치에러가 발생하는 경우가 존재한다. 해결 방법은 간단하다. brew install mysql 을 진행하고 pip install mysqlclient 를 실행하면 정상적으로 설치된다. $ brew install mysql $ pip install mysqlclient + 추가 우분투 linux 에서 pip mysqlclient 설치 해결 https://hongjuzzang.github.io/howto/install_mysql_ubuntu/ [Ubuntu 18.04] mysqlclient install Ubuntu 18.04에서 mysqlclient 설치 오류 해결하기 hongjuzzang.github.io

Server/Django issue 2022.08.04

[Django] Pycharm으로 프로젝트 셋팅

Pycharm으로 가상환경 및 셋팅 원격서버 SSH 연결하는 방법 Run을 통해 서버 실행하는 방법 - 내가 원하는 서버를 실행할 수 있게 셋팅 Reference https://meongj-devlog.tistory.com/33 Pycharm - Django 프로젝트 생성 및 가상환경 구축하기 파이참(PyCharm) IDE 을 사용하여 장고(Django) 프로젝트를 생성하고 python 가상환경을 구성해보도록 하겠습니다. 파이참(PyCharm) 설치 https://www.jetbrains.com/ko-kr/pycharm/download/#section=windows 다.. meongj-devlog.tistory.com https://epicarts.tistory.com/99 Pycharm으로 원격 서버 ..

[Django] Git 초기화 & Github 연결

Git 초기화 git을 이용하여 관리할 수 있도록 초기화 한다. manage.py가 있는 디렉토리에서, git init으로 git을 초기화 시킨 다음에 .gitignore 파일을 먼저 작성한다. .gitignore 앞서 생성하였던 my_settings.py와 같이 공유하면 안되는 것들을 구분하기 위해 .gitignore파일을 만들어 관리하는 것이다 먼저, gitignore사이트 에 접속하여 아래와 같은 키워드들을 추가하고 Create 를 한다. || python, pycharm, VisualStudioCode, vim, macOS, Linux, zsh... || 그리고 그 내용들을 .gitignore 파일을 열어서 내용를 추가하고 my_setting.py 파일도 추가한다. #################..

Server/Django issue 2022.08.03

[Django] Project 초기 세팅

프로젝트 셋팅에 대한 자료가 방대해서 싹다 모아보여 한다. 가상 환경 추가 및 적용 (Mac 적용: source venv/bin/activate, Mac 해제: venv/bin/deactivate) Django 설치 다음과 같이 업데이트가 가능하다면 pip와 setuptools를 업데이트 한다. # pip를 최신 버전으로 업데이트 $ python -m pip install --upgrade pip # setuptools를 최신 버전으로 업데이트 $ pip install --upgrade setuptools # 해당 가상 환경에 장고 설치 $ pip install django $ pip install django=원하는버전 폴더 하나 생성: DjangoProject 그 안에, django-admin sta..

Server/Django issue 2022.08.03

[Django] migration 파일은 커밋 되어야 하는가?

마이그레이션 파일을 다루는 절대 원칙 이미 커밋된 마이그레이션 파일은 지우면 안 됩니다. 위와 같은 이유로 .gitignore에 포함시키지 않고 코드 저장소(Github)에 업로드하여 관리합니다. 코드 저장소에 올리기 전에 혹은 프로덕션에 반영하기 전에 문제가 없는지 확인합니다. 왜 지우면 안 되나요? 디비를 모두 날렸어도 처음부터 끝까지 마이그레이션 파일을 실행했을때 날리기 전의 디비의 스키마를 그대로 복구할 수 있어야만 완전한 마이그레이션 파일입니다. 그런 상태일때만 여러분 각자의 로컬 디비가 서로 같은 상태를 유지하며 개발되고 있음을 보장할 수 있기 때문입니다. 그래서 마이그레이션 파일은 디비에 변경점을 가하기 위한 도구라기보단 디비의 변경점을 기록해두는 커밋 로그처럼 다뤄야 합니다. 가끔 심각하게..

Server/Django issue 2022.08.02

[Django] Reverse relations과 Related_name

1:N 이나 N:M 관계가 성립할 때, 우리는 역참조를 할 수 없다. 하려면 classname_set을 이용해서 접근할 수 있는데 이때 이름을 지정하는 것이 related_name이다. related_name가 필수인 경우가 존재하고, 그것은 정확히 어떤 field를 갖고 와야하는지 명확하지 않을때이다. 앞으로 프로젝트가 커지면 1:N이나 N:M 관계를 갖는 테이블이 많이 생긴다. 이때, related_name는 이를 해결해 줄 대표적인 방법이다. https://velog.io/@gillog/DB-11-1N-NM-관계 [DB] 1:1, 1:N, N:M 관계 관계형 데이터베이스(Oracle, MySQL, MS-SQL, SQLite 등등)는 엔티티끼리 관계를 맺을 수 있어서 관계형 DB라는 이름이 붙었다.엔..

[Django] DRF Pagination

실제 서비스의 경우에는 레코드의 개수가 많을 것이고 이 경우 하나의 API 요청으로 모든 레코드를 받는 것은 오랜 시간이 걸리게 됩니다. 따라서 이런 경우 페이지를 나눠서 요청을 해야합니다. 다행히도 DRF 에서는 이러한 pagination 기능을 제공하고 있습니다. PageNumberPagination 과 LimitOffsetPagination pagination 을 하는데는 크게 두 가지 방법이 있습니다. 두 방법 모두 url 의 get parameter 를 이용하여 이를 지원해줍니다. 각각에 대해 알아보도록 하겠습니다. PageNumberPagination page : 몇 번째 페이지인지 표시해줍니다. 페이지는 1부터 시작합니다. page_size : 한 페이지에 몇 개의 레코드를 보여줄지 표시해줍..

[Django] django-rest-knox 란?

django-rest-knox django-rest-knox는 장고(django)의 rest 인증 모듈입니다. Knox는 Django REST Framework의 인증을 보다 쉽게 사용할 수 있도록 도와줍니다. 작은 노력으로 REST 기반의 애플레이션에서 공통적으로 사용하는 패턴을 따르며 안전한 연결을 구성할 수 있는 것이죠. Knox의 인증은 DRF에 내장된 TokenAuthentication과 흡사하게 토큰 기반으로 작동하면서, 기본 DRF이 가지고 있는 몇 가지 문제들을 보완해 줍니다. DRF 토큰은 단일 사용자로 제한되어 있습니다. 이런 제약사항은 토큰이 공유되거나, 여러 기기에서 안전한 연결을 어렵게 만듭니다. 또 서버 측에서 로그아웃될 경우 모든 기기에서 로그아웃되어 버리기도 합니다. Knox..

[Swift] SwiftLint 적용해보기 (저자의 방법은 계속 업데이트 됩니다)

SwiftLint는 무엇이고, 왜 사용할까요? SwiftLint의 정의는 Linter, Formatter Library 입니다. 'Linter'란 커뮤니티나 팀에서 정한 스타일 규칙을 따르지 않는 코드 부분을 식별하고 표시하는 것을 돕습니다. 코딩 표준이라고도 불리는 코딩 컨벤션은 코드를 작성할 때 추천하는 코딩 스타일, 괜찮은 사례등을 모아놓은 가이드 라인 입니다. 우리가 프로젝트를 진행할 때 같이 협업을 하게 됩니다. 만드는 과정에서 협업하는 다른 iOS 개발자의 코드를 리뷰를 하게 될 것입니다. 그런데, 상대방의 코드 작성하는 방법이 나와 많이 다르다면 효율은 당연히 떨어지겠죠. 여백을 주는 방법, 중괄호를 열고 닫는 방법, if-else문에서 else의 위치 등 각 개발자가 다른 습관을 갖는 다면..