Family Guy -  Brian Griffin

전체 글

· Django
[문제 정의] " 보안에서는 왜 Refresh를 안쓰고 Access만 쓰는가? " [정의] Access 토큰: Access 토큰은 클라이언트(예: 웹 애플리케이션, 모바일 앱)가 서버에 리소스에 접근하는 데 사용되는 인증 토큰 주로 OAuth 2.0 및 OpenID Connect와 같은 프로토콜에서 발급되며, 사용자가 리소스에 대한 권한을 나타낸다. 일반적으로 짧은 유효 기간(예: 몇 분 또는 몇 시간) 동안 유효하며, 유효 기간이 지나면 재발급이 필요하다. Access 토큰은 보통 HTTP 요청의 헤더에 포함되어 서버에 전송된다. Refresh 토큰: Refresh 토큰은 Access 토큰의 갱신을 위한 특별한 토큰입니다. 주로 OAuth 2.0의 인증 코드 그랜트 방식에서 사용됩니다. Refresh ..
· 기타
포스트맨(Postman) 개요 포스트맨(Postman)은 API 개발을 위한 협업 및 테스트 도구로서, API를 손쉽게 테스트하고 문서화할 수 있는 플랫폼 주로 웹 API를 개발하고 테스트하는 데 사용됩니다. 포스트맨을 사용하면 사용자가 간단한 HTTP 요청을 만들고 테스트할 수 있다. 개발자, 테스트 엔지니어, API 제공 업체 등에게 널리 사용되는 도구 중 하나이며, API 개발 및 테스트의 생산성을 향상시키는 데 도움이 된다. [주요 기능] 1. API 요청 작성 사용하면 간단하게 API 요청을 작성할 수 있다. URL, 헤더, 본문 데이터, HTTP 메서드 등을 설정할 수 있다. 2. 다양한 HTTP 요청 지원 GET, POST, PUT, DELETE 등 다양한 HTTP 요청 메서드를 지원한다. ..
· Django
M:N 관계 M:N 관계(many to many relationship)는 한 테이블(A)의 한 행이 다른 테이블(B)의 여러 행과 관련이 있고, 반대로 한 테이블(B)의 한 행이 다른 테이블(A)의 여러 행과 관련이 있는 경우를 의미한다. 아래 예시에서 고객 테이블의 고객ID가 1인 행이 주문 테이블의 주문 ID가 101, 103인 행과 관련이 있고, 따라서 상품ID가 P001, P003인 행과 관련이 있다. 상품 테이블의 상품ID가 P001인 행이 주문 테이블의 주문 ID가 101, 104인 행과 관련이 있고, 따라서 고객ID가 1, 3인 행과 관련이 있다. 즉 고객 : 상품 = 1 : N, 상품 : 고객 = 1 : N 의 관계를 만족하는 경우 M:N 관계라고 한다. 고객 테이블 고객ID 고객이름 E..
· Django
문제: ValueError: Related model 'auth.group' cannot be resolved 해당 오류는 Django의 데이터베이스 마이그레이션 시 발생한 것으로, 관련 모델이나 필드가 해석되지 못할 때 발생한다. 구체적으로는 관련된 외래 키 필드(`ForeignKey`)나 많 대 많 관계 필드(`ManyToManyField`)에서 발생한다. 정의: 이 경우, 주로 다음과 같은 상황에서 발생한다. 1. 관련된 모델이 아직 마이그레이션되지 않았거나, 마이그레이션 순서가 잘못되었을 때 2. 모델이나 필드 이름이 잘못되었거나 변경되었을 때 3. 관련된 모델이나 필드를 사용하는 외래 키나 많 대 많 관계가 잘못 설정되었을 때 이러한 문제는 주로 Django 모델과 관련된 마이그레이션 파일을 수..
· Django
1:N 관계1:N 관계(one to many relationship)은 한 테이블의 한 행이 다른 테이블의 여러 행과 관련이 있는 경우를 의미한다.아래 예시에서, 고객 테이블의 고객ID가 1인 행이 주문 테이블의 주문 ID가 101, 103인 행과 관련이 있다. 고객 테이블고객ID고객이름Email1조나희nahee2253@nate.com2조나단nahee2253@naver.com 주문 테이블주문ID고객ID상품명날짜1011노트북2024-01-081022핸드폰2024-01-09 이때, 고객ID 는 고객 테이블의 PK(Primary Key)이고, 주문 테이블의 FK(Foreign Key)이다. Article - Comment하나의 게시글에는 여러 개의 댓글이 존재할 수 있다.1 : N 관계에서 1에 해당하는 모델..
· 기타
PM은 다양한 업무를 맡으며 기업마다 맡은 역할이 다르다. 그러므로 사람들은 PM에 대한 정의를 확실하게 내리지 못한다고 생각한다. 또한, 다음과 같이 PM의 역할과 책임은 다양하다고 볼 수 있다. (출처 : 그로우앤베터) PM의 종류는 대표적인 두 가지로 프로젝트 매니저(Project Manager)와 제품 매니저(Product Manager)이다. 이들의 주요 역할과 책임을 간단하게 살펴보자! 프로젝트 매니저 (Project Manager) 프로젝트 계획 및 관리: 프로젝트 매니저는 프로젝트의 목표와 범위를 정의하고, 일정과 예산을 관리하여 프로젝트를 계획한다. 이는 프로젝트 팀과의 협력을 통해 이루어진다. 자원 할당: 필요한 자원(인력, 장비 등)을 식별하고 할당하여 프로젝트의 진행을 지원한다. 팀..
· Django
[실습] 새로운 앱(accounts) 생성 및 등록, url 패턴 분리 진행 유저 모델 생성 accounts/models.py from django.contrib.auth.models import AbstractUser class User(AbstractUser): pass 유저 모델 등록 mysite/settings.py AUTH_USER_MODEL = "accounts.User" (프로젝트 시작 이후 한번이라도 migrations이 완료된 경우 migrations 및 db 삭제)migrations 진행jwt token 사용을 위한 library설치$ pip install djangorestframework-simplejwt library 등록 및 설정 추가 mysite/settings.py INSTA..
· 기타
백준 문제를 진행하면서 코드에 문제가 없다고 판단이 드는데 9019번의 시간 설정(6초) 때문인지 '시간 초과'가 무려 12번이나 반복되고, 해결점을 찾았다! 간단하게 문제를 소개하면서 해결 방법을 작성해보려고 한다. DSLR 시간 메모리 제한 제출 정답 맞힌 사람 정답 비율 6 초 256 MB 79135 19331 12638 20.759% 문제 네 개의 명령어 D, S, L, R 을 이용하는 간단한 계산기가 있다. 이 계산기에는 레지스터가 하나 있는데, 이 레지스터에는 0 이상 10,000 미만의 십진수를 저장할 수 있다. 각 명령어는 이 레지스터에 저장된 n을 다음과 같이 변환한다. n의 네 자릿수를 d1, d2, d3, d4라고 하자(즉 n = ((d1 × 10 + d2) × 10 + d3) × 1..
· CS
Authentication & Authorization Authentication(인증) 사용자, 장치의 신원을 확인하는 과정 즉, 로그인 Authorization(권한 부여) 인증된 사용자나 시스템이 수행할 수 있는 작업의 유형과 범위를 결정하는 과정 ex) 관리자는 공지사항을 작성할 수 있지만, 개인 사용자는 불가능 인증 권한 결과 X - 민증을 놓고와서 술집에 못 들어감 O O 고등학교 학생증을 들고가서 술집에 못 들어감 O O 민증을 들고가서 술집에 들어감 HTTP 특징 비연결성(Connectionless) 클라이언트가 서버에 요청을 보내고 서버가 그 요청에 응답을 한 후, 연결이 바로 끊어진다. 요청이 독립적이다. 무상태(Stateless) 이전 요청에 대한 정보나 상태를 저장하지 않는다. 클라..
· Python
연산자(Operators) 프로그램은 입력을 받으면 데이터를 저장하고 처리한 후 원하는 결과로 출력한다. 지금까지 변수와 자료형을 통해 데이터를 저장하는 방식을 알아보았다. 이제 데이터를 연산을 통해 어떻게 처리할 수 있는지 알아보자. 1. 산술 연산자 파이썬은 다양한 수학 연산 기능을 제공한다. + 덧셈 - 뺄셈 * 곱셈 / 나눗셈 // 몫 % 나머지 ** 제곱 a = 5 b = 2 print(a + b) # 5 더하기 2 print(a - b) # 5 빼기 2 print(a * b) # 5 곱하기 2 print(a / b) # 5 나누기 2 (항상 결과는 float 타입) print(a // b) # 5를 2로 나눈 몫 print(a % b) # 5를 2로 나눈 나머지 print(a ** b) # 5..