컴포넌트 네이밍 컨벤션 관련 질문 드립니다.
116
작성한 질문수 6
안녕하세요! 강의 잘 보고 있습니다.
정환님이 제작하신 강의는 모두 수강하고 있는데요,
리액트나 넥스트 강의에서 보면 컴포넌트 파일명도 케밥 케이스로 작성하시던데, 일반적으로 컴포넌트는 파스칼 케이스로 작성하는 경우가 많아서 혹시 특별한 이유가 있는지 궁금합니다!
답변 2
3
안녕하세요 이정환입니다.
우선 제 강의를 꾸준히 들어주셔서 진심으로! 정말 감사드립니다 🙇♂
제가 폴더나 파일명에 케밥 케이스를 사용하는 이유는 크게 특별한 이유가 있는건 아닙니다. 그냥 개인적인 취향입니다 ...! 폴더나 파일명을 파스칼 케이스로 작명하게 될 경우 프로젝트 규모가 커졌을때 정렬이 흐트러지거나 시각적으로 일관성이 좀 떨어져보인다고 생각해서 이렇게 작명하고 있습니다!
또 저는 평소 대부분의 업무를 App Router 기반의 Next.js로 진행하고 있는데요, 아시겠지만 App Router에서는 page.tsx, layout.tsx, loading.tsx, error.tsx 등과 같이 파일명을 소문자 케밥 스타일로 작성하는 것이 공식적인 컨벤션입니다. 따라서 이런 구조에 맞춰 자연스럽게 리액트 프로젝트에서도 케밥 케이스를 사용하고 있습니다 😀
0
안녕하세요, 인프런 AI 인턴입니다. popo님!
파일 이름을 어떻게 설정할지에 대한 질문을 주셨군요. 리액트 및 넥스트.js와 같은 프레임워크에서는 팀과 개인의 취향에 따라 네이밍 규칙이 달라질 수 있습니다. 하지만 몇 가지 일반적인 컨벤션을 설명드리겠습니다.
컴포넌트 파일명: 리액트 컴포넌트 파일명에서는 보통 파스칼 케이스(PascalCase, ex.
MyComponent.js)를 사용합니다. 이는 컴포넌트를 클래스로 생성했던 전통에 기인한 방식입니다. 하지만 넥스트.js에서는 여러 특수 파일이 소문자 케밥 케이스(kebab-case, ex.my-component.tsx)로 제공되기 때문에 일관성을 맞추기 위해 케밥 케이스를 사용하기도 합니다.Next.js의 네이밍 규칙: 넥스트.js는 시스템 파일에서 특정 이름을 사용하고 있는 경우 소문자 케밥 케이스를 강제합니다. 예를 들어
loading.tsx,error.tsx와 같은 이름을 사용합니다. 이에 따라서 일부 개발자들이 동의하여 모든 컴포넌트 파일을 케밥 케이스로 작성하기도 합니다.
질문에 대한 더 자세한 내용은 이전에 비슷한 질문들이 있었으니 참고해보시면 좋을 것 같습니다:
- “컴포넌트,페이지 파일명 기준”에서는 파일명을 대문자로 하지 않는 이유와 넥스트.js의 규칙에 따라 사용하는 방법에 대해 설명이 되어 있습니다.
- “components 폴더 내 파일명 관련 질문 드립니다!”에서도 소문자의 파일명을 사용하는 이유가 특정 시스템 파일명과의 일관성을 맞추기 위해라는 설명이 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
명시적 타입 선언(콜론 타입 선언)과 as 타입 단언 차이
0
15
1
useMutation 적용 후 새로운 글 등록시 content가 안보여요
0
34
2
6.8 zustand 세션 질문입니다.
0
80
2
next.js 강의에서도 리액트 라이브러리들을 다뤄주시나요?
0
65
2
shadcn에서 radix ui와 base ui 차이는 뭔가요?
0
228
2
updateTodo 함수 생성시 화살표 함수 사용 안하는 이유
0
69
2
4.11 바로 투두 삭제가 안됨 질문
0
77
3
매개변수 updatedTodo 관련 질문
0
60
3
인증 정보가 만료되었을 때 라우트 가드 처리가 궁금합니다!
0
75
2
supabase를 사용하지 않을 경우 세션 데이터의 변경을 감지하고 스토어에 보관하는 방법이 궁금합니다!
0
63
2
4.6 id를 string으로 변경시 오류
0
58
2
리액트 타입스크립트 관련 질문있습니다.
0
56
1
소셜 로그인 구현하기 관련하여 질문이 있습니다!
0
93
2
ui 파일 질문드립니다.
0
67
1
tanstack query devtools에서 질문있습니다!
0
61
2
댓글 삭제 시 isPending 질문
0
57
2
두번째 예외상황에 대해 질문있습니다!
0
59
1
리액트 쿼리 질문입니다
0
62
2
개발자도구에서 components 가 안보입니다.
0
84
3
state 관리에 대한 정리
0
73
3
[(2.4) Shadcn/ui를 소개합니다] 강의 Shadcn 세팅 관련 질문 있습니다.
0
155
3
like 테이블에서 왜 create_at이 필요한지 궁금합니다.
0
69
1
삭제가 바로 안되네요ㅠ
0
57
2
access 토큰은 꼭 소셜서버로부터 받아서 사용해야만하나요?!
0
75
2





