HomeAboutMeBlogGuest
© 2025 Sejin Cha. All rights reserved.
Built with Next.js, deployed on Vercel
🤎
프론트엔드 데브코스 5기 교육생
/
⌛
정호일팀
/
🔥
호일팀 프로젝트 페이지
/
💻
개발 문화
💻

개발 문화

🛠️ 기술 스택💄 코드 컨벤션🧑🏻‍💻 eslint, prettier⚡️ code 규칙📂 디렉토리 구조⚙️ github ⌥ 브랜치 전략🌈 커밋 컨벤션

🛠️ 기술 스택

BASE
4
MORE
11
WORK
4
No Select0
TypeScript
TypeScript
language
React
React
library
Vite
Vite
build
npm
npm
package
axios
axios
API
Redux
Redux
stateManagement
react-query
react-query
dataFetching
react-router-dom
react-router-dom
route
storybook
storybook
test
vitest
vitest
test
Chakra UI
Chakra UI
UI library
Emotion
Emotion
style
ESLint
ESLint
codeFormat
Prettier
Prettier
codeFormat
Vercel
Vercel
deploy
Slack
Slack
co-work
Notion
Notion
co-work
Github
Github
co-work
Discord
Discord
co-work
비동기 및 에러 처리는 어떻게 할 것인가 ?
  • 종혁
    • [ suspense 컴포넌트 + errorboundary 컴포넌트 ] 를 사용하여 제어하는 것이 좋아보인다 !
      • errorboundary 컴포넌트가 감싸는 형태
⇒ 비동기는 suspense 컴포넌트 로 처리, 에러 처리와 관련된 errorboundary 컴포넌트에 대해선 추가 조사가 필요
 
React Query와 함께 Concurrent UI Pattern을 도입하는 방법 | 카카오페이 기술 블로그
카카오페이에서 React Query를 활용하여 Concurrent UI Pattern을 도입한 사례에 대해 소개합니다. 이 글은 연작 중 2편에 해당합니다. 1편: 카카오페이 프론트엔드 개발자들이 React Query를 선택한 이유, 2편: React Query와 함께 Concurrent UI Pattern을 도입하는 방법
React Query와 함께 Concurrent UI Pattern을 도입하는 방법 | 카카오페이 기술 블로그
https://tech.kakaopay.com/post/react-query-2/
React Query와 함께 Concurrent UI Pattern을 도입하는 방법 | 카카오페이 기술 블로그
 

💄 코드 컨벤션

🧑🏻‍💻 eslint, prettier

📌
eslint, prettier 추천해주는거 까지 + prettier에서 설정 추가하기 (tap 칸 수, 속성 줄 바꿈 등등)
  • 홑따옴표 (’ ’) 사용
 

⚡️ code 규칙

  • 컴포넌트 생성할 때는 화살표 함수 사용
  • if문 curly룰 적용
 
네이밍
  • type, 컴포넌트, 파일명 ⇒ PascalCase (ex. MainPage.tsx)
  • 함수, 변수(state 등)명 ⇒ camelCase
    • 함수명 - 함수 네이밍은 동사 + 명사 (ex. onChange, getUserData …)
    • 함수명, 변수명 작성 시, 함축어 말고 풀네임 : btn ⇒ button
  • 상수명 ⇒ UPPER_SNAKE_CASE (ex. API_KEY)
 
이벤트 핸들러
  • 이벤트 발생 시 동작하는 함수들 ⇒ on~~ (ex. onBackMove)
 
css
  • font-size : rem
  • widht, height : px, vw, vh (100%가 아닌 %는 지양)
  • margin, padding : px
  • styled 부분은 컴포넌트 아래에 작성하기
type
  • interface 사용
 
  • alias 절대 경로(경로 별칭) ⇒ /src = @
  • API 응답 타입 위치
    • 재사용성 높은 것은 type.ts 폴더에 관리
 
  • nullish 연산자
    • 일단 사용하되, PR 때 논의 (눈에 잘 안 보일 경우 안쓰는 방향으로 조정)
  • 삼항연산자, 축약 표현(&&) vs if문
    • JSX 내부에선 필연적으로 삼항연산자, 축약 표현(&&)
    • JSX 외부, 즉 함수를 정의할 때는 PR 때 논의
    • 삼항연산자 중첩 금지
  • if문 ⇒ 가능하면 Early Return
  • curly-rule 사용
 
React 컴포넌트 타입
  • 리액트 v18로 넘어오면서 React.FC or props & 반환 타입을 직접 지정하는 형태로 타이핑 해줘야 한다.
⇒ React 컴포넌트 타입은 React.FC을 사용
const Welcom: React.FC<WelcomeProps> = ({ name }) => { ... } // 근데 책에 나와있는 예시에서는 별도로 컴포넌트 타입을 지정해주지 않음

📂 디렉토리 구조

📌
작업 중 필요에 따라 유기적으로 변동
(아래는 예시로 가져온 디렉토리 구조) ├── src └── assets | │ ├── components | | └── Post // default 컴포넌트에서 분리가 발생하면 여기에 넣기 | | └── index.tsx // default 컴포넌트 │ ├── types // 명세 + 한 번 이상 쓰이는 타입 파일 | ├── pages | ├── constants // 스타일 상수, 그냥 상수는 파일로 분리! | ├── hooks | ├── apis | ├── atoms | ├── utils | ├── styles | ├── storage | ├── App.tsx | ├── index.tsx └──
 

