[ 웹 페이지와 프레임워크 ]
1. Static web page(정적 웹 페이지)
- 서버가 정적 웹 페이지에 대한 요청을 받은 경우 서버는 추가적인 처리과정 없이 클라이언트에게 응답을 보낸다.
- 모든 상황에서 모든 사용자에게 동일한 정보를 표시한다.
- 일반적으로 HTML5, CSS3, Javascript로 작성된다.
- 이를 flat page라고도 한다.
2. Dynamic web page(동적 웹 페이지)
- 웹 페이지에 대한 요청을 받은 경우 서버는 추가적인 처리과정 이후에 클라이언트에게 응답을 보낸다.
- 동적 웹 페이지는 방문자와 상호작용하기 때문에 페이지의 내용이 달라진다.
- 서버 사이드 프로그래밍 언어(Python, Java, C++등)가 사용되며, 파일을 처리하고 DB와의 상호작용이 이루어진다.
3. Framework
- 프로그래밍에서 특정 운영체제를 위한 응용 프로그램 표준 구조를 구현하는 클래스와 라이브러리의 모음
- 재사용할 수 있는 수많은 코드를 프레임워크로 통합함으로써 개발자가 새로운 애플리케이션을 위한 표준 코드를 다시 작성하지 않아도 프레임워크를 통해 코드를 짤 수 있다.
- Application Framework라고도 한다.
4. Web Framework
- 웹 페이지를 개발하는 과정에서 겪는 어려움을 줄이는 것이 목적이다.
- DB 연동, 템플릿 형태의 표준 관리, 세션 관리, 코드 재사용 등의 기능을 포함한다.
- 동적인 웹 페이지나 웹 어플리케이션, 웹 서비스 개발 보조용으로 만들어지는 애플리케이션 프레임워크의 일종이다.
5. Web
- World Wide Web
- 인터넷 연결된 컴퓨터를 통해 정보를 공유할 수 있는 전 세계적인 정보 공간을 뜻한다.
[ Django의 이해 ]
1. Django란?
- Django는 파이썬으로 작성된 웹 프레임워크이다.
- 웹 사이트를 만들기 위해 일반적으로 필요로 하는 기능들을 가지고 있다.
2. Django의 핵심 기능
(1) 데이터베이스 관리
- 웹 사이트를 구성할 때 데이터베이스에 정보를 입력하고, 저장되어 있는 정보들을 특정 조건에 따라 다시 가져오는 작업은 필수적이다.
- Django는 데이터베이스에 정보를 저장하고, 불러오기 위한 일관적이고 쉬운 방법을 제공한다.
(2) 강력한 관리자 기능
- 개발자는 내부인력이 데이터베이스의 정보들을 조회/추가/수정/삭제할 수 있는 관리자 페이지를 개발해서 제공해야 한다.
이 관리자 페이지를 제작하는 것은 아주 유사한 페이지를 반복적으로 만들어야 하는 소모작업이다.
많은 개발자들은 관리자 페이지를 제작하는 반복 작업을 그다지 좋아하지 않는다.
- Django는 처음부터 이 관리자 기능에 큰 중점을 두고 만들어졌다.
- 약간의 수정만으로도 실제 운영되는 서비스에서도 사용할만한 관리자 페이지를 자동으로 생성해준다.
(3) 보안
- Django는 다양한 보안 장치를 기본적으로 탑재하고 있으며, 숙련자의 경우 자신이 원하는 대로 보안 요소들을 쉽게 추가할 수 있도록 설계되어 있다.
- 실제로 Django가 제공하는 기능을 굳이 비활성화하지 않는다면, Django가 관리하는 영역의 보안은 크게 신경 쓰지 않아도 될 정도이다.
(4) 다양한 내장 기능과 파이썬 확장 기능
(1) 내장 기능
- 데이터베이스 관리
- 이메일 전송
- 언어별 번역 관리
- 로그인/회원가입/비밀번호 변경 등의 인증
- RSS 피드/검색 엔진을 위한 Sitemap 생성
- CSV, PDF 생성 기능
(2) 확장 기능
- 문자 메시지 보내기
- 채팅
- 온라인 결제
- WYSIWYG 에디터
- 모바일 앱(안드로이드,iOS)에 푸시 메시지 발송
[ Django의 디자인 패턴 ]
1. 디자인 패턴
- 소프트웨어 디자인 패턴은 소프트웨어를 개발할 때 공통적으로 발생하는 문제들을 해결하기 위한, 재사용 가능한 해결책이다.
- 실제 코드를 말하는 것은 아니며 코드를 작성하기 위한 일종의 서식이다.
- Django의 MTV 패턴은 유명한 소프트웨어 디자인 패턴인 MCV와 같은 패턴이며, 부르는 명칭에만 차이가 있다.
2. MTV 패턴
Model - Template - View는 디자인 패턴의 일종이며, Django에서 역할에 따라 코드를 분리하는 가이드로 사용한다.
2.1 Model [ 데이터베이스 정의 ]
- 모델(Model)은 Django와 데이터베이스를 연결시켜주는 코드이며 데이터의 형태를 나타낸다.
- 일반적으로 각각의 모델은 데이터베이스 테이블과 매핑된다.
- 파이썬의 클래스를 사용한다.
2.2 Template [ 화면 UI 정의 ]
- 템플릿(Template)은 웹 브라우저로 돌려줄 코드이며, 사용자에게 제공될 결과물의 형태를 나타낸다.
- HTML을 사용해서 나타내며, Django에서는 templates 디렉터리 내에 HTML 파일을 사용한다.
2.3 View [ 로직 정의 ]
- 사용자의 요청을 받아 처리하는 웹 사이트로의 로직을 가지는 코드이다.
- 파이썬의 함수를 사용한다.
+ URLconf [ URL 정의 ]
- 클라이언트로부터 받은 요청에 들어있는 URL이 urls.py파일에 정의된 URL 패턴과 매칭되는지 분석한다.
- 파이썬의 URL정의 방식은 직관적이고 이해하기 쉽다.
'5. 방학 활동 > Write UP' 카테고리의 다른 글
[2023.07.30] 워게임 문제풀이(2) - 3 (0) | 2023.08.01 |
---|---|
[2023.07.30] I.Sly() 홈페이지 제작 - 2 (0) | 2023.08.01 |
[2023.07.23] 워게임 문제풀이(2) - 2 (0) | 2023.07.24 |
[2023.07.16] 워게임 문제풀이(2) - 1 (0) | 2023.07.17 |
[2023.2.10] 공모전 스터디 2주차 (0) | 2023.02.28 |