HomeAboutMeBlogGuest
© 2025 Sejin Cha. All rights reserved.
Built with Next.js, deployed on Vercel
🤎
프론트엔드 데브코스 5기 교육생
/
🐻
문동욱팀
/
대박사건
대박사건
/
💻
컨벤션
💻

컨벤션

 

☑️ 코드 컨벤션

폴더명
🐫
함수명, 변수명은 Camel Case로 작성합니다.
🔡
기본 폴더명은 Lower Case로 작성합니다.
🔠
자식 폴더명은 Pascal Case로 작성합니다.
타입 및 인터페이스는 Pascal Case로 작성합니다.
타입 및 인터페이스는 Pascal Case로 작성합니다.
함수명
💡
함수명은 동사+명사 로합니다. ex) getName
🤘🏻
이벤트 핸들러는 handle + 명사 + 동사로 입니다.
⚠️
export default 방식은 rsf 단축키를 사용합니다.
🚧
import 정렬 순서는 react > 라이브러리 > component > hook이며, eslint로 설정합니다.
➕
함수 표현 방식은 default 함수만 function 키워드 사용하고 나머지는 화살표 함수 + 함수 표현식을 사용합니다.
🗿
복잡한 함수 앞에 /** */으로 문서 주석을 작성한다.
변수명
🧡
btn(button), img(image), wrap(wrapper), bg(background), e(event) 를 제외한 모든 변수명은 fullname을 사용하는 것을 원칙으로 합니다. 변수 축약 시 한번 더 고민해야 할 이름은 축약하지 않고 대중적으로 많이 사용되는 것들은 축약할 수 있습니다(ex: btn, img, wrap, bg, 등)
style
🫧
container는 하나 이상의 요소를 포괄하는 개체를 지칭하는 의미를 지니며, wrapper는 하나의 개체만을 포함합니다.
🔍
ESLint 규칙은 아래와 같습니다
{ "semi": true, "singleQuote": true, "endOfLine": "lf", "singleAttributePerLine": true, "jsxBracketSameLine": true, "trailingComma": "none", "importOrder": [ "^react", "<THIRD_PARTY_MODULES>", "^@/components/(.)$", "^@/hooks/(.)$", "^@/(.)$", "^@emotion/(.)$", "^[./]" ], "importOrderSortSpecifiers": true, "plugins": ["@trivago/prettier-plugin-sort-imports"] }
💱
borde(px), border-radius(px, %)를 제외한 모든 단위는 rem입니다.
🍀
css 속성 선언 순서는 Naver 순서를 참고합니다.

🖤 커밋 메시지 컨벤션

❗
"헤더: 제목"의 형태이며, : 뒤에만 space가 있음에 유의합니다.
🙋🏻‍♀️
모든 커밋은 [추가, 삭제, 이동, 수정, 구현]으로 끝내야합니다.
헤더 이름
설명
init
프로젝트 첫 세팅
feat
기능 구현 사용자 입장에서 변화가 있을 경우
refactor
사용자 입장에서 변화가 없는 코드 파일명 폴더명 변경 및 이동
chore
주석 추가적인 의존성 설치 기타
design
CSS만 수정(UI수정)
fix
버그 수정
docs
문서를 수정한 경우(README)
coment
주석 추가 및 제거
setting
개발 환경 변경
rename
파일 혹은 폴더명을 수정하거나 옮기는 작업만인 경우
remove
파일을 삭제하는 작업만 수행한 경우
➕
Gitmoji 사용법

🫧 Branch 전략

notion image
 
  1. 브랜치 관리
    1. main > dev > feature (기능 단위)
  1. 브랜치 명명
    1. feat/#이슈번호/기능명 ex) feat/#12/make-post
  1. 주의사항
      • 브랜치는 삭제하지 않는다. (브랜치가 너무 많아져 복잡해질 경우 회의를 통해 삭제합니다)
      • 기능명 작성 시, 단어가 여러 개면 - 로 구분합니다.
      • dev → main: squash and merge / feature → dev : merge pull request

📝 PR 템플릿

## 📑 구현 사항 - [ ] 구현한 사항 작성 <br/> ## 🚧 특이 사항 - [ ] </br> ## 🚨관련 이슈 #이슈번호

⛔️ 디렉토리 구조

