코변
로그인
코변
로그인
Django 50문 50답 - 5
코변
·
2022년 9월 19일
팔로우
0
0
장고 50문 50답
목록 보기
5/5
Django는 어떤 종류의 데이터베이스를 사용합니까? Flask와의 차이는 무엇입니까?
장고는 따로 설정을 하지 않는다면 sqllite를 사용하며 따로 설정하지 않는다는 내용에서도 유추할 수 있듯이 기본적으로 데이터베이스를 생성해주고 연결을 보장해준다.
반면에 플라스크는 db연결을 보장해주지 않고 파이썬의 다양한 패키지를 활용하여 db와 연결해야한다. (ex-> sqlalchemy, pymysql, pymongo 등)
Django에서 제공하는 sqlite는 어떤 장단점이 있습니까?
장점
sqlite는 서버 프로세스로 실행되지 않기 때문에 즉시 사용할 수 있는 데이터 베이스이다.
가볍지만 갖출 건 다 갖췄다. 트랜잭션을 지원하고 플랫폼의 제약이 없다.
로컬에서 구동되는 db이기 때문에 이식성이 높다.
단점
분리된 환경이 아니라서 서버가 db에 대한 부담도 떠안아야 한다.
사용자에게 권한 부여가 불가능하다.(운영체제의 기본적인 액세스권한만 가능)
AWS를 통해 배포할 경우, sqlite를 사용하지 않는 이유는 무엇입니까?
주어진 시간에 하나의 프로세스만이 데이터베이스를 변경할 수 있어 다른 mysql, postgres 같은 서버-클라이언트 구조 RDBMS보다는 동시성에서 속도저하를 보인다.
다른 RDBMS에 비해 보안이 약하다.
Django settings에서 DB 스택을 변경하는 방법은 무엇입니까?
settings.py에서 databases 설정을 찾아 engine값을 변경해주면 된다.
Django 프로젝트를 배포할 때, 노출되어서는 안되는 값은 어떤 것이 있습니까?
django_secret_key 와 그 밖의 db비밀번호 데이터, jwt토큰을 사용한다면 해싱에 사용되는 jwt시크릿키가 있다.
Django 프로젝트를 배포할 때, 시크릿키를 노출하지 않는 방법에 대해서 설명하시오
숨기고 싶은 데이터들을 환경변수로 설정하여 os.environ으로 불러와 쓰는방법
config 파일 혹은 .env 파일을 만들어 저장 후에 불러오는 방법
도커를 사용한다면 도커 컴포즈에 env파일을 명시하거나 환경변수 설정을 해준다.
컴포즈를 쓰지 않을 때에는 docker run시에 태그를 사용하여 설정할 수도 있다.
Django 프로젝트 진행 시 발생하는 CORS 오류를 처리하는 방법에 대해서 설명하시오
pip를 통해(혹은 Poetry)django-cors-headers를 다운받고 installed app에 명시를 해준다음
cors allow (header, method, allowed_origin) 설정들을 용도에 맞게 설정해주면 해결된다.
Django 프로젝트를 배포할 때 Allow Host에 * 가 들어가면 안되는 이유는?
allow host *은 어떤 호스트에서 접근을 해도 허락하겠다는 의미로 다양한 공격의 대상이 될 수 있다
Django 프로젝트를 배포할 때 사용되는 Gunicorn이 무엇이며, WSGI를 왜 사용해야 하는지 설명하시오
구니콘은 웹서버에 필요한 동적페이지 요청을 python에 맞게 해석하여 응용프로그램에 전달해주는 역할을 한다.
이를 통해 우리가 만든 장고 어플리케이션은 웹서버로 구동될 수 있다.
처음에 장고를 사용할 때 runserver는 정적 페이지 동적페이지 다 구동이 가능한데 왜 웹서버로 쓰지말라고 할까하는 생각이 들었다.
그러나 장고의 공식문서를 보면 알 수 있듯이 django의 runserver는 테스트, 디버깅용이며 보안과 성능테스트를 거치지 않았기 때문에 wsgi와 웹서버로 서비스하도록 권장된다고 나와있다.
Django 프로젝트를 배포할 때 사용되는 NGINX가 무엇이며, 웹서버를 왜 사용해야 하는지 설명하시오
nginx란 정적 페이지 요청을 처리하고 웹서버의 구축을 도와주는 소프트웨어이다.
비동기 이벤트를 기반으로 하는 처리방식으로 응답이 빠르고 트래픽 처리에 유리하다.
nginx를 프록시 서버로 사용할 수 있다 클라이언트의 요청을 서버에 분산하기 위한 로드 밸런싱 기능, DDos 공격 완화, 웹서버의 ssl인증도 적용 가능하다.
구니콘만으로 서버를 구축하면 정적인 페이지를 관리할 수 없고 클라이언트와 서버를 분리해
rest-api서버를 구축하여 사용한다고 해도 Nginx를 통해 장점으로 언급한 프록시 서버를 구축해 다양안 보안이점도 얻을 수 있다.
코변
내 것인 줄 알았으나 받은 모든 것이 선물이었다.
팔로우
이전 포스트
장고 50문 50답 -4
0개의 댓글
댓글 작성