서버의 이해

imseongjoo·2023년 3월 20일
0
post-thumbnail

오늘 숙제였다.

1. IP와 도메인은 무엇일까요?

참고 문서

IP(Internet Protocol)는 인터넷 상에서 컴퓨터가 서로 통신할 수 있도록 하는 프로토콜입니다. 각각의 컴퓨터는 IP 주소를 가지고 있으며, 이를 통해 인터넷 상에서 다른 컴퓨터와 통신합니다. 예를 들어, 192.168.0.1은 하나의 IP 주소입니다.

하지만, IP 주소는 기억하기 어렵고, 변경될 수 있습니다. 따라서, 도메인(Domain)이라는 개념이 등장하게 되었습니다. 도메인은 IP 주소와 일대일 대응되는 인터넷 상의 이름입니다. 예를 들어, www.google.com과 같은 도메인 이름은 실제로는 IP 주소와 대응되어 있으며, 이를 통해 사용자는 더 쉽게 웹사이트에 접속할 수 있습니다.

2. 클라이언트와 서버는 무엇일까요?

참고 문서 1

참고 문서 2

클라이언트(Client)는 서비스를 이용하는 사용자 또는 사용자가 사용하는 디바이스를 의미합니다. 예를 들어, 브라우저를 사용해 웹사이트에 접속하는 사용자가 클라이언트입니다.

서버(Server)는 클라이언트에게 서비스를 제공하는 컴퓨터 시스템을 의미합니다. 웹사이트의 경우, 사용자의 요청에 대해 해당 웹사이트의 데이터를 제공하는 컴퓨터 시스템이 서버입니다.

3. 정적 웹 사이트와 동적 웹 사이트의 차이점은 무엇일까요? Django는 무엇을 위한 도구인가요?

참고 문서

정적 웹 사이트(Static web site)는 고정된 컨텐츠를 제공하는 웹 사이트를 의미합니다. 즉, 웹 페이지가 항상 같은 형태와 내용을 유지하며, 사용자가 요청하는 정보를 서버에서 동적으로 생성하지 않습니다. 정적 웹 사이트는 HTML, CSS, JavaScript 등의 파일로 이루어져 있습니다. 대표적인 예시로는 블로그, 포트폴리오 웹사이트 등이 있습니다.

반면, 동적 웹 사이트(Dynamic web site)는 사용자의 요청에 따라 적합한 컨텐츠를 서버에서 동적으로 생성하는 웹 사이트를 의미합니다. 예를 들어, 사용자가 요청하는 정보에 따라 데이터베이스에서 필요한 정보를 조회하여 웹 페이지를 생성합니다. 대표적인 예시로는 SNS, 쇼핑몰, 검색 엔진 등이 있습니다.

Django는 파이썬 언어로 작성된 웹 프레임워크입니다. Django를 사용하면 동적 웹 사이트를 쉽게 개발할 수 있습니다. 데이터베이스와 연동하여 적절한 데이터를 조회하고, 템플릿을 사용하여 동적으로 웹 페이지를 생성하는 등의 기능을 제공합니다. 따라서, Django는 동적인 웹 애플리케이션을 개발하기 위한 도구입니다.

4. HTTP는 무엇이고 요청과 응답 메시지 구성은 어떻게 되나요?

참고 문서

HTTP(Hypertext Transfer Protocol)는 인터넷 상에서 데이터를 주고받는 프로토콜입니다. 클라이언트가 서버에게 요청(Request)을 보내면, 서버는 해당 요청을 처리하여 응답(Response)을 클라이언트에게 전송합니다. 요청과 응답 메시지는 다음과 같은 구성요소로 이루어져 있습니다.

요청(Request) 메시지: 요청 라인, 헤더(Header), 본문(Body)으로 구성됩니다. 요청 라인은 요청의 종류(GET, POST, DELETE 등), 요청할 리소스의 경로, HTTP 버전 등을 포함합니다. 헤더는 클라이언트와 서버 간의 추가 정보를 전송합니다. 본문은 요청 메시지와 함께 전송할 데이터를 포함합니다.

응답(Response) 메시지: 상태 라인, 헤더, 본문으로 구성됩니다. 상태 라인은 요청에 대한 처리 결과를 나타냅니다. 상태 코드는 1XX(정보), 2XX(성공), 3XX(리다이렉션), 4XX(클라이언트 오류), 5XX(서버 오류)로 구분됩니다. 헤더는 클라이언트와 서버 간의 추가 정보를 전송합니다. 본문은 응답과 함께 전송할 데이터를 포함합니다.

5. 프레임워크는 무엇일까요?

참고 문서

프레임워크(Framework)는 애플리케이션을 개발할 때 사용하는 라이브러리, 모듈, 함수 등이 미리 정의되어 있어 개발자가 보다 쉽게 애플리케이션을 개발할 수 있도록 도와주는 도구입니다. 프레임워크는 일반적으로 MVC(Model-View-Controller) 아키텍처 패턴을 따릅니다. 대표적인 서버 사이드 웹 프레임워크로는 Flask, Django, Ruby on Rails 등이 있습니다.

추천 영상

작성: ChatGPT

📚 Reference

MDN 공식문서

profile
임성주 벨로그

0개의 댓글