본문 바로가기

공부/웹 프로그래밍

1. 웹 프로그래밍 기초 - #1. 웹 개발의 이해, FE/BE (1)

본 게시물의 내용은 edwith 부스트코스 - 웹 프로그래밍 강의를 수강한 내용을 바탕으로 한다. 들은 내용을 정리하고, 복습에 용이하도록 정리해놓은 게시물이다. 

이번 차시의 강의는 다음과 같다. 배경색이 들어간 부분이 이번 게시글에서 다룰 내용이다. 

1. 웹 프로그래밍 기초 - #1. 웹 개발의 이해, FE/BE

1). 웹 프로그래밍을 위한 프로그램 언어들

2). 웹의 동작(HTTP 프로토콜 이해)

3). 웹 FE와 웹 BE

4). Browser의 동작

5). Browser에서의 웹 개발

6). 웹 서버

7). WAS(Web Application Server)

 

 

1). 웹 프로그래밍을 위한 프로그램 언어들

웹 관련 언어로는, python, php, javascript, java, ruby등이 있다

  • python: 입문자가 사용하기 쉽다. 웹 사이트 개발에도 많이 사용된다.
  • php: 웹의 80%이상이 php로 만들어진다. 웹 개발에서 많이 사용된다
  • Javascript: 프론트, 백엔드까지 모두 개발 가능하다.
  • JAVA: 너무 유명해서 생략
  • Ruby: 단순하고 세련된 웹 어플리케이션을 만들 수 있다. 

 

2). 웹의 동작(HTTP 프로토콜 이해)

URL(Uniform Resource Locator)

URL이란, 인터넷 상의 자원위 위치를 말한다. 일반적으로 URL은 https://도메인 또는 IP주소/html문서의 경로/html문서 이러한 형식으로 구성된다. 여기서 도메인 또는 IP주소는 원하는 서비스를 제공하는 서버PC의 IP주소로, 각 컴퓨터마다 유일하다고 한다. 또한 각 IP주소에는 포트 번호라는 것이 있다. 이는 하나의 PC가 복수의 장치와 통신을 할 수 있도록 하기 위한 것이다. IP를 집 주소라고 생각한다면, 포트 번호는 집에 있는 방 번호라고 생각할 수 있다. 

 

HTTP의 이해

웹의 동작을 이해하기 위해서 일상생활에서 예를 찾자면, 도로를 볼 수 있다. 우리는 신호등이 빨간 불이 되면 멈춰서고, 초록 불이 되면 길을 건넌다. 또한, 다른 사람과 전화를 한다고 할 때, 두 사람이 같은 언어를 사용해야 원하는 의사소통을 할 수 있을 것이다

HTTP(Hypertext Transfer Protocol)이란, 서버와 클라이언트가 인터넷 상에서 데이터를 주고받기 위한 프로토콜(protocol, 약속 또는 협약)이다. 서버와 클라이언트가 일정한 형식과 규칙을 가지고 통신을 해야 원하는 데이터를 송신하고, 수신할 수 있다. 이러한 의사소통을 위한 규칙을 HTTP라고 한다.

<HTTP 통신의 절차, 출처: https://www.edwith.org/boostcourse-web/lecture/16661/>

절차는 다음과 같다.

1. 클라이언트가 원하는 웹서버에 연결(Connect)한다. 

2. 클라이언트가 원하는 데이터를 얻기 위해, 웹 서버에 정보를 요청한다(Request).

  • 이 때 보내는 요청 메시지가 HTTP 요청 메시지이다. 
  • 이 HTTP요청 메시지는 요청 헤더, 빈 줄, 요청 바디로 구성된다.

3. 웹 서버가 클라이언트로부터 요청을 받고 나면, HTTP 응답 메시지를 클라이언트에게 보낸다(Response).

  • HTTP 응답 메시지 또한 응답헤더와 빈 줄, 응답 바디로 구성된다
  • 응답 헤더는 응답 메시지에 대한 정보를 담는다. 예를 들면, HTTP 버젼, 웹서버 정보, 날짜, 컨텐츠 길이 등에 대한 정보이다.
  • 응답 바디는 html페이지를 나타낸다. 

4. 웹서버와 클라이언트가 연결을 종료한다. 

 

HTTP 요청 메소드의 종류

  • GET: 클라이언트가 서버에 정보를 요청하기 위해 사용한다(SELECT)
  • POST: 클라이언트가 서버에 정보를 밀어넣기 위해 사용한다(INSERT)
  • PUT: 기존의 정보를 업데이트하기 위해 사용한다(UPDATE)
  • DELETE: 정보를 삭제하기 위해 사용한다(DELETE)
  • HEAT: 헤더 정보를 요청한다. 위에서도 말했듯, 헤더 정보는 HTTP버젼 등 응답 메시지 및 서버의 정보를 담은 정보이다. 이런 정보를 요청한다는 것은 서버와의 통신에 이상이 있는지, 또는 해당 자원이 존재하는지에 대한 정보를 얻기 위함이다. 

 

여기까지, 웹 개발을 하기 위한 기초적인 지식을 간단하게나마 정리해보았다. 아직 이론적인 내용이 전부이지만 실제 개발을 수월하게 하려면 이런 큰 틀과 흐름을 알아야 잘 할 수 있다고 생각하기에, 좀 지루하더라도 열심히 공부해야겠다. 

그럼 다음 게시물에서는 3). 웹 FE와 웹 BE 에서 공부한 내용을 정리하도록 하겠다.