전체 글 32

[Python] lambda 뽀개기

문제) 최소직사각형 (모든 명함을 수납할 수 있는 가장 작은 지갑) 풀이 1) def solution(sizes): # 가로와 세로를 비교해서 세로길이가 가로길이보다 크면 돌리기 for i in range(len(sizes)): if sizes[i][0] < sizes[i][1]: sizes[i][0], sizes[i][1] = sizes[i][1], sizes[i][0] a = max(sizes, key=lambda x: x[0])[0] # 가장 큰 가로값 반환 b = max(sizes, key=lambda x: x[1])[1] # 가장 큰 세로값 반환 return a*b 풀이 2) def solution(sizes): # 가로와 세로를 비교해서 세로길이가 가로길이보다 크면 돌리기 for i, lst ..

Python 2023.04.27

[git & github] gitignore.io 활용하기

Gitignore.io Gitignore.io는 Git 레포지토리용 .gitignore 파일을 만드는 데 도움이 되도록 설계된 웹 서비스이다. Gitignore.io 활용법 1. Gitignore.io 사이트 이용하기 사이트에 접속하면 위와 같은 화면이 뜬다. "운영체재, 개발환경(IDE), 프로그래밍 언어"를 적고 생성 버튼을 누르면 사이트에서 .gitignore 파일을 자동으로 생성해준다. 예를 들어 "Windows, VisualStudioCode, Python, Django"를 넣어주면 위와 같은 템플릿 파일이 생성된다. 이걸 그대로 복붙하면 끝!! 2. 명령어창 이용하기 다시 첫 화면에서 '커멘드라인 문서'를 클릭해보면 활용법이 자세히 나와있다. 1) 환경 셋팅하기 우선 명령어창에서 gitigno..

Git & Github 2023.04.26

[Django] 유저 모델(클래스) 종류

Django 유저 모델(클래스) 종류 AbstractUser : AbstractBaseUser를 상속하여 사용자 모델을 커스터마이징할 수 있는 추상 클래스입니다. 이 클래스는 username, email, first_name, last_name 등을 필드로 가지고 있습니다. AbstractBaseUser : 최소한의 필드만을 가진 추상 클래스로, Django의 인증 시스템에서 사용자 모델을 커스터마이징할 때 사용됩니다. 이 클래스를 상속받아 자신만의 사용자 모델을 만들어야 하며, 이 경우 반드시 USERNAME_FIELD와 REQUIRED_FIELDS를 정의해야 합니다. PermissionsMixin : 사용자 모델에 대한 권한을 관리하기 위한 Mixin 클래스입니다. 이 클래스를 상속받으면 사용자 모델..

Django & DRF 2023.04.26

[Django] Meta 클래스 - Model 클래스에 대한 추가 설정

1. 'Meta' 클래스란? 'Meta' 클래스는 'Model' 클래스 내부에 선언되어 'Model' 클래스에 대한 추가 설정을 제공하는 클래스이다. 2. 형태 'class Meta:' 로 정의된다. class User(AbstractUser): class Meta: db_table = 'my_user' 3. 'Meta' 클래스에서 제공하는 주요 속성들 'abstract' : 추상 모델 여부를 지정 'app_label' : 모델이 속한 앱의 이름을 지정 'db_table' : 모델이 사용할 데이터베이스 테이블 이름을 지정 'default_related_name' : 모델과 관련된 객체의 역참조 이름을 지정 'verbose_name' : 모델의 이름을 지정 'verbose_name_plural' : 모델의..

Django & DRF 2023.04.21

[Django] 세션(Session), 쿠키(Cookie), 토큰(Token), JWT(Json Web Token)?

세션, 쿠키, 토큰, JWT 이란 무엇인가? 세션(Session), 쿠키(Cookie), 토큰(Token), JWT(Json Web Token)은 인증과 권한 부여를 구현하기 위해 사용되는 다양한 방법 중 일부이다. 각각의 특징을 비교해보자!! 1. 세션(Session) 서버 측에서 인증 정보를 저장합니다. 쿠키(Cookie)를 이용해 클라이언트와 상호작용합니다. 클라이언트가 로그인을 시도하면 서버는 세션 ID를 발급하고, 이 세션 ID를 쿠키(Cookie)에 저장합니다. 클라이언트는 이후 요청 시, 이 쿠키(Cookie)를 서버에 보내며, 서버는 이 쿠키(Cookie)를 통해 세션 정보를 식별하고 인증을 수행합니다. 2. 쿠키(Cookie) 클라이언트 측에서 인증 정보를 저장합니다. 서버와 클라이언트 ..

Django & DRF 2023.04.20

[Django] http 요청 method

http 요청 method 출처 문서 1 출처 문서 2 출처 문서 3 출처 문서 4 HTTP는 요청 메소드를 정의하고, 주어진 리소스에 수행하길 원하는 행동을 나타낸다. 요청 메소드의 종류에는 여러가지가 있다. 그 중 가장 많이 사용해 본 메소드는 GET과 POST 실제로도 가장 빈번하게 쓰이는 메소드인듯 하다. 각 메소드를 정리해보자. GET 특정 리소스의 표시를 요청 데이터를 받아와 사용자의 화면에 띄워주는 역을 한다. HEAD GET과 유사하나 응답 본문을 포함하지 않음 즉, GET과 동일한 요청을 하지만 값을 반환하진 않는다는 소리다. POST 특정 리소스에 엔티티 제출 서버에 특정 데이트를 보낼 때 사용한다. PUT, PATCH 리소스를 만들거나 업데이트(수정) PUT은 모든 리소스를 업데이트 ..

Django & DRF 2023.04.18

[Django] Co.Meet 커뮤니티 페이지 - 팀프로젝트 KPT

Keep git사용시 fork짱 : 굳이 콜라보레이션을 사용하지 않고 fork로 commit을 하였기 때문에 main브랜치 보호가 아주 따봉이다 협업태도 : 적극적인 소통 기능단위 분업 : 서로 conflict날 확률이 적고 각자의 함수를 잘 알고있기에 templates생성에도 분업이 가능하여 매우 작업효율이 올라감 공식문서 활용 : 정확한 출처가 있는 문서를 읽는것이 중요하기 때문에 아무튼 그렇다 ㅇㅇㅇㅇㅇㅇ .gitignore : github업로드시 불필요 파일과 보안취약한 파일숨김기능 이를 위해 readme에 start routine삽입 Problem 코드 최적화 : http method를 활용하기 ex) edit함수와 delete함수를 합쳐서 코드를 최적화하면 좀더 깔끔하게 정리할 수 있다 불필요..

Django & DRF 2023.04.18

Github - 깃허브로 협업하기(fork, pull request)

#1 기본 셋팅 팀장) 1. 팀장이 로컬에서 프로젝트 기본셋팅한 후 2. Github 레포지토리 업로드 팀원) 3. 팀원들이 팀장 레포를 fork 함 4. fork한 것을 로컬에 clone 하기 (이 때, .gitignore파일 때문에 .env랑 db.sqlite3, venv는 없이 받아진다. 이거 뭐 하는 방법 있었는데 뭐였더라..?) 5. 로컬에서 셋팅 후 잘 작동하는지 확인 (django의 경우 runserver) **Start Routine 가상환경 재구성 py -m venv venv source venv/scripts/activate 종속패키지 설치 pip install -r requirements.txt asgiref==3.6.0 autopep8==2.0.2 Django==4.2 django-..

Git & Github 2023.04.12