TIL - Django - Introduction to Django

김영훈·2021년 3월 24일
0

Django

목록 보기
1/11

# 프레임워크(Framework)

  • 프레임워크와 라이브러리(Library)의 차이점

    • 프레임워크

      프레임워크는 뼈대기반구조를 뜻하며, 소프트웨어에서의 프레임워크는 '소프트웨어의 특정 문제를 해결하기 위해서 상호 협력하는 클래스와 인터페이스의 집합' 이라 할 수 있다.

    • 라이브러리

      라이브러리는 단순 활용 가능한 도구들의 집합을 말합니다. 즉, 개발자가 만든 클래스에서 호출하여 사용, 클래스들의 나열로 필요한 클래스를 불러서 사용하는 방식을 취하고 있습니다.
      출처: https://webclub.tistory.com/458 [Web Club]

    • 프레임워크와 라이브러리의 차이점

      • 프레임워크와 라이브러리의 가장 큰 차이점은 사용자와 맺는 관계 형식에 있다. 프레임워크는 애플리케이션의 흐름을 제어하는 부분에 있어서 사용자보다 우월적 위치에 있다. 즉 사용자는 프레임워크로부터 종속적인 관계에 놓여있다. 그 때문에 사용자는 프레임워크의 규칙을 준수해야 하며, 이를 위해 프레임워크에 대한 초기 공부가 필수이다.

      • 프레임워크의 기능은 반복을 통해 쉽게 익숙해질 수 있는 영역이다. 반면, 문제 해결을 위한 논리적 흐름과 절차에 대한 이해는 쉽게 익힐 수 있는 게 아니므로, Django의 공부 방향도 프레임워크의 기능 습득보단 이해에 초점을 맞춰야 함.

# Django

  • 2세대 프레임워크
  • Django를 통해 데이터생성, 수정, 삭제하며, 이러한 데이터를 가져와서 템플릿에 전달되도록 관리하는 것이 백엔드 엔지니어가 하는 업무의 대부분을 차지함
  • Django는 ORM을 사용하기 때문에, SQL Query문을 사용하지 않아도 된다는 장점을 가지고 있다.

# M.V.T 패턴

  • Model
    • 데이터베이스에 저장되는 데이터를 의미
  • View
    • 프로그램이 실질적으로 동작하여 데이터를 가져오고, 가져온 데이터를 적절하게 처리한 결과를 템플릿에 전달하는 역할을 수행한다.
  • Template
    • 사용자에게 보이는 UI(User Interface)

# Django 작동 과정

  • client가 요청을 보낸 뒤 응답을 받기까지의 과정을 통해 django가 작동하는 흐름을 이해해보자.

  • URLS(urls.py): url을 통한 HTTP 요청을 적절한 뷰(view)로 보내주기 위해 사용된다.

  • View(views.py): 로직을 만드는 곳으로 모델에서 필요한 정보를 받아와서 로직을 작성하고, 템플릿에 전달하는 역할

  • Model(models.py): 데이터 서비스제공하는 역할을 을 하며, models.py 모듈 안에 하나 이상의 모델 클래스를 정의할 수 있으며, 하나의 모델 클래스는 데이터베이스에서 하나의 테이블에 해당한다.

  • Template(<filename>.html): View로부터 전달받은 데이터의 내용을 보여줄 실제 화면의 디자인레이아웃을 정의

# CRUD

  • 데이터를 처리하는 네 가지 방식으로 Create(생성), Read(읽기), Update(갱신), Delete(삭제)를 묶어서 일컫는 말이다. Django web framework를 활용한 application 개발에서 필수적으로 작동해야 하는 기능이다.

# ORM(객체-관계 매핑)

  • 객체와 관계형 데이터베이스의 데이터를 자동으로 매핑(연결)해주는 것을 뜻함
  • 객체 지향 프로그래밍은 클래스를 사용하고, 관계형 데이터베이스는 테이블을 사용하기 때문에 객체 모델과 관계형 모델 간의 불일치가 존재함. ORM을 통해 이러한 불일치를 해결할 수 있다.
  • DjangoORM을 사용하여 데이터베이스의 데이터를 생성하거나, 읽거나, 갱신하거나, 삭제한다.(CRUD)
  • ORM을 활용하면 테이블에서 데이터를 CRUD할 때, SQL 쿼리를 입력할 필요 없이 각각의 프로그래밍 언어 내에서 해결하는 것이 가능해진다.
profile
Difference & Repetition

0개의 댓글