Python BackEnd: 웹 아키텍처 이론

0

BackEnd with Python

목록 보기
2/9
post-thumbnail

JavaScript의 역할 증대

단순했던 웹 서비스들이 복잡해지기 시작하면서 사용자 인터랙션(user interaction)이 중요해지기 시작했다.

정적인 데이터만 제공하는 것에 그치지 않고
웹 페이지에서 사용자와 동적으로 상호작용하는 것이 중요해졌다.

따라서 웹상에서 동적인 기능을 제공하는 JS의 역할이 커졌고
급기야 HTML도 JS코드로 구현하는 방식이 사용되기 시작했다.

전체 페이지를 load 하는 일 없이
사용자의 input을 동적으로 처리하고 새로운 데이터들을 처리할 수 있게 되었다.

이렇게 JS를 통해 사용자와의 동적 상호작용을 구현하는 기술이 AJAX이다.

구별되기 시작하는 프론트엔드와 백엔드

JS가 주력이 되면서 SPA(Single Page Application) 방식의 프론트 개발이 인기를 얻게 되었다.

  • SPA란 이름 그대로
    단일 페이지로 모든 웹사이트/서비스 기능을 구현하는 것이다
  • HTML구조에 JS파일을 포함시키고
    이 메인이 되는 JS코드가 모든 페이지 및 기능을 동적으로 구현한다

사이트의 페이지를 rendering하는 데 필요한 JS코드는
최초의 통신에서 모두 한 번에 받게된다.

따라서 그 다음부터는 서버와 데이터만 주고 받으면 된다.

프론트엔드

  • 시스템의 UI와 UX를 구현한다
  • JavaScript(JS) / HTML / CSS
  • React Js / Angular Js / Vue Js

백엔드

  • 프론트(혹은 다른 클라이언트 시스템)와 데이터를 실시간으로 주고 받는 기능 구현
  • 장애 없이 & 실시간으로 & 최대한 빠른 속도로
  • 안정적이고 확장성이 높으며 실행 속도도 준수한 언어를 주로 사용
  • Java / Python / Rust / Scala

최근에는 NodeJS라는 JS 엔진이 인기를 얻으면서
JS로 구현된 백엔드 시스템도 늘어나는 추세에 있다.

JS를 이용하는 최대의 장점 중 하나는
JS를 이용해 프론트와 백을 모두 구성할 수 있다는 점이다.

최근의 백엔드 영역

최근에는 머신러닝과 인공지능 기술의 발달로
많은 회사들에서 이를 활용하게 되었다.

따라서 백엔드 시스템의 영역이 계속해서 확장되는 추세다.

  • API 개발
  • Data Pipeline
  • Machine Learning
  • Big data
    ...

백엔드 개발자도 크게 두 가지 분야로 나뉜다

  1. 백엔드의 전방을 담당하는 API 개발자
  2. 백엔드의 후방을 보는 데이터 관련 개발자

이 둘은 서로 많이 다르고 요구되는 기술이나 능력에도 차이가 있다.
일반적으로 데이터 관련 개발이 API 개발보다 난도가 높다.

풀스택 개발자는?

NodeJS를 통해 JS만으로 프론트와 백을 구성할 수 있게 되면서 풀스택 개발자들이 많이 생겨났다.

풀스택 개발자에 대한 수요는 많다.
특히 스타트업 같은 소규모 기업에서의 선호가 높은 편이다.

하지만 입문자들이 풀스택을 목표로 했을 때
둘 다 잘 할 수 없다는 것을 알아야 한다.

프론트나 백
둘 중 하나를 확실하게 정하고 전문분야로 만들어야 한다.
나머지 분야는 필요시에 능력을 발휘할 수 있을 정도를 목표로 한다.

0개의 댓글