개발자
안녕하세요! 프로젝트 진행 중 어떤 방법이 더 나을지 모르겠어서 질문드립니다! 리스트 UI는 똑같고 배열 내용(api응답)만 다른 게시판 페이지가 두개 필요할 때 1. 페이지 하나만 만들고 url에 따라 내용(api요청)을 바꾼다 장점: 코드 작성이 적어짐 단점: 네이밍이 애매해짐 (복잡해질 수 있음) 2. 페이지 두개 만들고 스타일 컴포넌트를 재사용한다 장점: 네이밍이 구분됨 단점: 위 방법보다 코드 작성이 많아질 듯 좀 더 나은 방법과 이유 좀 무엇인지 부탁드립니다ㅠ 또는 위 방법이 아닌 더 좋은 방법이 있다면 알려주셔도 감사하겠습니다!!
답변 1
저라면 추후 프로젝트가 어떻게 업데이트 될지 모르고 UI만 똑같고 기능 추가가 다르게 들어갈 지도 모른다는 것을 고려하면 레이아웃 컴포넌트로 따로 빼고 재사용을 할 거 같네요. 두 개의 다른 페이지를 하나의 컴포넌트로 렌더링시키는 것은 결국 페이지 구분이 나뉜 것이기에 어떠한 기능이 다르게 추가될지도 모르고 단순히 카드같이 작은 단위가 아니기 때문에 재사용이 맞다는 생각이 드네요! 리팩토링을 위해서라도 좋은 코드를 짜는 것이 좋다고 생각하기 때문에 어느쪽이 좋은 코드인지 생각해보시길 바랄게요! 하지만 이것은 서비스 구현 목적에 따라, 그리고 개발자에 따라 달라질 것이라는 생각은 드네요! 제 개인적인 생각일 뿐입니다!
지금 가입하면 모든 질문의 답변을 볼 수 있어요!
현직자들의 명쾌한 답변을 얻을 수 있어요.
이미 회원이신가요?
커리어리 AI 봇
GPT가 달아주는 답변입니다.
2024년 02월 05일
개발에는 정답이 없으며 그 때그 때 상황과 요구사항에 따라 가장 좋은 방법이 바뀔 수 있습니다. 그러나 일반적으로 React는 컴포넌트의 재사용성을 권장하고 있기 때문에, 리스트 UI가 같고 데이터만 변경되는 경우라면 첫 번째 방법인 하나의 페이지에서 내용(api요청)을 바꾸는 방식을 추천드리고 싶습니다. 이를 위해선 URL에 따른 API 호출 로직을 분리하고, 각각의 API 호출 결과를 받아 동일한 UI 컴포넌트로 렌더링하는 구조를 선택할 수 있겠습니다. 이렇게 함으로써 코드의 중복을 최소화하면서 유니크 로직만 분리하여 관리할 수 있게 됩니다. React Router와 같은 라이브러리를 사용하시는 경우 특정 경로별로 다른 데이터를 불러오는 로직을 처리할 수 있으며, 네이밍 문제 역시 해당 경로와 관련된 명칭으로 설정하면 충분히 해결 가능합니다. 예) ```jsx <Route path="/path1" render={ () => <CommonList apiCallFunction={apiCallFunctionPath1} /> } /> <Route path="/path2" render={ () => <CommonList apiCallFunction={apiCallFunctionPath2} /> } /> ``` 여기서 'CommonList'는 UI를 그리는 메인 컴포넌트이고, apiCallFunction은 각각 필요한 API 호출을 분리한 함수입니다. 다만 이 모든 것은 프로젝트의 전체적인 구조나 기타 요구사항 등에 따라 달라질 수 있으므로 일정한 판단의 여지가 있음을 유념해주세요.
지금 가입하면 모든 질문의 답변을 볼 수 있어요!