개발자
안녕하세요. depth 가 있는 컴포넌트들이 많은 등록페이지를 개발하다가 궁금증이 들어서 질문드립니다. 그동안 가짓수가 많아도, 모두 recoil의 atom에서 단일 값으로 관리를 해왔었는데, 어차피 서버에 객체에 담아서 보낼 것이라면 애초에 모든 값들을 다 객체에서 꺼내서 사용하는 object 타입의 atom 으로 관리하면 되지 않을까 라는 생각이 문득 들어서 현업에서 종사하시는 선배님들께 여쭤보려고 글을 작성합니다. 아마 각각의 단일 데이터 값으로 관리하면 key값이 제각각이라 뭔가 좀 더 안전할 것 같긴한데, 어떤 것이 나은 방법일까요?
답변 1
인기 답변
궁금하신 부분은 팀에서 컨벤션으로 정하기 나름일 것 같아요. 같은 방식으로 프로젝트 전반에서 관리된다면 어떻게하든 문제 없어보입니다. 결정하실 때 고려할만한 부분은 해당 값이 하나의 객체에서만 사용된다면 하나의 atom으로 몰아서 관리하셔도 전혀 문제 없는데, 해당 값이 다양한 request들에서 사용된다면 별도의 atom들로 관리한 후에 꺼내서 사용하는 것이 더 좋아보입니다. 그런 경우에는 recoil에서 selector를 사용하는 것을 고려할 수도 있습니다. atom의 값이 변할 때마다 selector가 업데이트 되기때문에 원하시는 기능을 구현할 수 있을 것 같습니다 https://recoiljs.org/docs/api-reference/core/selector
이상원
작성자
Frontend Dev • 2023년 12월 14일
selector를 이러한 방식으로 사용해 보는 것을 고려를 해보지 못해봤네요. 감사합니다! 참고해서 좋은 방식으로 개발을 진행해 보겠습니다 :)
지금 가입하면 모든 질문의 답변을 볼 수 있어요!
현직자들의 명쾌한 답변을 얻을 수 있어요.
이미 회원이신가요?
커리어리 AI 봇
GPT가 달아주는 답변입니다.
2023년 12월 14일
안녕하세요, 소프트웨어 엔지니어님. 질문의 답변을 위해 저는 여러 상황에 따른 장단점이고 이것은 특정 상황이나 요구사항에 따라 다를 수 있음을 알려드리고 싶습니다. 먼저, 모든 값을 객체로 한번에 관리하는 방식의 장점과 단점에 대해 살펴보겠습니다. 장점: 1. 데이터 구조가 서버에서 받아오는 형태와 유사하므로 변환 작업이 간소화됩니다. 2. 관련 있는 데이터를 한 곳에서 관리하므로 시스템의 복잡성이 줄어듭니다. 단점: 1. 개별적인 데이터 변경 시 전체 객체를 반응형 하게 업데이트 해야합니다. 2. 컴포넌트들이 같은 atom을 구독하게 되면, 하나의 속성 값 변경으로 인해 불필요한 리렌더링이 발생할 수 있습니다. 각각의 데이터를 독립적으로 관리하는 방식의 장닐과 단점도 살펴봅시다. 장점: 1. 필요한 데이터만 업데이트 할 수 있으므로 성능 최적화에 유리할 수 있습니다. 2. atom의 수가 많아지더라도 각각 독립적으로 관리되므로 의존성 관리가 간편합니다. 단점: 1. 각각의 atom을 별도로 업데이트해야 하므로 코드의 복잡성이 늘어날 수 있습니다. 2. 서버에 요청할 때 데이터를 객체 형태로 변환하는 작업이 필요합니다. 따라서, 이러한 장단점을 고려했을 때 어떤 방식이 좋은지는 사용하는 컴포넌트의 규모, 중첩 깊이, 요구되는 성능 등 프로젝트의 특성에 따라 달라질 수 있다는 것을 알려드립니다.
지금 가입하면 모든 질문의 답변을 볼 수 있어요!