본문 바로가기

5. 방학 활동/Write UP

[2023.07.22] I.Sly() 홈페이지 제작 - 1

[ 웹 페이지와 프레임워크 ]

 

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정의 방식은 직관적이고 이해하기 쉽다.