본문 바로가기
취대넓얕

[기술면접] 21일차 문답 | Django 기초

by 째깍단 2023. 8. 17.

💡 Django가 무엇인지 설명하시오

 

Django는 오픈소스 프레임워크로, 많은 기본 기능을 제공하여 개발자들이 어플리케이션을 개발하는데에 있어 반복적인 작업을 최소화하고, 쉽고 간결한 코드를 통해 편하게 협업할 수 있는 도구입니다.

개발용 DB인 sqlite가 내장되어있고 ORM을 지원하여 DB 모델링과 작업을 편리하게 처리할 수 있는 장점이 있습니다.

기본적으로 Model-Template-View의 MTV패턴을 따라 디자인되었고, 서버사이드 template engine이 함께 지원되어서 Django만으로도 클라이언트의 요청을 처리하는 서버 로직과 사용자가 사용할 수 있는 인터페이스까지 쉽게 개발할 수 있다는 장점이 있습니다.

+ 보안: 취약점 방어, XSS 공격 방지, CSRF 보호

 

 

 

 

 

💡 Django를 백엔드 스택으로 선정한 이유는 무엇입니까?

 

 첫째로, 쉽고 편하게가 모토인 언어인만큼 짧고 간결한 가독성이 좋은 코드를 사용하므로, 짧은 기간에 기술을 습득하고 빠르게 성장하기에 적절했습니다. 덕분에 코드를 보는 눈이나 로직을 어떻게 만들어가는지 파악하기 수월했습니다.

 두번째로, 장고는 상세하고 친절한 공식문서가 준비되어있고 내장된 기능이 많아 빠른 개발이 가능하며, 새로운 것을 배우는 것을 즐기는 제게 메리트 있게 느껴졌습니다. 프로젝트를 하면서도 필요하다 생각된 기능이 장고에 내장되어 있지 않을까 하고 찾아보면 항상 기능이 있어서 배우는 즐거움을 느낄 수 있었고, 활용하기가 좋았습니다.

 세번째로, 장고 어드민이나 ORM처럼 기본적인 DB와의 상호작용, 데이터 관리 기능 등을 지원하는 것입니다. 생산성이 중요하게 여겨지는 요즘의 개발 문화에 적절한 언어라고 생각하여 배우게 되었습니다.

 

 

 

 

 

💡 Django에는 어떤 장점이 있습니까?

 

1. python 기반 웹 프레임워크여서 python기능 사용 및 다양한 라이브러리를 함께 사용 django ORM을 제공하여, models.py에 작성한 모델로 DB테이블을 자동생성해줌.

 

2. 복잡한 SQL쿼리를 작성하지 않아도 되는 점이 매력적 공식문서가 친절함

 

3. 오픈 소스 프로젝트가 활발히 진행. 여러 자료와 레퍼런스 도움을 받기 좋음

 

4. 자체 template를 제공해 비교적 쉽게 프론트작업 가능 - template에 html을 넣어 연동이 가능하며 특정 조건은 DTL(Django Template Language)를 이용하여 조작이 가능

 

 

- 단점 -

인터프리터 언어이기 때문에 생기는 문제점(가장 크게 보는 것은 속도와 실행될 때까지 에러가 걸러지지 않는 부분)이 있다

 

만들어져있는 기능을 사용할 경우 커스텀이 어려울 수 있다

 

python에 대한 높은 이해도가 필요하다

  • django는 문제를 해결할때 django프레임워크 특화기능보다 python으로 해결하는 편이다
  • gc garbage collection 쓰레기 처리. 메모리 관리 법

 

*** 최신뉴스 

파이썬에서 GIL 삭제된다⋯“병렬 처리의 혁신적 진전”
https://www.itworld.co.kr/news/302737?fbclid=IwAR2NbURoIEV7nXfplTlM3-ut5L6WR9-lwx_enqVhx7JqUsy84sVnKz6E9hM#csidx6300bb0c9bcb526898fd4640c414343 

GIL이란?

https://ssungkang.tistory.com/entry/python-GIL-Global-interpreter-Lock%EC%9D%80-%EB%AC%B4%EC%97%87%EC%9D%BC%EA%B9%8C

 

 

 

 

💡 Django가 다른 Python 웹 프레임워크와 비교되는 특징이 있다면 무엇입니까?

 

Django는 Full-stack framework

 

장고는 많은 부분들이 이미 준비되어있음

  • 기본적인 기능과 각종 패키지들이 모두 포함(DB관리, 인증, 폼처리 등의 기능)
  • 필요한 것을 받아서 원하는대로 조립할 수 있는 프레임워크
  • 풀스택인만큼 사이즈가 크고 비교적 속도가 느림

쉽고 편하게가 모토인 언어답게 짧고 간편한 코드를 작성가능

 

매우 상세하고 친절하게 적힌 공식문서. 공식문서만으로도 적용, 활용하기 좋음

 

장고 어드민 패널을 기본 제공하여 쉽게 CRUD를 가능하게 해줌

 

ORM을 통해 DB와 상호작용을 간소화

  • 간단한 쿼리작성
  • 자동마이그레이션
  • 객체지향적 데이터처리