슈코딩
[기술면접] Django 50문 50답 1~15 본문
⭐1. Django가 무엇인지 설명하시오
- 파이썬을 기반으로하는 웹 프레임워크입니다.
⭐2. Django를 백엔드 스택으로 선정한 이유는 무엇입니까?
- 파이썬을 기반으로 하는 프레임워크중에서 가장 대표적으로 쓰이며,
DB와 Admin페이지, ORM등 기본적으로 제공하는 기능이 편리하여 개발에 유용하기 때문입니다.
⭐3. Django에는 어떤 장점이 있습니까?
- ORM, Admin, permission등 내부 기능이 많아서 숙지하면 빠른개발이 가능하고,
Django 템플릿을 활용하여 프론트엔드 개발도 다른 기술없이 개발이 가능합니다.
⭐4. Django가 다른 Python 프레임워크와 비교되는 특징이 있다면?
- Django의 특징은 기본적으로 제공되는 기능이 많다는 점이고, 파이썬에서 가장 많이 쓰이는 오픈 소스프레임워크이기 때문에 관련 자료가 많은것이 장점입니다. 하지만 기능이 많은 만큼 무겁고 복잡하며, Flask와 비교 했을때 자유도가 떨어집니다.
⭐5. Django 프로세스는 어떤 순서로 동작합니까?
- request가 들어오면 URL에 따라 지정된 view를 호출하고 정해진 response를 보내는 방식으로 작동합니다.
⭐6. Django의 MTV패턴 시스템은 무엇입니까?
- Model-Template-View로 이루어진 패턴으로 Model은 데이터베이스에 저장되는 데이터를 의미하고,
template은 사용자가 시각 적으로 확인할 수 있는 화면 즉, UI를 담당하는 부분이고,
View는 데이터를 가공하고 처리하는 부분을 의미합니다.
⭐7. ORM에 대해서 설명하시오
- Object-Relational Mapping의 약자로 SQL이라는 언어 대신 데이터베이스를 쉽게 다룰 수 있게 하는 방법입니다.
⭐8. Django의 장단점은 무엇입니까?
- 장점: 파이썬 웹프레임워크 중에서 가장 사용자가 많아서 자료 찾기가 편리하며,
RDBMS와의 상호 작용을 완전히 지원하는 기본 내장 ORM이 함께 제공됩니다. - 단점: 무겁고 복잡하며, Flask와 같은 마이크로 프레임워크에 비해 자유도가 떨어집니다.
⭐9. Django Admin은 무엇이고 어떤 기능을 제공합니까?
- Django admin은 django에서 기본으로 제공하는 관리자 기능을 의미합니다.
- DB의 데이터를 조회하거나 추가,수정,삭제를 할 수 있고 커스터마이징을 통해 페이지를
사용성있게 꾸밀 수 있습니다.
⭐10. Django Template Engine은 무엇이고 어떤 기능을 제공합니까?
- Django Template Engine은 Jinja2와 비슷한 Django에서 기본으로 지원하는 템플릿 엔진입니다.
이를 통해 django 템플릿 언어를 사용해서 간편하게 사용자에게 데이터를 보여주고
HTML을 동적으로 생성할 수 있게 됩니다.
⭐11. Django를 통해 CRUD를 구현하는 방법에 대해서 HTTP Method와 함께 설명하시오
- get: 정보 조회 (read)
post: 정보 업로드(create)
put: 정보수정(update)
delete: 정보 삭제(delete)
⭐12. Django에서 테이블을 설계하고 데이터베이스에 반영하는 방법에 대해서 설명하시오
- models.py에 models.Model을 상속해 클래스를 생성하고
charfield, integerfield 등 필드를 사용해 테이블을 설계합니다.
만들어진 테이블은 python manage.py makemigration 명령어로
migration 파일을 생성한뒤 python manage.py migrate로 반영합니다.
⭐13. 회원가입을 할 때 비밀번호를 암호화하여 저장하는 이유는 무엇입니까?
- 해킹에 취약해지기 때문에 유저정보를 다룰 수 있는 비밀번호는 해싱, 암호화해서 저장합니다.
SHA-256표준 해시 알고리즘을 사용
⭐14. JWT에 대해서 설명하시오
- 토큰 기반의 유저 식별 인증 방법으로, 사용자 인증에 필요한 정보를 토큰에 포함합니다.
따라서 별도의 인증 저장소가 필요하지 않습니다.
⭐15. JWT의 Access Token과 Refresh Token은 왜 필요한가요?
- JWT토큰은 token을 가지고 있다는 것을 제외하면 클라이언트 본인이 맞는지 확인할 수단이 없습니다.
따라서 어떤 의미에서는 보안이 취약한데 이를 보안해주는 것이 refresh token의 존재입니다.
설정한 토큰 유효기간이 지나면 access token의 기간이 만료되고 refresh token을 가지고 access token을 새로
발급받아서 token을 유지할 수 있게합니다.
'코딩공부 > 기술면접' 카테고리의 다른 글
[기술면접] Django 50문 50답 31~45 (0) | 2022.10.26 |
---|---|
[기술면접] Django 50문 50답 16~30 (0) | 2022.10.25 |
[신입 기술면접] 기술면접 스터디 정리 3 (0) | 2022.10.22 |
[신입 기술면접] 기술면접 스터디 정리 2 (0) | 2022.10.21 |
[신입 기술면접] 기술면접 스터디 정리 1 (1) | 2022.10.17 |
Comments