학습 내용 요약
- Framwork
- Django
1) 설명
웹 프레임워크(web framework, WF) 또는 웹 애플리케이션 프레임워크(web application framework, WAF)는 동적인 웹 페이지나, 웹 애플리케이션, 웹 서비스 개발 보조용으로 만들어지는 애플리케이션 프레임워크의 일종이다. 웹 페이지를 개발하는 과정에서 겪는 어려움을 줄이는 것이 주 목적으로 통상 데이터베이스 연동, 템플릿 형태의 표준, 세션 관리, 코드 재사용 등의 기능을 포함하고 있다. - 위키백과
내용이 뭔가 많은데, 쉽게 말해 웹 서비스 개발을 보다 쉽게 할 수 있도록 만들어진 틀이라고 보면 되겠다.
2) 종류
다양한 프로그래밍 언어별로 프레임워크가 있는데, 다음의 것들이 유명하다.
이중 나는 우선 파이썬 웹 프레임워크를 사용할텐데, 지금까지 사용해 온 Flask와 이번에 배울 Django를 간단히 비교해보자.
1) 특징
파이썬을 기반으로 하는 웹 프레임워크로써 익히기 쉽고, 개발 속도도 빠르며, 코드 완성도를 높게 유지할 수 있다는 파이썬의 장점을 갖고 있다.
하지만, 인터프리터 언어인 파이썬의 단점을 똑같이 가지는데, 코드 한줄씩 실행되기 때문에 속도가 늦고 만들어진 라이브러리를 사용하는 경우가 많아 마음대로 커스텀하기가 어렵다.
2) 구성
(1) 구조
장고는 MVT 구조를 갖는다. 여기서 M은 Model, V는 View, T는 Template이다.
(2) ORM
Object Relational Mapping의 약자로 객체와 관계형 데이터베이스를 연결해주는 것을 의미한다. 쉽게 말해, 데이터베이스의 테이블을 객체처럼 사용할 수 있도록 한다는 것이다.
기본 흐름을 보자면, 파이썬으로 데이터베이스 클래스 모델 생성하고, 모델 바탕으로 자동으로 DB 다룰 수 있도록 한다. 즉, DB 쿼리를 작성할 필요가 없다는 것이다. 예를 들면, 이렇게 모델을 생성한다.
class Post:
id = IntegerField()
title = CharField()
author = CharField()
context = TextField()
그리고 이런 식으로 사용한다.
Post.objects.all()
앞으로 장고에 대해 더 자세히 배울테니 오늘은 간단한 개념과 구성을 알아보는 정도로 마무리 한다.
어렵거나 완전히 이해 못한 내용
장고는 처음 들어보고 써보는 것이고, 지금까지 배웠던 구조와 달라서 약간 혼란이 왔다. 간단한 실습을 통해 웹페이지를 띄우는 작업을 했지만, 아직 그 흐름이 완전히 이해되지는 않았다. 좀 더 실습하고 써보면서 감을 익힐 필요가 있다.
참고 자료
https://namu.wiki/w/%EC%9B%B9%20%ED%94%84%EB%A0%88%EC%9E%84%EC%9B%8C%ED%81%AC
https://brunch.co.kr/@toktokhandev/12
https://daeguowl.tistory.com/171
https://dev-yakuza.posstree.com/ko/django/orm/