tomei
Categories
Tags
810 words
4 minutes
React 프로젝트에서 유틸 함수(utility function)를 어떤 기준으로 분리하고 관리하나요.
” 하루에 하나씩 FE 면접 문제 5월 8일입니다. ”
React 프로젝트에서 유틸 함수(utility function)를 어떤 기준으로 분리하고 관리하나요? 유틸 함수가 많아졌을 때의 문제점과 해결 방법도 함께 설명해주세요.
1. 유틸리티 함수란?
유틸 함수는 반복적으로 실행되는 기능들을 모아서 함수로 분리합니다. 데이터를 원하는 형태로 바꾸거나 편리함을 위해 반복적으로 수행되는 것들을 파일로 분리하는 것입니다.
- 기능에 따라 분리하는 것이 일반적이며, 리액트의 경우
utils
폴더 안에 주로 생성합니다.이 때,libs
와 혼동하는 경우가 더러 있습니다.
utils? libs?
utils
- 특정 비즈니스 로직에 의존하지 않고 여러 곳에서 사용하는 함수들을 주로 모아둡니다.
libs - 외부 라이브러리나 API 관련 반복되는 기능들을 모아둡니다.
- `utils`: `formatDate`, `debounce`, `capitalize`, `isEmpty`
- `libs`: `axiosInstance`, `firebaseClient`, `authProvider`
2. 유틸리티 함수를 작성할 때 무엇을 고려해야 하나요?
- 기본적으로 유틸리티 함수는 동일한 로직이 여러 곳에서 반복적으로 사용되므로, 해당 기능을 쓸 때마다 5,6줄 혹은 그 이상 되는 코드들을 다시 치는 것이 생산성 떨어지므로 유틸리티 함수로 분리해 코드 전체 줄을 줄이는 것입니다. 유지보수도 쉬워집니다.
- 유틸리티 함수 이름을 지을 때는 주로
카멜케이스
로 작성합니다. 함수 이름만 보고도 직관적으로 기능을 알 수 있도록 지어야 합니다. - 비즈니스 로직과 분리되어야 합니다. 유틸 함수는 특정 컴포넌트에 의존하지 않고 순수 함수 형태로 작성되어야 합니다.
- 순수함수는 기본적으로 인풋이 같으면 항상 같은 아웃풋이 나와야 합니다.
- 즉 외부 상태에 의존하거나 사이트 이펙트가 일어나지 않도록 하는 함수입니다.
- 참고
3. 유틸함수가 많아질 경우 어떻게 하지?
유틸함수가 너무 많아질 경우 원하는 유틸을 찾기 어려워지며 생산성이 떨어집니다. 이전에 프로젝트에 fsd 아키텍처를 적용했는데 이 때 사용한 방법이 매우 좋아보입니다. 일반적으로 쓰는 방법인지는 모르겠습니다.
- FSD 아키텍처는 디렉토리 구조가 가장 많이 쓰시는 구조와 많이 다릅니다. 몇 가지 정해진 폴더가 있고 그 안마다 도메인별로 또 폴더들이 나뉘어집니다. 즉 폴더가 정말 많은데요. 이 때 해당 폴더에
index.js
파일을 통해 import, export를 관리합니다.
기능별 분리
유틸함수도 이처럼 날짜, 데이터 등 필요한 도메인에 따라 폴더를 나누고 폴더 별로 index.js를 두면 좀 더 편리하게 관리할 수 있습니다.
React 프로젝트에서 유틸 함수(utility function)를 어떤 기준으로 분리하고 관리하나요.
softourr.github.io/react-프로젝트에서-유틸-함수utility-function를-어떤-기준으로-분리하고-관리하나요.md