Skip to content

Latest commit

 

History

History
53 lines (34 loc) · 3.11 KB

Tech Stack.md

File metadata and controls

53 lines (34 loc) · 3.11 KB

JavaScript

웹 브라우저의 동적 콘텐츠를 생성하고 제어하는 데 사용되는 프로그래밍 언어

장점

  • 웹 개발의 표준

    • HTML, CSS와 함께 웹 개발의 세 가지 핵심 기술 중 하나로, 모든 현대 웹 브라우저에서 기본적으로 지원된다.
  • 동적 웹 페이지

    • 사용자 입력에 따라 페이지 콘텐츠를 변경하거나, 애니메이션을 추가하는 등 동적인 웹 페이지를 쉽게 만들 수 있다.

단점

  • 해석형 언어이기 때문에 컴파일 언어에 비해 실행 속도가 느릴 수 있다.

  • 자바스크립트의 유연성은 때로는 코드의 일관성과 안정성을 저해할 수 있어 큰 프로젝트에서는 버그를 발생시키기 쉽고 유지보수를 어렵게 만들 수 있다.

  • 브라우저 간의 호환성

    • 모든 브라우저에서 동작하지만, 브라우저마다 자바스크립트의 구현 방식이 다를 수 있어 코드가 브라우저에 따라 다르게 동작할 수 있다.

React

사용자 인터페이스를 구축하기 위한 JavaScript 라이브러리로 사용자 인터페이스를 구축하는 데 사용된다.

장점

  • 컴포넌트 기반 구조

    • UI를 독립적이고 재사용 가능한 컴포넌트로 나눌 수 있어, 복잡한 애플리케이션을 구조적으로 관리하기 쉽다.
  • 가상 DOM (Virtual DOM)

    • React는 실제 DOM 대신 가상 DOM을 사용하여, UI 변경 사항을 메모리에서 처리한 후 실제 DOM에 최소한의 변경만 적용해 애플리케이션의 성능이 크게 향상된다.
  • 단방향 데아터 흐름

    • 데이터의 흐름이 단방향으로 이루어져, 데이터가 한 방향으로만 전달되서 데이터 상태를 추적하고 관리하기 쉽고, 버그 발생을 줄일 수 있다.

단점

  • SEO문제

    • React는 기본적으로 클라이언트 측에서 렌더링 되기 때문에, 서버에서 초기 HTML을 제공 하지 않으면 검색 엔진이 페이지의 콘텐츠를 제대로 인덱싱하지 못할 수 있다.
  • 복잡한 상태 관리

    • React 자체는 상태 관리를 위한 기능이 기본적으로 제공되지만, 대규모 애플리케이션에서는 상태 관리가 복잡해질 수 있다.
  • 구조화된 프레임워크 부족

    • 리액트는 라이브러리이지 프레임워크가 아니므로, 프로젝트 구조나 설계에 대한 명확한 지침이 없어 팀 간의 일관성 없는 코드 구조로 인해 유지보수가 어려워 질 수 있다.

사용 사례

  • 페이스북

    • React는 원래 Facebook 내부에서 사용하기 위해 개발되었다. 대규모 애플리케이션의 효율적인 상태 관리와 UI 구성을 위해 활용되고 React를 사용해 사용자 인터페이스를 효율적으로 관리하고, 실시간으로 많은 데이터를 처리합니다.
  • 넷플릭스

    • 넷플릭스는 프론트엔드 개발에 React를 사용하여, 빠르고 반응성이 뛰어난 사용자 경험을 제공한다. 특히 서버 사이드 렌더링을 통해 SEO 문제를 해결하고, 초기 로딩시간을 단축했다.