전체 글

기록하자, 머리는 생각하는 곳이지 저장장치가 아니다.
Object 선언객체는 자바스크립트에서 중요한 데이터 구조중 하나이다. 객체는 키-값 쌍의 집합으로, 각 키는 문자열이고 각 값은 어떤 타입이든 될 수 있다. 객체는 중괄호'{ }'를 사용하여 선언한다.// 빈 객체 선언const emptyObject = {};// 속성이 있는 객체 선언const person = { name: 'John', age: 30, isEmployed: true};console.log(person.name); // Johnconsole.log(person['age']); // 30 계산된 속성명계산된 속성명을 사용하면 객체의 속성 이름을 동적으로 생성할 수 있다. 계산된 속성명은 대괄호'[ ]'를 이용하여 정의한다.let propName = 'name';let p..
상수/변수 선언var (function scope) 대신에 const/let을 사용하기 (block scope)ES6문법에서 가장 큰 변화중 하나는 변수 선언 방식이라고 한다. 'var'는 함수 스코프를 가지지만, 'const와 'let'은 블록 스코프를 가진다. 이를 통해서 변수의 범위를 더 명확히 할 수 있다. var의 문제점var 키워드는 함수 스코프를 가지며, 이는 블록 내에서 선언된 변수가 블록 외부에서도 접근이 가능하다는 것을 의미한다.아래 예제처럼 'x'는 if 블록 내부에서 선언되었지만, 블록 외부에서도 접근이 가능하고, 이는 의도치 않은 버그를 유발할 수 있다.function varTest() { if (true) { var x = 1; } console.lo..
· Django/DRF
Nested Serializer 란?DRF에서 제공하는 기능으로, 관계형 데이터를 처리할 때 매우 유용하다. 이 기능을 이용하여 데이터의 중첩된 관계를 표현하고 관리할 수 있다. Nested Serializer 사용법코드를 보면 IngredientsSerializer, RecipeProcessSerializer, recipe_comments 세가지 직렬화가 BasicRecipeSerializer에 중첩되어 있는 것을 확인할 수 있다.like_count와 bookmark_count는 LikeBookmark를 상속받아 중첩시킨 부분이여서 설명에서 제외하였다. 주의 깊게 봐야 되는 부분이 create와 update 메서드 부분인데, nested serializer는 읽기 전용 필드 이기 때문에 따로 creat..
· Django/DRF
프로젝트를 진행하다보면, 특정 모델에 대한 권한을 제한하고 싶을 때가 있다. 이럴때 admin.ModelAdmin 클래스에서 제어할 수 있는 다양한 메서드를 제공한다.  Options아래의 내용은 options에 들어 있는 메서드들의 내용이다. has_add_permission사용자가 새 객체를 추라할 수 있는 권한이 있는지 확인한다. 기본적으로 사용자가 해당 모델에 대해 add 권한을 가지고 있는지 검사한다.def has_add_permission(self, request): opts = self.opts codename = get_permission_codename("add", opts) return request.user.has_perm("%s.%s" % (opts.app_label..
· Django/DRF
특정 User나 Group에 대해서 권한을 설정하고, Admin 페이지에서 권한별 UI를 띄워서 관리하기 위해 고려해 볼 수 있는 사항으로 Model Meta에 permissions를 설정하여 권한을 관리할 수 있다. 간단한 예시로, 유튜브를 보면 프리미엄에 가입한 유저는 광고가 뜨지않고, 그렇지 않은 유저는 광고가 뜨도록 설정하는 것도 권한과 관련이 있다. django에서 모델 메타 설정을 통해 권한을 관리하는 방법에 대한 내용이다. Django의 Meta 설정이란?permission 기능을 구현하기에 앞서 Django의 Meta 기능에 대해서 간략히 설명하자면, 모델의 동작을 커스터마이징하기 위해 사용되는 기능으로 데이터베이스의 테이블 명, 정렬 순서, 권한 등 다양한 설정을 포함할 수 있는 클래스이..
Jong_seoung
Today_developStory