1. 웹 프로그래밍 기초

bin1225·2021년 12월 29일
0
post-thumbnail

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

저급 언어

저급 언어는 기계 중심의 언어,
컴퓨터는 0과 1로만 이루어진 기계어로 작동하는데, 숫자로만 돼있기 때문에 사용이 굉장히 어렵다.
그래서 이 숫자로 된 문장과 1:1로 대응하는 기호를 만들고, 그 기호로 프로그래밍을 하게 되었고 이 언어를 어셈블리어 라고 한다.
어셈블리어를 기계어로 바꿔주는 도구를 컴파일러 라고 한다.

고급 언어

고급 언어는 사람 중심의 언어라고 말할 수 있다. 즉, 사람이 더 이해하기 쉬운 문법으로 프로그래밍 할 수 있는 언어이다.

웹 관련 인기 언어

Python : 프로그래밍 입문자가 읽기 쉽고 적은 코드를 사용하여 프로그램을 개발할 수 있습니다. 많은 사람에게 추천되는 언어이며, 데이터 과학에서도 자주 사용되며 웹사이트 개발에서도 많이 사용되고 있습니다.

PHP : 웹의 80% 이상이 PHP로 만들어졌다고 말합니다. 그만큼 PHP는 웹 개발에서 많이 사용됩니다.

JavaScript : 자바 스크립트는 처음 시작이 브라우저에서 동작하는 언어였습니다. 현재는 서버에서도 작성하는 프로그램으로 점차 영역을 넓혀가고 있습니다. 프론트 개발자라면 반드시 알아야 할 언어입니다. 자바스크립트 커뮤니티도 점점 더 거대해지고 있습니다.

JAVA : 엔터프라이즈 소프트웨어 환경에 잘 맞는 언어입니다. 큰 규모의 소프트웨어 개발에 자바언어가 많이 사용되고 있습니다. JAVA언어를 지원하는 수많은 커뮤니티에 위해서, 지속적으로 발전되어 훌륭한 구조와 설계 기법들이 잘 갖춰져 있습니다.

Ruby : 빠른 개발에 널리 사용되며, 단순함과 세련된 웹 어플리케이션을 만들 수 있기 때문에 인기 있는 언어 중의 하나입니다.

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

HTTP (Hypertext Transfer Protocol)란?

- HTTP는 서버와 클라이언트가 인터넷상에서 데이터를 주고받기 위한 프로토콜,
즉 네트워크 상에서 정보를 주고받기 위해 약속한 규약이다.

HTTP 작동방식

HTTP는 서버/클라이언트 모델, 서버와 클라이언트가 요청과 응답을 주고받는 모델을 따릅니다.

장점

  • 불특정 다수를 대상으로 하는 서비스에는 적합하다. -> 무상태의 특징
  • 클라이언트와 서버가 계속 연결된 형태가 아니기 때문에 클라이언트와 서버 간의 최대 연결 수보다 훨씬 많은 요청과 응답을 처리할 수 있다.

단점

  • 연결을 끊어버리기 때문에, 클라이언트의 이전 상황을 알 수가 없다.
  • 이러한 특징을 무상태(Stateless)라고 말한다.
  • 이러한 특징 때문에 정보를 유지하기 위해서 Cookie와 같은 기술이 등장하게 되었다.

URL (Uniform Resource Locator)

인터넷 상의 자원의 위치
특정 웹 서버의 특정 파일에 접근하기 위한 경로 혹은 주소

3) 웹 Front-End 와 웹 Back-End

웹 프론트엔드란

프론트엔드는 사용자에게 보여지는 화면을 담당한다.
웹을 통해 문서,동영상,사진 등의 콘텐츠를 제공한다.

웹프론트엔드의 역할

웹콘텐츠를 잘 보여주기 위해 구조를 만들어야 한다.(신문,책등과 같이) - HTML
적절한 배치와 일관된 디자인 등을 제공해야 한다.(보기 좋게) - CSS
사용자 요청을 잘 반영해야 합니다. 사용자의 요청에 따라 동적인 화면을 제공 한다. - Javascript

백엔드란

backend는 정보를 처리하고 저장하며, 클라이언트 요청에 따라 정보를 내려주는 역할을 한다.
가령 쇼핑몰이라면, 상품 정보를 가지고 있고, 주문을 받아서 저장하고, 사용자가 관심있어 하는 상품을 골라주는 역할이 back-End의 역할이다

4) browser

브라우저( chrome, microsoft edge 등)는 http파일에서 정보를 추출하여 해석하고, 화면에 표현하는 역할을 한다.
즉 http가 담고 있는 html,css,javascript에 대한 정보들을 해석해서 사용자가 보고 사용할 수 있게 해준다.

5) Web server 와 WAS

웹 서버

http 요청에 대해 http 응답을 제공
정적 리소스 제공(html, css, js, 이미지, 영상 등)

WAS - Web Application Server

HTTP 기반으로 동작
기본적으로 웹 서버의 기능을 포함하며 프로그램 코드를 실행해서 어플리케이션 로직을 수행할 수가 있다. -> 사용자에 따라 동적으로 화면을 제공할 수 있다.

웹서버와의 차이

서로가 서로의 기능을 포함할 수 있을 정도로 경계가 모호하지만, WAS가 애플리케이션 코드를 실행하는데 더 특화되어 있다.

일반적으로는 WAS로 모든 처리를 해결할 수 있지만, 서비스가 커질수록 Web Server와 WAS를 분리하는 경우가 많다.
왜냐하면, 상대적으로 WAS는 오류가 발생할 확률이 높기 때문에 그 경우를 대비해서 간단한 처리는 Web Server에서 처리하도록 클라이언트와 WAS사이에 위치시켜두면,
오류가 발생했을 때에도 간단한 처리는 수행할 수 있는 상태를 유지할 수 있다.

0개의 댓글