본문 바로가기
프로젝트/[프로젝트1]

기술 스택

by Whiimsy 2024. 4. 2.
  • JavaScript
  • React
  • Next.js
  • Redux-toolkit
  • MUI System

JavaScript

선정 이유

  1. 개발 생산성:
    • TypeScript는 정적 타입 체계를 도입하여 개발 시간을 늘리는 경우가 있습니다. 반면 JavaScript는 타입 시스템의 추가 부담 없이 빠르게 개발을 진행할 수 있습니다.
  2. 팀 구성원의 경험 및 선호도:
    • 팀원들이 TypeScript보다 JavaScript에 대한 많은 경험을 가지고 있고 이에 더 익숙합니다. TypeScript에 대해서는 학습 시간이 필요하지만, 이를 위한 시간을 보장받을 수 없었고 이에 따라 프로젝트 초기 단계에서의 생산성이 감소될 것을 우려했습니다.
  3. 생태계 지원 및 라이브러리 사용:
    • JavaScript는 방대한 생태계와 다양한 라이브러리를 보유하고 있습니다. 프로젝트에 필요한 기능을 구현하기 위해 이미 존재하는 라이브러리를 활용할 수 있습니다. TypeScript는 JavaScript보다 비교적 작은 생태계를 가지고 있으며, 우리 프로젝트에 필요한 모든 기능을 지원하지 않을 수 있습니다.

참고: 프로젝트 계획 단계에서 TypeScript의 장점을 고려하였지만, 현재 프로젝트에 적합한 선택은 JavaScript라고 판단했습니다.계획 단계에서 TypeScript의 장점을 고려하였지만, 현재 프로젝트에 적합한 선택은 JavaScript라고 판단했습니다.

React

선정 이유

  1. 팀 구성원의 경험 및 선호도:
    • 위 JavaScript 선정 이유와 마찬가지로 팀원들의 경험에 기반해 선정했습니다.
  2. 가볍고 유연한 라이브러리:
    • React는 가볍고 유연한 라이브러리로, 특히 프로젝트 초기에는 빠른 개발을 위해 가볍고 직관적인 라이브러리가 필요했습니다.
  3. 확장성과 생태계:
    • React는 확장성이 뛰어나며, 다양한 라이브러리와 도구를 활용하여 개발을 진행할 수 있습니다. 또한 React의 생태계는 매우 크고 활발하며, 필요로 하는 기능을 구현하기 위한 다양한 리소스를 제공합니다.
  4. 커뮤니티 지원과 문서화:
    • React는 넓은 개발자 커뮤니티와 풍부한 문서화를 자랑합니다. 이로 인해 문제 해결에 많은 도움을 받을 수 있고, 신속하고 효과적인 개발을 위한 지원을 받을 수 있습니다.

Next.js

선정 이유

  1. 간편한 라우팅 및 페이지 관리:
    • Next.js는 간단하고 직관적인 라우팅 시스템을 제공하여 페이지 간의 네비게이션을 쉽게 관리할 수 있습니다. 이는 프로젝트의 구조를 유연하게 유지하면서도 개발자의 생산성을 높여줍니다.
  2. 정적 파일 서버:
    • Next.js는 정적 파일을 제공하는 데 효과적이며, 정적 파일 서버로서의 역할을 잘 수행합니다. 이는 이미지, CSS, JavaScript 파일 등을 효율적으로 제공하여 웹 애플리케이션의 성능을 향상시킵니다.
  3. Hot 모듈 리로딩(HMR):
    • Next.js는 개발 환경에서 자동으로 코드 변경을 감지하고 실시간으로 반영하는 Hot 모듈 리로딩(HMR)을 지원합니다. 이는 빠른 개발 주기를 가능하게 하고, 수정된 내용을 즉시 확인할 수 있도록 도와줍니다.

Redux-toolkit

선정 이유

  1. 간편한 설정과 보일러플레이트 코드 제거:
    • Redux Toolkit은 Redux를 사용하는 데 필요한 설정과 보일러플레이트 코드를 최소화합니다. 이는 프로젝트의 초기 설정을 단순화하고, 빠르게 Redux를 적용할 수 있도록 도와줍니다.
  2. 불변성 유지 및 상태 업데이트 간편화:
    • Redux Toolkit은 불변성을 유지하면서 상태를 업데이트하는 데 필요한 여러 유틸리티 함수를 제공합니다. 이를 통해 상태 업데이트 로직을 간소화하고, 애플리케이션의 상태 변화를 예측 가능하게 만듭니다.
  3. 리덕스 슬라이스(Slice) 및 리듀서 설정:
    • Redux Toolkit은 리덕스 슬라이스라는 개념을 도입하여 관련된 액션과 리듀서를 함께 관리할 수 있도록 도와줍니다. 이는 코드의 모듈화와 유지보수성을 높이는 데 도움이 됩니다.

MUI System

선정 이유

  1. 반응형 및 접근성 고려:
    • MUI(System)는 반응형 웹 디자인과 접근성을 고려하여 개발되었습니다. 이는 다양한 디바이스와 환경에서 일관된 사용자 경험을 제공하고, 장애를 가진 사용자들에게도 적합한 사용성을 보장합니다.
  2. 풍부한 컴포넌트 라이브러리:
    • MUI(System)는 다양한 UI 요소를 포함한 풍부한 컴포넌트 라이브러리를 제공합니다. 이는 버튼, 폼 컨트롤, 그리드 시스템 등을 포함하여 다양한 UI 구성 요소를 쉽게 구현할 수 있게 합니다.
  3. 문서화와 커뮤니티 지원:
    • MUI(System)는 풍부한 문서화와 활발한 커뮤니티 지원을 통해 사용자들에게 필요한 정보를 제공하고, 문제 해결을 위한 지원을 제공합니다. 이는 개발자들이 더 신속하게 개발을 진행할 수 있도록 도와줍니다.

참고: 우리 프로젝트는 독자적인 디자인 시스템을 가지고 있지만, 개발 편리를 위해 MUI System을 기반해 이를 커스텀하여 디자인 시스템을 구축했습니다.