💡 Django Admin은 무엇이고 어떤 기능을 제공합니까?
Django admin은 Django에서 기본으로 제공하는 관리 기능으로 데이터베이스 모델에 대해 데이터를 CRUD 할 수 있다.
필요한 경우 admin page에 대한 커스터마이징이 가능하다.
django-admin은 DB모델 기반 관리자 인터페이스 자동 생성, 다국어 지원, 커스터마이징의 특징이 있다. 커스터마이징은 필드 숨기기, 커스텀 액션 추가, 커스텀 뷰가 가능하다.
admin page의 기능은 폼 기반 CRUD 작업, 특정 조건에 따라 데이터 검색과 필터링을 수행, 모델 간의 관계를 관리, 관리자 인터페이스의 접근을 제한하거나 특정 유저가 특정 기능에 대한 접근을 하는 보안 기능을 제공
💡 Django Template Engine은 무엇이고 어떤 기능을 제공합니까?
Django에서 제공하는 서버 사이드 템플릿 엔진으로 간단한 Template 작성 툴
DB, API에서 가져온 데이터를 HTML에서 코드를 작성하고 웹을 구현할 수 있도록 돕는다.
Django Template Engine이 있어 Django만으로 프론트와 백엔드를 분리하지않고 웹을 전부 구현할 수 있다.
*** 템플린 엔진이란 : 템플릿 양식과 특정 데이터 모델에 따른 입력자료를 합성, 결과 문서를 출력하는 소프트웨어 컴포넌트를 말함
*** 템플릿 엔진의 종류 : 레이아웃 / 텍스트 / 서버사이드 / 클라이언트 템플릿 엔진 등
*** 서버 사이드(server-side): 네트워크의 한 방식인 클라이언트-서버 구조의 서버 쪽에서 행해지는 처리
*** 서버사이드 템플릿 엔진 :
서버에서 DB, API에서 가져온 데이터를 HTML에 넣은 코드를 따라 그려 넣고 클라이언트에 전달해주는 역할
html에서 고정적으로 사용되는 부분은 템플릿으로 만들고 동적으로 생성되는 부분만 템플릿의 특정 장소에 끼워넣는 방식으로 동작
- 작동 순서 :
1) 서버가 클라이언트 요청을 받음
2) 필요한 데이터를 가져옴
3) 미리 정의된 template에 해당 데이터를 적절하게 입력함
4) 서버에서 데이터가 반영된 template = HTML 을 그림
5) HTML을 클라이언트에게 전달함
[참고] : https://usefultoknow.tistory.com/entry/템플릿-엔진Template-Engine-이란
💡 Django를 통해 CRUD를 구현하는 방법에 대해서 HTTP Method와 함께 설명하시오
- get: 정보 조회 Read
- post: 정보 생성 Create (DB에 정보 업로드!)
- put: 정보 수정 Update
- delete: 정보 삭제 Delete
함수형으로 구현하는 방법과 클래스 뷰형으로 구현하는 방법이 있다.
함수형으로 구현할 경우 일일이 request.GET 처럼 해당 메소드를 정의해주어야하는 번거로움이 있지만 틀이 없어 비교적 자유롭게 작성할 수 있다. 클래스 뷰형으로 구현하는 경우 클래스명을 정의하고 하위 함수로 get, post, put, delete를 정의하여 해당 기능을 구현한다.
함수형 뷰와 클래스형 뷰는 두가지 모두 CRUD를 작성하므로 로직에는 차이가 없지만 확장성 / 코드 작성의 자유도에서 차이가 나므로 적절한 것을 골라서 적용하도록 한다.
💡 Django에서 테이블을 설계하고 데이터베이스에 반영하는 방법에 대해서 설명하시오
앱의 models.py에서 정의한 모델과 필드가 데이터베이스 테이블을 설계한 것이다.
모델 클래스를 정의하고 makemigrations, migrate 명령어를 통해 모델의 변경사항을 DB에 알리고 반영한다.
💡 회원가입을 할 때 비밀번호를 암호화하여 저장하는 이유는 무엇입니까?
암호화를 하지 않으면 비밀번호가 데이터베이스에 그대로 저장되기 때문에 보안과 개인정보 보호를 위해 암호화는 필수이며,
암호화를 통해 해커에 의해 정보가 탈취되더라도 정확한 정보를 확인할 수 없도록 한다.
'취대넓얕' 카테고리의 다른 글
[기술면접] 19일차 문답 | permission_classes, Django DB (0) | 2023.08.14 |
---|---|
[기술면접] 18일차 문답 | TDD, DRF 기본기 (0) | 2023.08.11 |
[기술면접] 16일차 문답 | JWT, 쿠키 세션 토큰 (0) | 2023.08.09 |
[기술면접] 15일차 문답 | WSGI ASGI CGI, Gunicorn Nginx (0) | 2023.08.08 |
[기술면접] 14일차 문답 | Django MVT, 프로세스 (0) | 2023.08.07 |