개발자

useEffect 관리하는 방법?

2022년 11월 21일조회 1,029

안녕하세요. react를 접한지 얼마 안 된 신입 개발자인데요. 기존 코드를 보고있는데 한 컴포넌트에 useEffect가 10 몇개씩 사용되고있는데, 이런식으로 사용하는게 맞는지 궁금합니다. 선언된 state를 보다가 state의 setter를 따라서 useEffect를 들어가다보면 어느샌가 코드 파일을 위 아래로 스크롤만 하고있고 코드가 뭐하는지 이해하기가 좀 어렵더라구요. 혹시 이렇게 비대한 컴포넌트를 이해하기 쉽게 effect를 관리하는 방법이 있나요? 또는 참고자료가 있다면 알려주세요. 감사합니다!

이 질문이 도움이 되었나요?
'추천해요' 버튼을 누르면 좋은 질문이 더 많은 사람에게 노출될 수 있어요. '보충이 필요해요' 버튼을 누르면 질문자에게 질문 내용 보충을 요청하는 알림이 가요.
profile picture
익명님의 질문

답변 2

인기 답변

김하림님의 프로필 사진

코드를 보지 못해서 정확한 답변은 드리기 어렵지만 한 컴포넌트에 useEffect가 10개가 넘는게 일반적인 경우는 아닙니다. React.js 공식 문서의 조언에 의하면 useEffect는 마지막 수단으로 사용되어야 합니다. (https://beta.reactjs.org/learn/keeping-components-pure#where-you-_can_-cause-side-effects) useEffect를 제거할 때 고려해볼 수 있는 케이스는 아래와 같습니다. 1. API 요청을 통해 데이터를 불러오는 경우 데이터 요청 로직을 useEffect에서 할 수도 있지만, React Query같은 서버 상태 관리 도구를 쓰면 useEffect를 제거하고 간결한 코드를 유지할 수 있습니다. 2. 상태에 따른 부수효과를 처리하는 경우 이벤트 핸들러(onClick, onSubmit 등)에서 처리할 수 있는 로직을 useEffect로 처리하는 경우 이벤트 핸들러로 로직을 옮기는 것을 고려해볼 수 있습니다. 이벤트 핸들러에서 처리할 수 없는 로직인 경우 상태 설계를 잘못했는지 고려해봐야 합니다. 신입 개발자시라면 잘 이해가 안되실수도 있습니다. 아래 글들을 읽으면서 useEffect에 대한 개념을 먼저 정립해보시는걸 추천드립니다. useEffect 완벽 가이드 - https://overreacted.io/ko/a-complete-guide-to-useeffect/ useEffect가 나를 열받게 했다 - https://iborymagic.tistory.com/140

profile picture

익명

작성자

2022년 11월 24일

감사합니다! 말씀하신대로 코드를 다시보니 대부분의 useEffect들을 이벤트 핸들러로 처리할 수 있더라고요. 참고해주신 글들도 한번 보겠습니다 :)

손정현님의 프로필 사진

안녕하세요! 저도 김하림님과 마찬가지로 useEffect가 꼭 필요한건지 파악을 먼저 해볼 것 같습니다. (참고: https://beta.reactjs.org/learn/you-might-not-need-an-effect) 유저와 상호작용하는 대부분의 경우는 위 답변의 내용처럼 이벤트 핸들러에서 처리하도록 하는게 제일 깔끔한 것 같습니다. useEffect가 꼭 필요한 경우인데 10 몇개씩 한 컴포넌트에 들어가있다면, 커스텀 훅을 만들어서 관리하는 것도 하나의 방법입니다 (참고: https://beta.reactjs.org/learn/reusing-logic-with-custom-hooks)

profile picture

익명

작성자

2022년 11월 24일

답변 감사합니다 :)

지금 가입하면 모든 질문의 답변을 볼 수 있어요!

현직자들의 명쾌한 답변을 얻을 수 있어요.

또는

이미 회원이신가요?

목록으로
키워드로 질문 모아보기

실무, 커리어 고민이 있다면

새로운 질문 올리기

지금 가입하면 모든 질문의 답변을 볼 수 있어요!