일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- POD
- docker
- github
- elasticsearch
- leetcode
- event loop
- s3
- YAML
- AWS
- EC2
- WSGI
- IAM
- 쿠버네티스
- terraform
- Python
- asyncio
- dockerfile
- ebs
- K8S
- Deployment
- 자바스크립트
- Kubernetes
- IAC
- ansible
- EKS
- Django
- Service
- FastAPI
- asgi
- intervals
- Today
- Total
목록전체 글 (156)
궁금한게 많은 개발자 노트
테이블 간에는 관계를 맺을 수 있으며, django는 테이블 간의 관계를 3가지로 분류하여 제공 (1:N, N:N, 1:1) 첫째로, 관계라는 것은 양방향 개념으로 양쪽 모델에서 정의가 필요한게 원칙이지만, django에서는 한쪽 클래스에서만 관계를 정의하면 이를 바탕으로 상대편 정의는 자동으로 생성 두번째로, 한쪽 방향으로 관계를 생성하거나 변경하면, 반대 방향으로의 관계또 그에 다라 변한다는 것입니다. 따라서, 개발자는 한쪽 클래스에만 관계를 정의하거나 한쪽 방향으로의 관계 설정하는 것을 이해할 수 있어야 합니다. [ N:1 관계 ] 테이블 간에 N:1관계를 맺기 위해서는 모델의 필드를 정의할 때 ForeignKey 필드 타입을 사용하면 됩니다. ForeignKey타입은 관계를 맺고자 하는 모델 클래..
모델이란 테이블을 정의하는 django의 핵심 클래스를 의미하며 models.py파일에 테이블과 관련된 사항들을 정의 ORM 방식에 기반하여 테이블을 클래스로 정의하고 있어, 클래스의 속성과 메소드를 가질 수 있습니다. 테이블의 column은 모델 클래스의 속성으로 정의하고, 테이블에는 메소드가 없지만 모델 클래스에서는 테이블과 관련된 메소드들을 정의할 수 있습니다. 이렇게 함으로써 테이블에 관련된 데이터와 행위를 모두 모델 클래스 한 곳에서 정의할 수 있는 장점을 가집니다. [ 모델 속성 ] 모델의 필드는 모델 클래스의 속성으로 정의되고, 모델 클래스의 속성들은 테이블의 필드로 1:1 매핑 모델 클래스에서 모델 필드는 가장 중요한 속성이며 필수 == 테이블에서 컬럼이 필수인 것과 같은 이치 모델 클래스..
장고의 MTV방식은 자바 웹 프로그맹의 MVC 방식과 거의 동일한 개념 웹 프로그래밍 영역을 3가지 개념으로 나눠서 개발하는 방식으로 테이블을 정의하는 Model, 사용자가 보게 될 화면의 모습을 정의하는 Template, 애플리케이션의 제어 흐름 및 처리 로직을 정의하는 View로 구분하여 개발 진행 이렇게 3가지로 나눠서 개발 진행 시 모델, 템플릿, 뷰 모듈간에 독립성을 유지하고, loose cooupling설계에도 부합 모델은 model.py에 템플릿은 template디렉토리 하위의 *.html파일로, 뷰는 view.py에 작성하도록 django에서 지원 화면 설계는 뷰와 템플릿 코딩으로 연결되고, 테이블 설계는 모델 코딩에 반영되므로 독립적으로 개발할 수 있는 모델을 먼저 작성하고, 뷰와 템플릿..
[ 토큰 기반 인증 시스템의 이점 ] 무상태성(Stateless) & 확장성(Scalability) 토큰은 클라이언트 측에 저장되기 때문에 서버는 완전히 Stateless하며, 클라이언트와 서버의 연결고리가 없기 때문에 확장하기에 매우 적합하다. 만약 사용자 정보가 서버 측 세션에 저장된 경우에 서버를 확장하여 분산처리 한다면, 해당 사용자는 처음 로그인 했었던 서버에만 요청을 받도록 설정을 해주어야 한다. 하지만 토큰을 사용한다면 어떠한 서버로 요청이 와도 상관이 없다. 보안성 클라이언트가 서버로 요청을 보낼 때 더 이상 쿠키를 전달하지 않으므로, 쿠키 사용에 의한 취약점이 사라지게 된다. 하지만 토큰 환경의 취약점이 존재할 수 있으므로 이에 대비해야 한다. 확장성(Extensibility) 시스템의 ..
인가(Authorization) 인가란? 인가는 유저가 해당 서비스를 사용할 수 있는 권한이 있는지 확인하는 절차이다. 예를 들어, 해당 유저는 고객 정보를 볼 수 있는 있지만 수정 할 수는 없다. 로그인하는 것이랑 어떤 서비스를 사용할 수 있는 것은 별개의 문제이다. 예를 들어 넷플릭스에 로그인을 했어도, 결제를 하지 않은 유저는 영상 재생을 할 수 있는 권한이 없다. 보통 로그인 인증, 인가? 어떻게 구분? (HTTP는 이전 요청과 응답을 기억 못 하는 stateless한 특성을 가지기 때문에, 로그인을 할 때 토큰을 생성한다. 이후 어떤 요청이 있을 때 토큰을 통해 해당 유저 정보을 얻고, 권한을 확인할 수 있다.) 어떤 과정으로 이루어질까? 인증 절차를 통해 access token을 생성한다. a..