학습 목표
- 웹 프로그래밍 전반에 공통적으로 적용되는 이론을 학습한다.
- Django 웹 개발의 특징을 이해한다.
네트워크 ( Network )
본래는 컴퓨터들이 통신 기술을 이용하여 그물망처럼 연결된 통신 이용 형태를 뜻함.
특정 기기( 컴퓨터, 휴대폰 ) 등만이 아니라 현재는 IOT화로 인해 세상 모든 것이 네트워크로 연결됨 → 인터넷 뿐만 아니라 네트워크에 존재하는 모든 사물을 모니터링, 사용 가능
Client & Server
Client → 서버의 데이터를 받기 위한 고객 ( 기기 내의 웹 브라우저, 앱, 터미널)
Server → 어떠한 데이터가 모여있는 곳, HTTP 프로토콜을 통해 client의 request에 response !
protocol : 데이터 통신을 위한 기기와 기기 사이의 약속!
HTTP 프로토콜의 특징
1.
클라이언트에서 서버에 데이터를 요청( request ), url로 연결
2.
요청에 따른 작업, 데이터 가공
3.
클라이언트에 응답( response )
4.
연결 해제( 과부하 막기 위함 ) → 연결 정보 유지를 위해 쿠키 또는 세션 이용
데이터가 기기에 남으면 쿠키, 서버에 남으면 세션
HTTP 처리 방식
Client Server
Server DataBase
GET vs POST
URL
→ 복잡하고 가독성이 떨어지는 기본 형태 대신 URL 맵핑으로 간결하게!
가독성이 좋을 뿐만 아니라, 경로 노출을 방지하기 때문에 보안 상의 문제도 막을 수 있음!
REST와 Django url 맵핑
REST 방식의 url → URLconf ( urls.py )에서 규칙을 정해 특정 url과 기능(함수)을 '연결'
search/<str:today>/weather — 함수 호출 → view.weather(request, today)
search/<str:sport>/movie — 함수 호출 → view.movie(request, sport)
서버 구성
웹 서버
애플리케이션 서버
이 안에서도 이미지, 데이터베이스, 메일 등으로 하드웨어적인 분리 가능
→ 개발 및 유지보수 비용은 높지만 메모리 효율성, 퍼포먼스 증대 가능