오늘 숙제였다.
IP(Internet Protocol)
는 인터넷 상에서 컴퓨터가 서로 통신할 수 있도록 하는 프로토콜입니다. 각각의 컴퓨터는 IP 주소를 가지고 있으며, 이를 통해 인터넷 상에서 다른 컴퓨터와 통신합니다. 예를 들어, 192.168.0.1
은 하나의 IP 주소입니다.
하지만, IP 주소는 기억하기 어렵고, 변경될 수 있습니다. 따라서, 도메인(Domain)
이라는 개념이 등장하게 되었습니다. 도메인은 IP 주소와 일대일 대응되는 인터넷 상의 이름입니다. 예를 들어, www.google.com
과 같은 도메인 이름은 실제로는 IP 주소와 대응되어 있으며, 이를 통해 사용자는 더 쉽게 웹사이트에 접속할 수 있습니다.
클라이언트(Client)
는 서비스를 이용하는 사용자 또는 사용자가 사용하는 디바이스를 의미합니다. 예를 들어, 브라우저를 사용해 웹사이트에 접속하는 사용자가 클라이언트입니다.
서버(Server)
는 클라이언트에게 서비스를 제공하는 컴퓨터 시스템을 의미합니다. 웹사이트의 경우, 사용자의 요청에 대해 해당 웹사이트의 데이터를 제공하는 컴퓨터 시스템이 서버입니다.
정적 웹 사이트(Static web site)
는 고정된 컨텐츠를 제공하는 웹 사이트를 의미합니다. 즉, 웹 페이지가 항상 같은 형태와 내용을 유지하며, 사용자가 요청하는 정보를 서버에서 동적으로 생성하지 않습니다. 정적 웹 사이트는 HTML
, CSS
, JavaScript
등의 파일로 이루어져 있습니다. 대표적인 예시로는 블로그, 포트폴리오 웹사이트 등이 있습니다.
반면, 동적 웹 사이트(Dynamic web site)
는 사용자의 요청에 따라 적합한 컨텐츠를 서버에서 동적으로 생성하는 웹 사이트를 의미합니다. 예를 들어, 사용자가 요청하는 정보에 따라 데이터베이스에서 필요한 정보를 조회하여 웹 페이지를 생성합니다. 대표적인 예시로는 SNS, 쇼핑몰, 검색 엔진 등이 있습니다.
Django
는 파이썬 언어로 작성된 웹 프레임워크입니다. Django
를 사용하면 동적 웹 사이트를 쉽게 개발할 수 있습니다. 데이터베이스와 연동하여 적절한 데이터를 조회하고, 템플릿을 사용하여 동적으로 웹 페이지를 생성하는 등의 기능을 제공합니다. 따라서, Django
는 동적인 웹 애플리케이션을 개발하기 위한 도구입니다.
HTTP(Hypertext Transfer Protocol)
는 인터넷 상에서 데이터를 주고받는 프로토콜입니다. 클라이언트가 서버에게 요청(Request)을 보내면, 서버는 해당 요청을 처리하여 응답(Response)을 클라이언트에게 전송합니다. 요청과 응답 메시지는 다음과 같은 구성요소로 이루어져 있습니다.
요청(Request) 메시지
: 요청 라인, 헤더(Header), 본문(Body)으로 구성됩니다. 요청 라인은 요청의 종류(GET, POST, DELETE 등), 요청할 리소스의 경로, HTTP 버전 등을 포함합니다. 헤더는 클라이언트와 서버 간의 추가 정보를 전송합니다. 본문은 요청 메시지와 함께 전송할 데이터를 포함합니다.
응답(Response) 메시지
: 상태 라인, 헤더, 본문으로 구성됩니다. 상태 라인은 요청에 대한 처리 결과를 나타냅니다. 상태 코드는 1XX(정보)
, 2XX(성공)
, 3XX(리다이렉션)
, 4XX(클라이언트 오류)
, 5XX(서버 오류)
로 구분됩니다. 헤더는 클라이언트와 서버 간의 추가 정보를 전송합니다. 본문은 응답과 함께 전송할 데이터를 포함합니다.
프레임워크(Framework)
는 애플리케이션을 개발할 때 사용하는 라이브러리, 모듈, 함수 등이 미리 정의되어 있어 개발자가 보다 쉽게 애플리케이션을 개발할 수 있도록 도와주는 도구입니다. 프레임워크는 일반적으로 MVC(Model-View-Controller) 아키텍처 패턴
을 따릅니다. 대표적인 서버 사이드 웹 프레임워크로는 Flask
, Django
, Ruby on Rails
등이 있습니다.
작성: ChatGPT