01. 웹 서비스란?


Web Service? = Web + Service

월드 와이드 웹(World Wide Web, WWW, W3)은 인터넷에 연결된 컴퓨터를 통해 사람들이 정보를 공유할 수 있는 전 세계적인 정보 공간을 말한다. 간단히 웹(Web)이라 부른다. -Wikipedia-

일반적으로 우리가 필요한 정보를 웹 서비스에 '요청(request)'하고, 웹 서비스는 우리의 요청에 '응답(response)'하는 형태를 가지고 있습니다.

 

이러한 형태의 서비스는 웹 말고도 우리의 일상에서 쉽게 접할 수 있습니다. 예를 들어 김밥천국에 가서 김밥 한 줄을 주문하면, 점원이 김밥 한 줄을 제공해주는 상황을 생각해보세요. 여기서 김밥 주문이 **요청(request)**이고, 점원이 주문한 음식을 제공하는 것이 **응답(response)**입니다.

 

앞서 본 요청과 응답을 하는 주체를 웹 서비스에 적용 한 것이 바로 Server-Client 의 개념입니다. 주문하는 사람은 클라이언트(Client), 주문에 응답해 서비스를 제공하는 사람은 **서버(Server)**인 것입니다. 클라이언트가 주문하는 행위는 요청(request), 서버가 요청에 맞게 서비스를 제공하는 것을 응답(response)이라 할 수 있습니다. 따라서 웹 서비스를 만든다는 것은 서버로 작동할 수 있는 프로그램을 만든다는 의미입니다.

이렇게 서버와 클라이언트가 소통을 하는 데 있어, 응답과 요청을 주고 받기 위해 따라야 하는 규정을 HTTP(Hyper Text Transfer Protocol)라고 합니다. HTTP를 통해 서버에 있는 다양한 리소스를 가지고 올 수 있습니다. 바로 우리가 보는 HTML 페이지를 가져오는 것이죠.

02. 웹 브라우저


웹 서비스에 있어서 앞서 본 응답과 요청의 과정은 웹 브라우저를 통해서 이루어집니다. 웹 브라우저라 쓰고 크롬이라 읽는다.

 

브라우저 시장 점유율 # link ☞ http://bit.ly/2mfHyIq

웹 브라우저는 클라이언트와 서버가 주고받는 html 문서를 사람이 보기 쉽게 만들어주고 소통하기 쉽게 만들어주는 프로그램이라 생각하면 됩니다. internet explorer, chrome, firefox 등 여러 웹 브라우저들이 있으나 앞으로 우리는 chrome을 표준으로 잡고 진행합니다. 크롬 외 다른 웹 브라우저는 없다고 생각해도 괜찮습니다.

브라우저에서 이루어지는 요청에는 크게 4가지가 있습니다. 그 중에서 간단하게 2가지를 보겠습니다.

☞ (참고) 모든 요청 보기 : https://mzl.la/2kStpR7

[Get, Post]

  • Get

    클라이언트가 서버에 어떠한 파일을 요청하고, 이것에 응답하여 파일을 주는 방식입니다. 브라우저에서 버튼을 클릭하는 동작, 검색, 주소 입력창에 사이트 주소를 입력해서 접속하는 방법들이 Get 방식입니다.

  • Post

    클라이언트가 서버에 데이터를 주고, 이것에 응답하여 데이터를 확인하는 방식입니다. 클릭이나 검색이 아닌 유저가 직접 타이핑을 해서 서버에 적용시키는 글을 작성하거나 캘린더에 일정 넣기, 쇼핑몰에서 주문을 하는 등 없던 것이 만들어지는 과정이 Post 방식입니다.

☞(참고) HTTP 개요 : https://developer.mozilla.org/ko/docs/Web/HTTP/Overview

03. 웹 프로그래밍


우리는 클라이언트와 서버가 요청과 응답을 주고받는 프로그램을 개발하게 됩니다. 이 과정을 웹 프로그래밍이라고 합니다.

3-1. 프론트 엔드

  • HTML

    HyperText Markup Language의 줄임말로, 마크업 언어라고 합니다. 사람들에게 보여지는 구조를 담당하고, 텍스트 전달의 목적을 가집니다. Markup Language의 뜻은 현재로는 '컴퓨터가 알아 들을 수 있는 언어'쯤으로 이해하고 넘어가겠습니다. 사실 프로그래밍 언어라 할 수는 없지만.. (html is 뭔들..)

  • CSS

    Cascading Style Sheets의 줄임말로, 웹에서 스타일을 담당하며 html이 만든 몸에 옷과 액세서리를 입혀준다고 생각하면 이해하기 편합니다.

3-2. 백 엔드

기능을 구현할 때 사용하는 것이 평상시에 한번쯤 들어 보았을 Python, Java, C언어입니다. 저희는 그중에서도 Ruby라는 언어와 이 언어를 편리하게 사용하도록 만들어진 Rails라는 프레임 워크를 사용할 예정입니다. 보통 Ruby와 Rails를 짝을 이루어서 웹 개발을 진행하기 때문에 **RoR (Ruby on Rails)**이라고 불립니다.

  • 프레임 워크?

    이해하기 쉽게 비유를 사용해서 설명한다면, 카페 사장(서비스를 제공하는 사람)이 카페(웹 서비스)를 개업하기 위해서 프랜차이즈(프레임 워크)에 가입해서 정해진 룰을 따라서 빠르게 카페를 개업(웹 서비스 제작)하기 위한 방법입니다. 이러한 이유로 개발자들은 개발을 할때 각 언어에 맞는 잘 만들어진 프레임 워크를 이용하고 있습니다.

    (e.g. Ruby - Rails Python - Django Javascript - React, Angular Java - Spring )

프랜차이즈라는 비유를 듣고 개인 창업도 할 수 있지 않을까? 라는 생각이 들 수도 있겠지만, 현실에서 창업 비용이 n억이 들 듯이 프레임 워크 없는 개발은 n억분의 1의 천재들만 할 수 있는 난이도이기 때문에 보통은 편리하게 프레임 워크를 이용합니다.

'웹(html,css,javascript)' 카테고리의 다른 글

css Basic  (0) 2020.03.01
html 태그 2  (0) 2020.03.01
Semantic Tag  (0) 2020.03.01
html  (0) 2020.03.01
[CSS] 개요  (0) 2020.02.24

+ Recent posts