1️⃣
alias 절대 경로를 사용합니다. ( /src ⇒ @ , /src/components ⇒ )
2️⃣
types폴더에서는 api 관련 등 공통되는 타입만 관리, 나머지 타입은 각 파일에서 정의합니다.
3️⃣
apis폴더에서는 공통된 target에 대하여 한 파일로 해당 관련 함수들 작성합니다. (ex. post관련 api는 post.ts 한 파일에서 관리)
4️⃣
components 폴더에서는 각 컴포넌트 폴더안의 컴포넌트 파일은 index.tsx파일에 작성합니다.
5️⃣
components 폴더에서는 각 컴포넌트 폴더안의 이모션 스타일은 각 폴더에서 index.style.tsx 생성한다.
├─ public │ ├─ assets │ │ ├─ fonts │ │ └─ images ├─ apis ├─ src │ ├─ assets │ │ └─ images │ ├─ components │ │ ├─ Channel │ │ ├─ ChannelList │ │ ├─ Common │ │ ├─ Message │ │ ├─ MyPage │ │ ├─ Post │ │ ├─ Comment │ │ ├─ SignIn │ │ ├─ SignUp │ │ └─ Splash │ ├─ hooks │ │ ├─ api │ │ └─ common │ ├─ pages │ ├─ store │ ├─ styles │ ├─ types └─ └─ utils

참고 내용

CSS 클래스 네이밍 시 container vs wrapper 차이 구분하기
콘테이너로 정할까, 랩퍼로 정할까... container와 wrapper 모두 일반적으로 엘레먼트를 포괄하는 요소로서의 의미를 지니고, 클래스 이름으로 많이 사용되는 단어들입니다. 무언가를 포함한단는 데에서 같은 의미의 단어로 사용할 수 있고, 작성자와 해독자 입장에서 구분 없이 해당 내용을 받아들이는 데에 큰 문제가 없을 것입니다. 다만 보다 엄격하게 두 단어를 구분하여 사용한다고 하면 다음과 같은 내용을 참고하여 의미 구분을 할 수 있을 것으로 보입니다. 본 내용은 스택오버플로우에서 2010년 논의된 'CSS Language Speak: Container vs Wrapper?'의 내용을 기반으로 작성되었습니다. 해당 논의 내용을 보면, 기보적으로 차이를 두지 않고서 사용해도 무방하지만, 엄격하게 구분..
CSS 클래스 네이밍 시 container vs wrapper 차이 구분하기
https://uxdev.org/entry/CSS-클래스-네이밍-시-container-vs-wrapper-차이-구분하기
CSS 클래스 네이밍 시 container vs wrapper 차이 구분하기
[React] public폴더 src폴더 어디에 넣어야 되는걸까? / react에서 img불러오기
npx create-react-app my-app을 터미널에 입력하면 자동으로 public 폴더와 src 폴더가 생성된다. 두 폴더에 무슨 차이가 있을까?
[React] public폴더 src폴더 어디에 넣어야 되는걸까? / react에서 img불러오기
https://velog.io/@daeun/React-public폴더-src폴더-어디에-넣어야-되는걸까
[React] public폴더 src폴더 어디에 넣어야 되는걸까? / react에서 img불러오기
 
 
 
 
 
 
초기 내용

Code 컨벤션


  • PR 규칙
    • 1명 이상 코드 리뷰 한 후, Approve
  • 코드 및 파일 표기법
    • 변수 / 함수명: camelCase
    • 기본 폴더명: lowercase
    • 자식 폴더명: PascalCase
    • 타입 및 인터페이스: PascalCase
  • 기본적인 컨벤션은 박영웅님 강의에 나온 eslint 규칙 그대로 사용(다시 문서화 하기)
스타일 관련 회의는 각자 어떤 기술을 사용하고 싶은지 정한 다음 금요일에 다시 회의하기
단위도 금요일에 다시 정하기
  • 함수 표현 방식 → default 함수만 function 키워드 활용, 화살표 함수 + 함수 표현식
  • 함수명 네이밍: 동사 + 명사 ex) getName
  • 이벤트 핸들러: handle + 무슨 동작을 하는지 + 이벤트 명
  • export default 방식은 rsf 단축키 그대로 사용하기.
  • import 정렬은 eslint로 설정하기. react > 라이브러리 > component > hook