Replies: 1 comment 1 reply
-
|
넹 좋은 거 같아요! |
Beta Was this translation helpful? Give feedback.
1 reply
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
현재 코드 컨벤션이 마땅히 없는 상황입니다.
특히 이전에 다른 분들이 작업해주신 코드를 제가 이어받기도 했고
또한 저 마저도 학습을 하다보니 매번 의사결정의 기준이 바뀌게 되었고 따라서 매번 바뀌는 컨벤션으로 인해서
AI를 활용할때 손해가 발생하는것 같습니다.
AI를 통해 컨벤션을 분석한 결과는 아래와 같습니다
전반적으로 next를 잘 사용할 수 있는 구조로 가는게 좋을 것 같다고 생각하는데 의견이 있으면 알려주시면 감사하겠습니다.
어드민 - 웹 - 대학 세개를 아우를 컨벤션을 만들어서 리뷰 및 개발 편의성 증진을 위함입니다.
페이지별로 보면 이렇게 정리할 수 있어요.
멘토페이지
가장 기준으로 삼기 좋은 형태예요.
page.tsx는 metadata, params, wrapper만 두고 실제 화면은./_ui아래로 내립니다. 화면 전용 hook은./_hooks, schema/util은./_lib에 둬서 route-local 컨벤션이 잘 보입니다. 다만MentorDetialContent같은 오타,Client/Content네이밍 기준은 정리하면 좋습니다.홈
Next에 꽤 잘 맞습니다. 서버 페이지에서 데이터를 가져오고,
_ui섹션 컴포넌트에 props로 내려요. 다만 독립적인 fetch는Promise.all로 병렬화하면 더 Next스럽습니다.커뮤니티
Next App Router 관점에서는 제일 진보된 편입니다. Server Component에서 React Query prefetch 후
HydrationBoundary로 넘기는 구조가 좋아요. 대신 route 내부 파일이CommunityPageContent.tsx,PostCards.tsx처럼 루트에 평평하게 있어서 멘토페이지 컨벤션과 다릅니다._ui,_hooks,_lib로 옮기면 통일감이 좋아집니다.지원 현황 / 성적 페이지
ScorePageContent,ScoreSearchBar,ScoreSheet등이 route root에 섞여 있습니다. 화면 상태, 필터링, 정렬 로직도 Content 안에 몰려 있어요. 추천은page.tsx는 얇게, UI는_ui, 필터/정렬 pure function은_lib, 복잡한 상태 제어는_hooks로 분리하는 방식입니다.마이페이지
page.tsx + _ui/MyProfileContent구조라 멘토페이지와 방향은 비슷합니다. 다만MyProfileContent하나가 프로필, 퀵액션, 계정관리, 로그아웃/탈퇴까지 다 들고 있어서 큽니다._ui/ProfileCard,_ui/QuickActions,_ui/AccountSection정도로 쪼개면 좋습니다.로그인
폼 중심 Client Page라
"use client"는 자연스럽습니다. 하지만LoginContent.tsx가 route root에 있고 schema도 같은 파일 안에 있습니다. 멘토페이지 기준으로 맞추려면./_ui/LoginContent,./_hooks/useInputHandler,./_lib/schema구조가 좋아요.회원가입 / 멘토 신청
멀티스텝 flow라 page가 client가 되는 건 이해됩니다. 그래도
page.tsx가 상태와 화면을 너무 많이 알기보다는ApplyMentorContent같은 client entry를_ui로 내리고, step 컴포넌트는_ui/steps, schema는_lib, step 상태 관리는_hooks로 두는 게 좋습니다.디스커션용으로 한 줄 요약하면:
Beta Was this translation helpful? Give feedback.
All reactions