취대넓얕

[기술면접] 12일차 문답 | sqlite, django DB스택

째깍단 2023. 8. 3. 11:12

 

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

 

Django는 기본적으로는 SQLite을 사용하도록 구성, Python에서 기본으로 제공되어 따로 설치할 필요가 없다

단순하게 만든 DB로 사용하지 않는 동안 CPU를 소모하지 않는다

SQLite자체가 가볍고 간결하고 아주 빠르며 쉽게 사용이 가능하다

👍 장점

  • 운영체제 어디에서나 사용이 가능
  • 연산이 아주 빠름
  • 설치나 데이터베이스 관리를 수행할 필요가 없음
  • sqlite는 서버 프로세스로 실행되지 않기 때문에 즉시 사용할 수 있는 데이터 베이스
  • 트랜잭션을 지원
  • 오픈소스

👎 단점

  • 분리된 DB환경이 아니어서 서버가 db에 대한 부담을 함께 가짐
    = 개발과정에서는 로컬 사용, 배포과정에서는 배포서버 사용. 따라서 배포환경에는 적합하지 않음
  • 사용자에게 권한 부여가 불가능하다
    = 운영체제의 기본적인 액세스 권한만 가능
  • 동시성(Concurrency)에 제한이 있음
    = 병행 접근이 불가능함.

 

 

 

 

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

sqlite의 특성과 관계있습니다.

쿼리 작업은 상관없지만 DB 변경작업에 대한 동시성에 제한이 있습니다.

AWS와 함께 사용하는 것은 배포하는 경우일텐데, sqlite는 확장성이 부족합니다.

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

DB"MS”의 원격 사용이 불가능합니다

 



*** DB

DB는 서로 관련된 데이터를 효율적으로 관리하기위해 자료를 구조화한 데이터의 집합

 

 

***  DBMS란?

Database Management System
DB를 조작하는 소프트웨어. 관리, 공유, 사용환경(DB의 틀, 검색, 저장등의 기능)을 제공함

👍 장점 

- 자료의 통합성, 접근 용이
- 데이터 통제가 쉬움

- 프로그램을 쉽게 개발, 관리

- 유지보수하기 좋음 (중복 데이터를 없애고 쉽게 정리)

- 장애 발생 시 회복 가능, 표준화가 가능

- 응용프로그램의 개발 비용이 감소함

👎 단점

- 고비용

- 중앙 집중 관리에 따른 취약점

- 백업, 회복 방법이 복잡함

https://m.blog.naver.com/icbanq/221720815999

 

 

 

 

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

settings.py에서 ENGINE 값을 변경

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