[day-32] Django 기본

Joohyung Park·2024년 2월 21일
0

[모두연] 오름캠프

목록 보기
58/95

Django?

파이썬으로 작성된 오픈 소스 웹 프레임워크이다.

프레임워크, 라이브러리, 서드파티

  • 프레임워크 : 코드의 주권이 나에게 있지 않고 설계도면대로 내 코드를 부품처럼 사용하는 것
  • 라이브러리 : 코드의 주권이 나에게 있고 내가 코드를 호출해서 사용하는 것
  • 서드파티 : Django 서드파티라고 하면 Django와 호환되는 여러 라이브러리 + 프레임워크를 뜻함

Django 개발 flow 선택

ChatGPT의 코드는 대부분 모놀리식 코드!

모놀리식

  • 1개의 서버에서 Django + HTML, CSS, JS
    • 2 ~ 3명 소규모 개발팀에 유리합니다. 서비스를 엄청 빠르게 런칭할 수 있음

마이크로식

  • 2개의 서버
    • BE 서버: Django
    • FE 서버: HTML, CSS, JS(바닐라js, React, nextjs)
    • 팀 단위가 5명 정도만 되어도 마이크로식은 거의 필수

Django의 특징

  • ORM(Object-Relational Mapping) : 파이썬 코드만 알아도(DB 쿼리를 몰라도) 웬만한 서비스는 만들 수 있음
    • but 백엔드 개발자라면 DB 쿼리를 반드시 알아야 함
  • 서비스 구현에 필요한 대부분의 기능이 구현되어 있으며 Admin 페이지까지 기본적으로 구현이 되어있는 풀스택 개발 프레임워크
  • 보안 : 취약점 테스트를 통한 안정성이 검증된 보안 기능 제공
  • MTV 패턴 : Model-Template-View 패턴을 가지고 있어, 기능을 분리하여 개발 가능
    • Model : DB와 상호작용 하는 컴포넌트
    • Template : 사용자에게 보여지는 HTML, CSS, JS 등
    • View : HTTP 요청 처리 및 Model과 Template 연결

다른 프레임워크와 차이점

  • 워드프레스 vs Django : 기본적인 CRUD와 같은 게시판 형태의 서비스라면 워드 프레스가 훨씬 좋지만 아니라면 Django
  • Node Express vs Django : Django는 설치만 해도 Admin 페이지가 나오지만 Express는 직접 개발해야 함
  • Spring vs Django : Spring은 세팅하는데 Django는 개발이 완료된다는 소리가 있다. 그만큼 속도 차이가 많이 난다.

Django의 설계 철학

  1. 느슨한 결합

    • Django는 편의성을 위해 풀스택으로 제공되지만, 스택의 각 부분은 가능한 한 독립성을 지님. 프레임워크의 각 계층은 정말 필요하기 전에는 서로 알지 못함
  2. 적은 코드

    • 최소한의 코드를 사용하며, 틀에 박힌 코드를 배제. 인트로스펙션(실행시에 Object에 관한 정보를 알아내는 것)과 같은 파이썬의 동적 기능을 최대한 활용
  3. 신속한 개발

  4. DRY(반복 x)

    • 고유한 개념 및 데이터는 단 한 번, 단 한 곳에 존재. 정규화. 최소한의 것들로 최대한의 것을 만듬
profile
익숙해지기 위해 기록합니다

0개의 댓글