SHUSTORY

Frontend / Backend 본문

CS

Frontend / Backend

어서오시우 2024. 11. 1. 12:22
728x90

🦦 Frontend

  • 사용자가 마주보는 인터페이스를 '프론트엔드'라고 한다.
  • 사용자가 직접 상호작용하는 웹 서비스의 인터페이스를 구축하는 분야를 말한다.
    • html, css, js 등의 기술을 활용하여 웹페이지를 실제로 구현한다.
    • 사용자가 애플리케이션을 사용할 때 시각적으로 보기 좋은 UI를 만들어주며, 사용자 경험을 향상시킨다.
  • 프론트엔드 개발자는 클라이언트 개발자라고도 한다.
    • 백엔드 개발자들이 만들어 놓은 API 명세서를 확인한 후 html, css, js를 사용하여 일반적인 사용자가 볼 수 있도록 사용자인터페이스, 즉 UI를 개발한다.
  • 개발 시 주로 사용되는 언어
    • 웹 서비스
      • HTML(Hyper Text Markup Language)
        문서가 화면에 표시되는 형식을 나타내거나 데이터의 논리적인 구조를 명시하기 위한 규칙들을 정의한 마크업 언어
        • 🐚마크업 언어?
          문서의 구조와 의미를 표현하는 언어로, 텍스트에 계층적 구조를 부여하고,
          각 요소의 역할을 나타내는 데 사용된다.
      • CSS(Cascading Style Sheets)
        HTML 콘텐츠를 크기, 색상, 위치 변경 등으로 꾸미는, 디자인 담당이다.
      • JS(JavaScript)
        HTML과 CSS를 통해 만들어진 웹 페이지가 동작하도록 만들어준다.
    • 앱 서비스
      • 구글과 애플이라는 큰 회사에서 다른 운영체제로 경쟁하는데, 각각의 운영체제만을 위한 플랫폼이 있기 때문에, '네이티브 앱'이라고도 불린다.
      • 안드로이드코틀린, ios 스위프트라는 언어로 개발하게 되는데, 대부분의 서비스는 구글과 애플에 모두 올라가 있다.
        • 몇몇 개발자가 하나의 서비스를 두 언어로 두 개의 앱을 개발함에 불편함을 느껴 만들어진 '크로스 플랫폼 개발 언어'를  통해 한 번에 두 플랫폼에 서비스를 제공할 수 있게 되었다. 대표적으로 리액트네이티브(JS기반, 리액트와 기본 개념은 유사), 플러터(dart 언어 기반)가 있다.

  • 필요 역량
    • React, Vue, Angular 등 프론트엔드 프레임워크에 대한 경험과 지식이 필요하다.
      • HTML, CSS, JS만으로도 기본적인 웹 서비스를 만들 수 있지만,
        더 편리하게 개발할 수 있도록 라이브러리와 프레임워크를 사용한다.
    • HTML, CSS, JS 등의 웹 프론트엔드 기술에 대한 이해와 능력이 필요하다.

 

🦦 Backend

  • 사용자가 직접 볼 수 없는 웹 서비스의 서버 측 로직을 개발하는 분야를 말한다.
    • DB와 상호작용하고, 서버에서 실행되는 코드를 작성한다.
    • 프론트엔드에 있는 사용자들이 취하는 행동들을 처리한다.
      데이터를 저장하고 관리하며, 웹사이트에서 작동할 수 있게 해준다.
  • 백엔드 개발자는 서버 개발자라고도 한다.
    • 프론트엔드에서 사용할 수 있도록 JAVA, Python 등과 같은 서버측 언어를 사용하여 필요한 기능의 API를 개발하여 API 명세서와 함께 프론트엔드 개발자에게 제공한다.
    • 서버 개발자라고 해서 서버를 개발하는 것이 아니라, 서버 위에서 실행되는 어플리케이션을 개발하는 개발자를 말한다.
      • 🐚서버 자체 개발이 아닌, 서버 어플리케이션 개발이라는 것이 무슨 의미일까?
        서버 개발자는 사용자가 요청을 보낼 때 서버가 그 요청을 처리하고, 필요한 데이터를 반환하는 등의 기능을 개발한다.
        이 때 서버 자체는 이미 구축된 물리적 장치 또는 클라우드 상의 가상 서버이다. 
  • 개발 시 주로 사용되는 언어
    • C++, Java, Python, PHP 등 다양한 언어를 사용해 백엔드 서버 구축이 가능하다.
      • 해당 언어를 활용해 쉽게 서버를 만들게 해주는 라이브러리가 있다.
        • JAVA - Spring
        • JS - Node, Nest
        • Python - Django, Flask
      • 백엔드 언어는 동작 원리에 따라 장단점과 적합한 영역이 존재한다.
        • 웹 개발 - JS
        • 인공지능, 머신러닝 - Python
  • 필요 역량
    • 서버와 DB를 다루는데 관심이 있어야 한다.
    • Django, Spring, Flask 등의 백엔드 프레임워크에 대한 경험과 지식이 필요하다.

 

정리하자면..

 

  • 프론트엔드는 요청하는 앞단의 영역, 백엔드는 요청에 응답하는 뒷단의 영역이라고 할 수 있다.
    BE 개발자가 개발한 서버 측 코드는 API를 통해 FE 개발자가 작성한 클라이언트 측 코드와 상호작용한다.
  • 현업 개발자분의 말을 들어보니 최근 들어서 FE와 BE는 현업에서 큰 차이는 없고 DB에 직접적으로 접속하느냐 정도의 차이라고 생각하면 될 듯하다고 한다!

'CS' 카테고리의 다른 글

JSON, XML, YAML  (2) 2024.11.04
API  (5) 2024.11.02
MPA / SPA  (2) 2024.10.30
CSR / SSR  (6) 2024.10.23
Interface  (1) 2024.10.18