HomeAboutMeBlogGuest
© 2025 Sejin Cha. All rights reserved.
Built with Next.js, deployed on Vercel
프로그래머스 프론트엔드 데브코스 2기
프로그래머스 프론트엔드 데브코스 2기
/
✌️
찬희팀
/
🧑🏻‍💻
Devin
/
6/9 개발 협업을 위한 약속

6/9 개발 협업을 위한 약속

Created
Jun 8, 2022 09:20 AM
Tags
코드 개발을 어떻게 할지 약속하는 시간
기술스택
언어: 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
  • 컴포넌트 → 함수 선언문
    • 함수 → 함수 표현식
  • 스타일 임포트
  • 임포트 순서
      1. react 관련 import
      1. 라이브러리 관련 import
      1. 모듈 or 커스텀 Hook 관련 import
      1. 스타일 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` `
 
 
 
notion image
notion image
notion image
notion image
Effective Atomic Design
소프트웨어 개발 중 설계에서 가장 중요한 것은 모듈화와 추상화 두 가지라고 할 수 있다. 웹 프론트엔드 업계는 이미 React, Vue.js, Angular와 같은 오픈소스 프레임워크를 통해 끝을 달리는 추상화와 모듈화를 보여주고 있다. 특히 모듈화 측면에서 세 프레임워크는 컴포넌트 인터페이스를 매우 쉽게 제공하기 때문에 프레임워크 사용자는 효율적인 재사용이 가능하고 캡슐화된 컴포넌트를 아주 간단하게 만들 수 있다.
Effective Atomic Design
https://kciter.so/posts/effective-atomic-design
Effective Atomic Design
📦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 확인