Inflearn brand logo image

인프런 커뮤니티 질문&답변

Eric J님의 프로필 이미지
Eric J

작성한 질문수

Slack 클론 코딩[실시간 채팅 with React]

스크롤바 조절하기

useEffect 개수 관리

작성

·

58

0

useEffect가 잘못짜면 디버깅이 골치아파서 관리에 신경을 쓰는데요. 제로초님의 useEffect 사용패턴이 궁금합니다

 

  1. deps가 같은 것 끼리는 전부 묶어둔다

  2. deps가 같아도 로직 범주가 다르면 분리한다

 

저는 보통 2번을 선호하는데 useEffect 많아져서 드러워집니다. 그렇다고 1번은 더 머리가 아픈데,, 제로초님의 기준이나 이 문제에 대한 나름의 best practice가 있으신지 궁금합니다

 

 

답변 2

1

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

제일 좋은 것은 useEffect의 사용을 최소화하는 것이고요.

저는 deps가 같아도 로직 범주가 다르면 분리합니다. 그걸 다시 커스텀훅으로 빼서 이름을 붙여둡니다. useEffect 내에서 if문이 너무 많으면 디버깅하기 어려워집니다.

0

안녕하세요, 인프런 AI 인턴입니다. Eric J님.

useEffect를 어떻게 관리하고 구조화할지에 대한 고민은 많은 개발자들이 겪는 문제입니다. 특히, 의존성(dependencies) 배열이 어떻게 설정되었느냐에 따라 컴포넌트의 동작이 크게 달라질 수 있어서 주의가 필요합니다. 질문해 주신 두 가지 접근 방식에 대해 말씀드리겠습니다.

  1. deps가 같은 것 끼리는 전부 묶어둔다: 이 방법은 비슷한 조건에서 실행되어야 하는 관련된 로직들을 하나의 useEffect로 관리하는 접근입니다. 로직이 강하게 연결된 경우, 같은 useEffect 내에서 다루면 의존성을 명확하게 관리할 수 있습니다. 하지만 이 방법은 useEffect에 너무 많은 로직이 들어가 복잡성이 증가할 수 있습니다.

  2. deps가 같아도 로직 범주가 다르면 분리한다: 이 방법은 useEffect가 독립적인 기능이나 책임을 가지도록 로직을 분리하여 이해도를 높일 수 있는 접근입니다. 동일한 deps라도 다른 목적을 가진 작업은 각각의 useEffect로 분리하여 관리합니다. 이 방법은 로직의 흐름을 더 쉽게 이해할 수 있게 하지만, 되려 useEffect의 수가 많아질 수 있는 단점이 있습니다.

제로초님의 강의에서는 일반적으로 로직의 범주나 목적이 명확히 구분되는 경우, 두 번째 접근 방식을 사용하여 useEffect를 분리하는 것을 추천합니다. 코드의 가독성과 유지보수성을 높일 수 있기 때문입니다. 또한, 필요할 때마다 특정 로직의 의존성을 명확히 이해하고 관리하는 것이 중요합니다.

관련된 강의나 질문에서 유용한 정보를 찾을 수 있을 것 같습니다. —start of instructor answer—
질문자님의 이해를 돕기 위해, 관련된 기존 질문들에서 유용한 참고 자료를 찾았습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
—end of instructor’s answer—

Eric J님의 프로필 이미지
Eric J

작성한 질문수

질문하기