기동멘토
1. base component style 관련
도메인에 컴포넌트를 만들 때 base component(input, button 등)를 import하여 사용하는 중입니다.
현재 base component의 경우 default 값으로 (페이지 개발 시 쓰일)스타일이 완벽히 적용되어있지않고, 속성 값의 경우에도 기본적인 props만 받고 있습니다.
이런 상태에서 도메인 컴포넌트 개발 시 스타일드 컴포넌트 또는 인라인 스타일로 스타일을 다시 적용해야하는 상황들이 빈번하게 발생합니다. 코드가 매우 길어지고 지저분해보입니다.
현업에서 base component를 만들어 사용하실 때 완벽하게 스타일을 잡아서 만드시는지 궁금합니다
관련하여 커피챗시간에 답변을 드린 내용이라 간단하게만 적어두겠습니다.통일성을 위해 스타일은 고정해놓는것이좋습니다. props로 스타일을 너무 확장성있게 주면 안된다. 와이어프레임이 먼저 잘 그려져있어야, 어떠한 버튼리스트가 있는지 확정될 수 있고, 그에 따라서 컴포넌트를 구성하는데 도움이 됩니다.
- 버튼에 대한 종류별로 figma 를 정해준다.
처음부터 CSS에 하나하나 신경을 쓰면 머리가 아프다CSS보다는 우선 기능에 중점을 두고 개발하고 이후에 디자인을 적용해도 늦지 않을것 같습니다.저 같은 경우 어떤 식으로 동작을 하게 할 것이냐. handleChange, value 등의 props에만 집중해서 개발하고, 기능 개발이 어느 정도 진행되면 css작업을 합니다.물론 사이즈가 어느 정도 정해져 있긴 해야된다."버튼을 만들건데.. 그려진건 없어요..."이러면 안된다.base컴포넌트를 만들때 제일 조심해야되는 요소!
- 페이지마다의 요청사항이 다르다.
- 요청사항에 맞춰서 base컴포넌트를 만들면
- base컴포넌트의 초기 컨셉이 엉망이 된다.
- 따라서, base컴포넌트의 컨셉을 확실하게 정하고, page를 해당 컴포넌트에 맞추는 게 낫다. (바텀→탑)
2. API 로직 관련
선협님의 강의에서 컴포넌트는 순수하게 유지하고, 네트워크 로직의 경우 pages에서 작성하면 좋다는 설명을 들었습니다.
pages에서 따로 따로 관리하는 방법, utils에 따로 파일을 만들어 관리하는 방법 등 여러 방법이 존재할 것이라 생각합니다.
팀마다 사람마다 API 로직을 관리하는 방식은 다양하겠지만, 어떤 방법을 선택하는 것이 좋을지, 현업에서는 주로 어떤 방식을 사용하는지 궁금합니다.
페이지마다 axios에서 바로바로 받아서 API를 사용하는 방법은 추천하지 않는다.
- baseUrl사용
- 이 경우 400대 , 500대 에러 등에 대해서 공통적인 에러사항들에 대해서 공통적인 코드가 들어가게되겠죠?
- API 파일을 별도로 만들어서, 로직을 별도로 빼서 사용 (API.js)
.env(baseUrl) 이 무조건 있어야 한다! 별도의 파일을 빼서 api를 만드는것이 좋습니다. 처음부터 완벽한 props가 존재하는 컴포넌트는 존재하지 않아요. 그렇지만 page를 만들면서 공통적으로 발생되는 사항을 컴포넌트로 만들어서 -> 재사용하고, 공통 이슈가 발생하면 컴포넌트로 만들면서 점차 완성도를 높이는 것. 처음부터 설계, 기획단계에서 완벽한 컴포넌트는 없다. 비슷한 컴포넌트라도, 프로젝트의 성격에 따라 달라질 수 있다.
3. 개발 속도가 다른 팀원과의 협업 시
현재 저희 팀은 각자의 개발속도에 차이가 있습니다. 업무의 분배는 동일한 편이라고 생각합니다. 각자 베이스 컴포넌트, 훅과 페이지를 분배하여 프로젝트를 진행하고 있습니다.
다만 문제는 개발 속도가 상대적으로 느린 팀원이 개발하고 있는 컴포넌트(A)를 개발 속도가 빠른 팀원의 다른 컴포넌트(B)에서 필요로 할 때입니다.
저희는 개발 속도가 빠른 팀원이 일단 개발이 완료되지 않은 컴포넌트(A) 대신 임의로 데모로 작성하여 기능(B)을 개발하는 방식을 선택했습니다.
시간이 조금 흘러 A가 완성된 경우, 데모 컴포넌트로 개발이 되고 있던 B 컴포넌트도 이슈를 생성하여 수정을 해야 하는지 궁금합니다.
현업에서는 베이스 컴포넌트, 훅, 페이지에 대한 분배를 각각 하여 개발을 하는지, 아니라면 어떻게 개발 업무를 분배하여 협업을 하고 있는지 궁금합니다.
지금 여러분들 수준에서 동료의 개발속도를 가늠하는게 쉽지 않다.하지만, 협업에서는 기능을 언제까지 개발할 수 있는지 대략적으로 파악하는 능력을 배양하는게 중요하다. 그래야 개발일정을 산출해 낼 수 있는 것이기 때문. 그리고 그 결과에 따라서, 현재의 개발속도가 어느 정도인지를 파악할 수 있고, 결과적으로 전반적인 개발계획을 유동적으로 수립해 나갈 수 있다.업무의 분배 관련 :공통컴포넌트(만 만드는 팀이 존재) / 페이지(만 만드는 팀이 존재)할 수 있다.(여러가지 버튼, 라디오, 인풋) 등을 전담해서 개발하는 팀이 개발하고(프레임워크) 패키지화 할 수 있다.
리아 피드백
발표 영상
- 전반적으로 여유있는 발표가 듣는 사람도 편하게 만들어준 것 같아요. 굉장히 능숙하네요.
- 다만 노션 페이지를 살짝 확대해줬다면 어떨까라는 생각을 했어요. 듣는 사람을 고려하여 화면 확대 여부를 유동적으로 바꿔볼까요?
- 전체적인 내용이 텍스트로도 보여서 말씀하시는 내용에 대해 파악하기 쉬웠어요.
- 프로젝트 세부 내용에 대해서는 그림으로도 표현해보면 어떨까요? 텍스트로만 들으면 굉장히 복잡해보이네용.
- 타겟 설정 넘 좋네용.
- 기술 스택을 선택한 이유를 설명해 줘서 좋네용!
- 다만 리액트를 선택한 이유가 우리한테는 정말 공감되지만 다르게 표현해보면 어떨까요? 리액트리기 떄문에 리액트를 선택했다고 해도 좋지 않을까..!
- 피그마를 정말 알차게 사용하고 있다고 느꼈어요. 스토리라인도 볼 수 있어서 좋았습니다.
- 모달을 정말 귀엽게 잘 구현했군용.
- main에서 저장 버튼은 더 크게 만드실 예정이시죠?! 잘 안 보여서 날아갈까 무섭네용.
회고록
다음 회고 때에는 KPT를 진행해보면 어떨까 해요. 회고 전체에서 어떤 점이 어려웠는지만 나왔던 거 같아서 다소 아쉽습니다! https://brunch.co.kr/@jinha0802/35