본문 바로가기
  • 살짝 구운 김 유나
Web/Django

Django 이해하기

by yunae 2022. 8. 30.

'웹 서비스 개발' 에는 무엇이 필요할까?

로그인, 로그아웃, 회원관리, DB, 서버, 클라이언트 보안 등 많은 기술들이 필요함
-> 이 모든 걸 직접 만들 필요는 없음

" 잘 만들어진 것들을 가져다가 좋은 환경에서 잘 쓰기만 하자! "

 

Framework

: 서비스 개발에 필요한 기능들을 미리 구현해서 모아 놓은 것. 뼈대가 되는 것
- 특정 프로그램을 개발하기 위한 여러 도구들과 규약을 제공

-> 프레임워크를 잘 사용하기만 하면 내가 만들고자 하는 본질에 집중할 수 있음
-> 소프트웨어의 생산성과 품질 높임

 

"서버를 구현하는 웹 프레임워크 - Django"

: python으로 작성된 프레임 워크 (python이라는 언어의 강력함과 거대한 커뮤니티)
- 안정적인 서비스
- 수많은 여러 유용한 기능


WWW
(World Wide web): 전 세계에 퍼져 있는 거미줄 같은 연결망= 우리가 인터넷을 이용한다는 건, 전세계의 컴퓨터가 연결되어 있는 하나의 인프라를 이용하는 것




클라이언트와 서버

오늘날 우리가 사용하는 대부분의 웹서비스는 클라이언트-서버 구조를 기반으로 동작
클라이언트와 서버 역시 하나의 컴퓨터이며 이들이 어떻게 상호작용하는지에 대한 간소화된 다이어그램은 다음과 같다



1. 클라이언트
: 웹 사용자의 인터넷에 연결된 장치 (예를 들어 wi-fi에 연결된 컴퓨터 또는 모바일)
- 서비스를 요청하는 주체

2. 서버
: 웹 페이지, 사이트 또는 앱을 저장하는 컴퓨터
- 클라이언트가 웹 페이지에 접근하려고 할 때 서버에서 클라이언트 컴퓨터로 웹페이지 데이터를 응답해 사용자의 웹 브라우저에 표시됨
- 요청에 대해 서비스를 응답하는 주체



Web browser & Web page


웹브라우저?

: 웹에서 페이지를 찾아 보여주고, 사용자가 하이퍼링크를 통해 다른 페이지로 이동할 수 있도록 하는 프로그램
+ 웹 페이지 파일을 우리가 보는 화면으로 바꿔주는 rendering


웹페이지?

: 웹에 있는 문서. 우리가 보는 화면 각각 한 장 한 장이 웹 페이지

1. 정적 웹 페이지
: 우리가 지금까지 작성한 웹 페이지이며 한 번 작성된 HTML 파일의 내용이 변하지 않고 모든 사용자에게 동일한 모습으로 전달되는 것
== 서버에 미리 저장된 HTML 파일 그대로 전달된 웹 페이지
== 같은 상황에서 모든 사용자에게 동일한 정보를 표시

2. 동적 웹 페이지
: 사용자의 요청에 따라 웹 페이지에 추가적인 수정이 되어 클라이언트에게 전달되는 웹 페이지
- 웹 페이지의 내용을 바꿔주는 주체 == 서버
-> 서버에서 동작하고 있는 프로그램이 웹 페이지를 변경해 줌



Design Pattern


Design Pattern?

: 소프트웨어 관점에서 각기 다른 기능을 가진 다양한 응용 소프트웨어를 개발할 때 공통적인 설계 문제가 존재
-> 해결책 사이에도 공통점이 있다는 것을 발견 (pattern)

목적
- 특정 문맥에서 공통적으로 발생하는 문제에 대해 재사용 가능한 해결책을 제시
- 발생하는 공통된 문제들을 해결하는데 형식화 된 가장 좋은 관행

" 다수의 엔지니어들이 일반화된 패턴으로 소프트웨어 개발을 할 수 있도록 한 규칙, 커뮤니케이션의 효율성을 높이는 기법"


Django에서의 디자인 패턴 - MTV


1. Model
- MVC 패턴에서 Model의 역할에 해당
- 데이터와 관련된 로직을 관리
- 응용프로그램의 데이터 구조를 정의하고 데이터베이스 기록을 관리

2. Template
- 레이아웃과 화면을 처리
- 화면상의 사용자 인터페이스 구조와 레이아웃을 정의
- MVC 패턴에서 View의 역할에 해당

3. View
- Model & Template과 관련한 로직을 처리해서 응답을 반환
- 클라이언트의 요청에 대해 처리를 분기하는 역할
- MVC 패턴에서 Controller 에 해당

 

 

새끼 손톱 깎다가 어디론가 사라지는 경우가 있는데 꼭 그거 같네 ㅎ 귀여운 달

나를 위한 모든 사람의 마음이 지치지 않았으면 하는 바램은 욕심이겠다.

'Web > Django' 카테고리의 다른 글

Django Model 2 - QuerySet API  (0) 2022.09.02
Form Data 보내고 가져오기  (0) 2022.09.02
Templates Inheritance  (0) 2022.09.01
Django Model 1  (0) 2022.08.31
Django 시작하기  (0) 2022.08.30

댓글