코드 개발을 어떻게 할지 약속하는 시간
기술스택
언어: HTML, CSS, JS
라이브러리: React, Styled-Component, React Router, Redux → Redux toolkit
분업
- auth
폴더 구조
/public - favicon - data.json /src - assets - images - components - atoms - /Button - Button.jsx - styles.jsx - molecules - organisms - templates - pages - Home - Home.jsx - style.jsx - Event - Event.jsx - style.jsx - Search - Search.jsx - style.jsx - stores - hooks - providers - router - utils
컴포넌트 구조
구조 → atomic
- 컴포넌트 → 함수 선언문
함수 → 함수 표현식
- 스타일 임포트
- 임포트 순서
- react 관련 import
- 라이브러리 관련 import
- 모듈 or 커스텀 Hook 관련 import
- 스타일 import
// react 관련 import React, { useEffect, useState, useContext, useCallback } from 'react'; // 라이브러리 import { NativeStackNavigationProp } from '@react-navigation/native-stack'; import dayjs from 'dayjs'; // 모듈 import { FloatingButton, AgendaBox } from 'components'; import { IconPlus } from 'assets'; import { RootStackParamList, IScheduleProps } from 'types'; import { connectDB, createScheduleTable, deleteScheduleItem, getDateAndDayOfWeek, getScheduleItems, } from 'db'; import { useNotification } from 'hooks'; import { ONE_DAY, parseToSlash } from 'utils'; import { PopContext } from 'context'; // 스타일 import * as S from './style';
- 임포트시 절대 경로
- 익스포트
components - index.js - Button - Button.jsx
// components/index.js export {Component} from '/...'
// Component.jsx import * as S from './style.jsx' export unction Component() { const onClick = (e) => console.log(e); return( <S.Button onClick={onClick}>button</S.Button> ) }
// style.jsx import {styled} from 'emotion' export const Button = styled.button` `




📦src ┣ 📂assets ┣ 📂components ┃ ┣ 📂Event ┃ ┃ ┣ 📜Event.jsx ┃ ┃ ┗ 📜style.jsx ┃ ┣ 📂Home ┃ ┃ ┣ 📜Home.jsx ┃ ┃ ┗ 📜style.jsx ┃ ┗ 📜index.js ┣ 📂providers ┃ ┗ 📜AppProvider.jsx ┣ 📂router ┃ ┗ 📜Router.jsx ┣ 📂styles ┃ ┣ 📜GlobalStyle.jsx ┃ ┣ 📜index.js ┃ ┗ 📜theme.js ┣ 📜App.jsx ┣ 📜index.css ┗ 📜index.jsx
theme → 색 변수
코드 컨벤션 → 에어비엔비
커밋 메시지
- 한국어 문장
- 이모티콘 ㄴㄴ
feat : 새로운 기능에 대한 커밋 fix : 버그 수정에 대한 커밋 build : 빌드 관련 파일 수정에 대한 커밋 chore : 그 외 자잘한 수정에 대한 커밋(+라이브러리, .gitignore 수정) ci : CI관련 설정 수정에 대한 커밋(배포 관련) docs : 문서 수정에 대한 커밋 style : 코드 스타일 혹은 포맷 등에 관한 커밋(주석제거, 코드에 변화가 없을 때) refactor : 코드 리팩토링에 대한 커밋 test : 테스트 코드 수정에 대한 커밋
브랜치
git flow
- main
- develop
- feature
→
feature/name/기능
→ feature/GY/auth
route
이름 | 경로 |
홈 | / |
로그인 | /signin |
회원가입 | /signup |
게시물 작성 | /posts/create |
게시물 수정 | /posts/:post-id/update |
이벤트/모임 | /events |
검색 | /search?keyword=~~ |
사용자 프로필 | /profiles/:user-id |
사용자 정보 수정 | /profiles/update |
알림 | /notification |
기능 분업까지
auth(상권)
- signin
- signup
notification
home(민기)
- layout
event
- filter+modal
- data
posts(가연)
- CRUD
- feed(post)
- og
- 좋아요 댓글
search(인화)
- 사용자 목록
- 사용자, 포스트 검색
profiles
- profiles/:user-id
- profiles/update
- delete
웹뷰 생각하기
API 확인