Django50문답(36~45)

김하진·2022년 9월 15일
0

36 Serializer에서 어떻게 객체를 validate하게 됩니까?

validate 함수를 통해서 할 수 있습니다. 함수의 인자값으로 해당 값이 전달되고 유효성 검사를 할 수 있습니다. validator_필드명 을 통해서 정의 할 수 있습니다. 유효성 검사가 실패하면 raise ValidationError 를 발생시킵니다.

37 Serializer에서 Custom Validation을 하는 이유는 무엇입니까?

django 에서 기본적으로 validation 을 제공하지만 자신만의 validator 메소드를 만들고 싶거나, 데이터에 추가에 좀 더 많은 기능을 사용하고 싶을 때 사용합니다 특수문자 처리 등이 대표적인 예입니다.

38 Serializer에서 create, update 함수는 어떤 기능을 수행합니까?

serializer.save를 호출시 instance 가 있다면 update를 호출하고, 없다면 create를 호출합니다.

create ⇒ save() 메소드를 호출함으로 DB인스턴스를 생성

update ⇒ save() 메소드를 호출함으로 DB 인스터스를 수정

39 Serailizer Custom validate함수를 통해 오류 케이스를 어떻게 처리합니까?

벨리 데이터 함수 내에서 개발자가 설정한 검증 절차를 거치고 통과하지 못한다면 raise 를 통해서 에러를 발생 시킵니다

40 DRF permission_classes를 사용하는 이유는 무엇입니까?

permiison 기능은 사용자의 권한을 나누는 가장 간단하고 효과적인 수단입니다.

유저 별로 권한이 나누어져 있다면 유저 권한 별로 데이터를 접근 할 수 있고,

django 에서 제공하는 admin 같은 기능도 보다 쉽게 사용 할 수 있습니다.

유저 권한 별로 데이터 입출력도 편하게 핸들링 할 수 있습니다.

41 Django는 어떤 종류의 데이터베이스를 사용합니까? Flask와의 차이는 무엇입니까?

Django 에서는 기본적으로 Sqlite 가 내장형으로 지원을 하며 Django 의 ORM 을 지원하며, Django 에서도 기본적으로 Sqlite 를 사용하게 되어 있습니다. Flask 는 기본적으로 지원하는 DB가 없으며, Flask에서 sqlite를 사용하려면 import sqlite3 , conn = sqlite3.connect('database.db') 를 통해서 연동 할 수 있습니다.

42 Django에서 제공하는 sqlite는 어떤 장단점이 있습니까?

장점

  • 빠릅니다. 대부분의 연산에서 mysql보다 빠릅니다.
  • 서비스를 설치할 필요가 없습니다.
  • 사용하지 않을 때에는 컴퓨터 메모리와 CPU를 소비하지 않습니다
  • 단순하고 간편합니다.

    단점

  • 동시성에 제한이 있습니다. 동시에 여러 프로세스가 SQLite 데이터베이스에 액세스하고 쿼리가 가능하지만 주어진 시간에 하나의 프로세스만이 데이터베이스를 변경할 수 있습니다.
  • 구조가 단순한 만큼 기능을 확장하기 어렵습니다.

43 AWS를 통해 배포할 경우, sqlite를 사용하지 않는 이유는 무엇입니까?

DB"MS"가 아니라 원격 사용이 불가능하다.

AWS 배포를 한다는것은 서비스를 하는 것인데, 확장성이 부족합니다

다른 데이터 베이스보다 보안이 약합니다.

44. Django settings에서 DB 스택을 변경하는 방법은 무엇입니까?

```
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'OPTIONS': {
            'read_default_file': '/Users/honux/my.cnf',
        },
    }
}
```

45. Django 프로젝트를 배포할 때, 노출되어서는 안되는 값은 어떤 것이 있습니까?

1.database 와 관련된 정보 ( username, password)

  1. SECRET_KEY3.Debug = True로 설정되어 있다면 정보가 노출될 수 있다.
profile
진킴

0개의 댓글