본문 바로가기

CS 백엔드

[CS] 백엔드 (추가중) - Django, Python

CRUD

  본적인 데이터 처리 기능인 Create(생성), Read(읽기), Update(갱신), Delete(삭제)를 묶어서 일컫는 말이다.


MTV와 MVC

MVC ->

  • Model, View, Controller 로써 각 요소들이 서로 영향을 미치지 않게 하는 패턴
  • Model -> DB관련 어플리케이션의 데이터를 나타내고 백그라운드 로직들을 처리함
  • View -> 사용자가 보게 될 화면
  • Controller -> 사용자의 입력과 요청에 관한 처리를 Model에 의뢰함

MTV ->

  • Model, Template, View
  • Model -> 유저가 사용할 데이터를 정의하고 관리하는데 DB에 저장되는 데이터를 의미. 모델은 클래스로 정의되며 하나의 클래스가 하나의 DB Table가 됩니다. 또한, SQL 대신 장고의 ORM 기능을 지원하기 때문에 DB 조작이 더 쉬움.
  • Template -> 사용자에게 보여지는 화면에 해당한다.
  • View -> 요청에 따라 적절한 로직을 수행하여 결과를 템플릿을 렌더링 하거나 데이터를 주고 받음.

페이지는 템플릿 코드 상태로 존재하는데, 템플릿 시스템은 해당 코드를 해석해 HTML, XML 등의 템플릿 파일로 변환한다 -> 이 과정을 랜더링이라고 한다.

MTV


함수형 뷰와 클래스형 뷰

함수형 뷰 ->

  • 신속한 개발이 가능하지만, 확장 및 재사용성이 어렵다.
  • 가독성이 좋다.
  • request.method == 'GET' 와 비슷한 메서드 조건을 달고 로직을 구성해야한다. (데코레이터 사용이 필요)

 

클래스형 뷰 ->

  • 상속과 믹스인 기능을 사용하여 코드 재사용이 용이
  • 뷰를 체계적으로 구성이 가능.
  • 제네릭 뷰 시스템. -> 개발 시 자주 사용하는 기능에 대해서 반복되는 공통 부분을 패턴화 하여 사용하기 쉽게 추상화 해둔 것. 어떤 모델을 사용할 것인지만 지정해주면 나머지는 모두 상위 클래스가 모든걸 알아서 해준다.
  • 가독성이 안좋다.