잉?

[부스트코스] Web개발의 이해 - FE/BE 본문

웹_WEB

[부스트코스] Web개발의 이해 - FE/BE

Jye_647 2020. 4. 1. 16:27

이 글은 부스트코스 강의를 정리한 글 입니다.

 

01. 저급언어 / 고급언어

 

[저급언어]

▷ 기계 중심의 언어

▷ 2진수(0, 1)로 이뤄진 값으로 작성하는 프로그래밍 언어를 기계어(Machine Language)

▷ 숫자로만 되어있기에 유지보수가 어려움(프로그래밍도 어려움)

    → 결국 숫자와 1:1로 대응하는 기호를 만듦(어셈블리어;Assembly Language)

     이 어셈블리어를 기계가 알아듣게 다시 숫자로 바꾸는 도구를 컴파일러(Compiler)

▶ 아주 특수한 경우 빼고 사용할 일이 없음

 

[고급언어]

▷ 사람 중심의 언어

▷ 사람이 이해하기 쉬운 문법으로 프로그래밍 할 수 있음

 

 

02. HTTP 프로토콜의 이해

▷ HTTP(Hypertext Transfer Protocol)

▷ 서버와 클라이언트가 인터넷상에서 데이터를 주고 받기 위한 프로토콜

▷ 클라이언트가 먼저 서버에 요청 서버가 클라이언트에 응답

▷ 무상태(stateless)프로토콜 

    -> 요청을 하고 서버가 응답을 한뒤 바로 다른 요청이 있다해도 일단 끊는다.

 

<장점>

  • 불특정 다수를 대상으로 하는 서비스에 적함
  • stateless는 계속 연결을 하고 있는 것이 아니라 응답을 하면 끊기 때문에 최대 연결수보다 훨씬 많은 요청과 응답을 처리할 수 있음

<단점>

  • 바로 끊기 때문에 클라이언트의 이전 상황을 알 수 없음
  • 이러한 단점 때문에 정보 유지를 위한 Cookie와 같은 기술이 등장

 

03. URL (Uniform Resource Locator)

▷ 인터넷 상의 위치

▷ 특정 파일에 접근하기 위한 경로(주소)

 

http:// www.dahlia15.tistory.com/ docs/ index.html
접근 프로토콜 IP주소 또는 도메인 이름 문서의 경로 문서이름

 

 

04. 프론트엔드(FE) / 백엔드(BE)

 

[프론트엔드]

▷ 사용자에게 웹을 통해 다양한 콘텐츠(문서, 동영상, 사진)를 제공

▷ 사용자 요청에 반응해서 동작

<역할>

  • 웹 콘텐츠를 잘 보여주기 위해 구조를 만듦 - HTML
  • 적절한 배치와 보기좋은 디자인 제공 - CSS(스타일)
  • 언어(HTML, CSS, JavaScript) - JavaScript(동적인 부분)

[백엔드]

▷ 프론트엔드(Client side)가 클라이언트 입장이라면 백엔드(Server Side)는 서버 입장

▷ 클라이언트가 요청한 문제를 해결해야 함

  • 프로그래밍 언어
  • 웹의 동작 원리
  • 알고리즘, 자료구조 등의 지식
  • 운영체제, 네트워크 등의 이해
  • 프레임워크에 대한 이해(Spring)
  • DBMS에 대한 이해와 사용법(MYSQL, Oracle)

 

05. 웹서버

▷ 소프트웨어

▷ 클라이언트가 요청하는 문서나 리소스(자원)를 전달

▷ Apache, Nginx, Microsoft, Google 등이 있음

 

 

06. WAS(Web Application Server)

WAS를 사용하기까지 간략히 살펴보자면

  1. 클라이언트/서버 구조
    • 클라이언트는 서비스를 요청하고 서버는 서비스를 응답
  2. DBMS
    • 다수의 사용자가 데이터베이스 내의 데이터에 접근할 수 있도록 해주는 소프트웨어
    • 보통 서버형태로 서비스 제공
    • 클라이언트의 로직이 많아지고, 클라이언트 크기가 커지는 문제점
    • 대부분의 로직이 클라이언트에 포함되어 배포되기 때문에 보안이 좋지 않았음
  3. 미들웨어(MiddleWare)
    • 클라이언트와 DBMS 사이에 다른 서버(미들웨어)를 두는 방식
    • 클라이언트에 로직이 많을 경우 미들웨어에서 로직을 동작 함으로써 클라이언트는 입력과 출력만 담당
    • 프로그램 로직이 변경되어도 중앙의 미들웨어만 변경하면 됨
  4. WAS(Web Application Server)
    • 최초의 웹 브라우저는 정적인 데이터만 보여줌 → 웹이 널리 사용되면서 사용자들의 요구사항이 커짐 
    • 동적인 기능을 요구(데이터입력과 조회 등) 
    • 그 후 프로그래밍 기능이 들어감(CGI)
    • 복잡한 프로그래밍을 요구(DBMS가 포함됨)
    • 미들웨어가 필요하게 됨 이것을 WAS라고 함

 

<기능>

  • 프로그램 실행 환경과 데이터베이스 접속 기능 제공
  • 여러개의 트랜잭션(논리적인 작업 단위) 관리
  • 업무를 처리하는 비지니스 로직 수행

<웹 서버 vs WAS>

  • 웹 서버는 정적인 콘텐츠를 웹 브라우저에 전송
  • 웹 서버가 WAS에 비해 간단한 구조
  • WAS는 프로그램의 동적인 결과를 웹 브라우저에 전송
  • WAS는 웹 서버기능이 내장되어 있음(점차 발전하면서 WAS만으로도 정적, 동적인 컨텐츠 제공 가능)
  • 규모가 커질수록 웹 서버와 WAS를 분리
    • 장애극복기능(failover)의 목적 때문에 웹서버가 WAS 앞단에서 동작하는 경우가 많음

 

 

'웹_WEB' 카테고리의 다른 글

Node.js란 무엇인가?  (0) 2020.06.07
Comments