⚙️ github

⌥ 브랜치 전략

📌
github flow 기반
main : 배포 전용 브랜치
develop : 개발 전용 브랜치
 
pull 받을 때는 develop로 부터 받으며, develop에서 브랜치 분기가 일어난다.
  • 기능을 추가할 때는 feature/기능명
  • 무언가를 수정할 때는 fix/기능명
  • 스타일 수정할 때는 style/기능명
  • 주석 제거, 등등 문서 작업 docs/기능명
  • 이슈를 사용한다면 feature/#이슈번호/기능명
  • 기능 명 작성 시, 단어가 여러 개일 경우 -으로 구분한다.
 
PR 보낼 때 feature/@ → develop 로 보낸다. ⇒ PR 보내고 브랜치를 삭제하는 방식
  • 실질적으로 레포에 남아있는 브랜치는 main, develop
 
develop 브랜치에서 작업 내용 검수한 후 배포 전 main 브랜치로 머지
 

🌈 커밋 컨벤션

📌
gitmoji + 템플릿 기반 commit 작성 (+ 이슈 번호)
 
  • 커밋 메세지 형태 (템플릿 형태에 맞게 수정 필요)
✨ 타이머 기능 추가 - 메인 페이지에 타이머 기능을 추가 하였습니다. 이슈 번호 : #6
 
  • 깃모지 사용법
⚡️ Gitmoji 사용법 정리 (+ 깃모지 툴 소개)
Gitmoji 란? gitmoji란 git + emoji를 합쳐서 부르는 말로 emoji를 이용하여 commit message를 작성하는 tool이라고 보면 될 듯하다. 지금까지 그냥 글로만 커밋 메세지를 써왔겠지만, 메세지에 이모지(이모티콘)을 더하면, 나중에 커밋 메세지를 훑어볼때 훨씬 가독성 높게 읽기가 가능해니다. 예를 들어 커밋 메시지에 이모티콘을 사용하면 사용된 이모티콘만 보고 커밋의 목적이나 의도를 쉽게 식별할 수 있게 된다. 위의 커밋 로그처럼 단순하게 글귀만 나열하는 것보다 시각적인 강조를 얻을 수 있는걸 느낄 수 있다. 그리고 이모지 아이콘에 익숙해졌다면, 글을 읽지 않아도 전체적으로 어떤 일이 있었는지 한눈에 볼 수 있게 된다. 예를들어, ✨ 모양의 이모지는 기능 추가를 의미하는 깃모..
⚡️ Gitmoji 사용법 정리 (+ 깃모지 툴 소개)
https://inpa.tistory.com/entry/GIT-⚡️-Gitmoji-사용법-Gitmoji-cli
⚡️ Gitmoji 사용법 정리 (+ 깃모지 툴 소개)
 
  • 커밋과 이슈 연결하기
[개발] Github 이슈와 커밋 메시지를 연결해보자
안녕하세요 devport 입니다. Github에 이슈를 대응하고 커밋할 때에 특정 포맷을 사용하게된다면 커밋된 내용이 자동으로 이슈에 반영되는 기능에 대해서 간단히 알아보도록 하겠습니다. Github commit message 이슈에 자동 링크 Github의 Repository에 대하여 Commit Message에 "#[Issue Number]"를 입력하게 될 경우 자동으로 이슈에 커밋 내용을 추가하게 됩니다. 추가된 이슈는 커밋 메시지와 함께 링크를 제공하게 되며 링크를 클릭하게 되면 변경 이력에 대하여 출력 하게 됩니다. 커밋과 함께 이슈를 Close 할 수 있는 Keyword 이슈에 올라온 버그 또는 기능을 수정하였을때에 Commit Message에 적절한 키워드를 사용하게되면 이슈를 같이 Clos..
[개발] Github 이슈와 커밋 메시지를 연결해보자
https://devport.tistory.com/12
[개발] Github 이슈와 커밋 메시지를 연결해보자
 
아래 명령어 사용시 커밋 template 적용 가능. 파일 이름을 .gitmessage.txt 로 변경(파일 명 앞에 온점 중요합니다)해주시고 파일이있는 디렉토리에서 명령어를 실행해주시면 됩니다. or 디렉토리까지 적어주시면됩니다
  • git config --global commit.template .gitmessage.txt
  • git config --global commit.template /test/study/.gitmessage.txt
 
폴더 대소문자 구분을 위하여
git config core.ignorecase false 으로 대소문자 구분 가능하게 설정 후
git rm -r --cached . 로 현재경로의 캐시를 지워주신뒤 add, commit 등 진행해주시면 됩니다
 
슬랙&깃 연동
https://adjh54.tistory.com/5#1)%20%5BSlack%5D%20Slack%EC%97%90%EC%84%9C%20Github%EC%97%90%20%EC%97%B0%EA%B2%B0%20%ED%95%A0%20%EC%B1%84%EB%84%90%EC%9D%84%20%EB%A7%8C%EB%93%AD%EB%8B%88%EB%8B%A4.-1
 

 
🪣
휴지통