HomeAboutMeBlogGuest
© 2025 Sejin Cha. All rights reserved.
Built with Next.js, deployed on Vercel
🐣
프론트엔드 데브코스 4기 교육생
/
🍏
김나영팀
/
앙골라 ANGOLA
앙골라 ANGOLA
/
이지윤

이지윤

Date
Sep 2, 2023 06:31 AM
Tag
기술 스택 선택 이유
생성자
React + TS + Vite emotion(styled) + axios + npm + (react-query) + (recoil) + vercel + eslint + prettier (Vite 기본 세팅 최대한 써먹자!) + slack + notion + discord + figma
 
컴포넌트 분리
컴포넌트 분리의 미학
Vallista의 블로그
컴포넌트 분리의 미학
https://vallista.kr/Component-분리의-미학/
컴포넌트 분리의 미학
 
기술스택
  1. 언어 - TypScript
  • 팀 프로젝트에서 타입스크립트는 코드 안정성과 가독성을 높이며, 협업에서 일관성을 유지할 수 있다. IDE 지원과 자동 완성으로 개발 생산성을 향상시키며, 버그를 사전에 방지하여 유지 보수성을 향상시킬 수 있다.
  1. 라이브러리 - React
  • 뷰와 리액트 중에 리액트를 선택한 이유는 일차적으로 뷰는 프레임워크이고 리액트는 라이브러리이다. 따라서 리액트는 js 문법을 응용해서 개발자가 자유롭게 개발 할 수 있지만 뷰는 뷰의 문법으로만 개발이 가능하다는 점에서 js문법에 익숙한 리액트를 선택했다.
  • 또한 TS와 결합이 좋고, 컴포넌트 분리와 재사용 측면에서 리액트가 효율성이 더 좋다.
  1. 상태관리 - Recoil
  • React 전용 상태관리 라이브러리로 코드의 복잡성을 낮추고 유지 보수를 간편하게 만들어준다.
  • 프로젝트에 비동기 데이터를 처리가 많아서 유용하다고 생각했고, 상태 업데이트를 처리하는 데 필요한 보일러플레이트 코드가 없어(recoil 디렉토리만 필요) 코드 작성 시간을 절약할 수 있다.
  • 사용하는 방법도 hooks 기반으로 매우 간단하며 React스럽기 때문에 러닝커브가 낮다는 장점이 있다.
  1. HTTP 클라이언트 라이브러리 - Axios
  • 간단하고 직관적인 API로 HTTP 요청 관리가 용이하고 브라우저와 서버에서 호환되며 JSON을 자동으로 파싱해준다.
  • Promise 기반 비동기 처리와 강력한 에러 처리로 안정성과 개발 생산성 향상시킬 수 있다.
  1. React Query
  • 프로젝트에 쓰이는 데이터들을 가져오거나 업데이트, 삭제 및 캐싱 관련된 작업을 효과적으로 처리할 수 있다.
  • hook 기반의 로직들로 되어있어 해당 훅을 사용하는 컴포넌트에서 상태 값의 변경을 간편하게 파악하여 리렌더링을 유발하게 해준다.
  1. 스타일링 - Emotion
프로젝트에 Emotion 적용기
프로젝트에 Emotion을 적용한 이유와 그 과정에 대한 회고와 내용 정리
프로젝트에 Emotion 적용기
https://gong-check.github.io/dev-blog/FE/%EC%98%A8%EC%8A%A4%ED%83%80/emotion%20%EC%A0%81%EC%9A%A9%EA%B8%B0/
  • css-in-cs 보다 css-in-js를 선택한 이유 js를 사용하여 동적으로 스타일링이 가능하고, 컴포넌트 스코프 내에서 캡슐화되어 다른 컴포넌트에 영향을 미치지 않는다. 또한 ts와 함께 사용했을 때 타입 안정성도 제공된다.
  • styled-component vs Emotion 중 Emotion을 선택한 이유는 css prop 기능으로 inline style과 유사하게 작성되지만, class로 변환되어 스타일링이 적용된다.
  1. 번들러 - Vite
  • 빠른 개발환경 구성과 빠른 개발 서버를 제공해준다.
  1. 패키지 매니저 - Npm
  • npm과 yarn 사이의 성능이나 보안 차이가 이제는 그리 크지 않다고 하기 때문에, 생태계가 큰 npm을 선택했다.
  1. 포맷팅 - Eslint, Prettier
  1. 디자인 - Figma
  1. 배포 - Vercel(?)
  1. 협업툴 - Slack, Notion Github, Discord