Django 이해하기

이상해씨·2024년 4월 25일
0

장고 (Django)

목록 보기
38/38

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

  • 프레임워크
    : 코드 주권이 django에게 있음. 즉, 이미 주어진 아키텍처에서 필요에 따라 코드를 사용.

  • 라이브러리
    : 코드의 주권이 나에게 있음. 내가 필요에 따라 코드를 호출하여 사용

  • 서드파티
    : django의 서드파티는 django와 호환이 되는 여러 라이브러리와 프레임워크를 의미. 예전에는 한 서버에서 다양한 언어를 사용할 수 있었으나(모놀리식 코드), 현재 다른 서버를 사용하여 언어를 분류하여 사용할 수 있게 함

서드파티(Django 개발 Flow)

  • 모놀리식
    • 1개의 서버에서 django + html, css, js 등 다양한 언어를 사용하여 프로그래밍
    • 2~3명 소규모 개발팀에 유리. 서비스를 빠르게 만들 수 있음.
    • 분업에 최적화되어 있지 않음. 프론트개발자가 업데이트를 하면 백엔드 개발자가 코드를 분석 및 해체하여 통합.
  • 마이크로식
    • 2개의 서버
      - BE: Django
      - FE: HTML, CSS, JA(react, nextjs)
    • 팀 단위가 5명만 되어도 거의 필수

Django의 장점

  • Django는 라이브러리 생태계가 활발한 것이 큰 장점

  • ORM(Object - Rekation Mapping) : SQL쿼리문을 알지 못하여도, Python 코드만으로 DB 조작할 수 있게 함

  • 서비스 기능에 필요한 대부분의 기능, Admin 기능이 구현되어 있는 풀스택 개발 프레임워크

  • FastAPI나 Flask에 비해 더 무거운 서비스를 만들 때 좋음

  • 취약점테스트로 안정적인 보안 제공

  • MTV 패턴으로 기능을 분리하여 개발

    타 프레임워크 vs Django

  • 워드 프레스

    • 개발 난이도, 가격이 Django보다 적음
    • 클릭 등 상대적으로 쉬운 개발 방법
    • 기본적인 CRUD, 게시판 서비스에 장점
  • Node Express

    • Django는 기본적으로 제공하는 기능이 탁월, but node express는 개발자가 하나하나 구현해야함
  • spring

    • 개발 속도가 느림

Django 설계

  • 느슨한 결합
    • 프레임워크의 각 계층은 필요이전에 서로 호출할 필요없음
    • 각 부분은 독립성을 띄어 필요에 따라 호출하고 재사용할 수 있음
  • 적은 코드
  • 신속 개발
  • 반복하지 말 것 (DRY)
    • 고유한 개념 및 데이터는 한번 한 곳에 존재하는 것으로 충분, 중복성은 나쁘고, 정규화는 좋은 개념으로 봄

django vsc extension

  • black formatter : 문법을 강제 수정. python의 권고사항에 맞지 않은 문법을 강제로 수정해줌
  • django : 자동완성. 대화형 인공지능의 등장으로 중요성이 많이 낮아짐
  • Thunder Client : http request, response test 도구.

참고

profile
공부에는 끝이 없다

0개의 댓글