HomeAboutMeBlogGuest
© 2025 Sejin Cha. All rights reserved.
Built with Next.js, deployed on Vercel
🐣
프론트엔드 데브코스 3기 교육생
/
🤩
기동팀
/
🎨
디자인 시스템
🎨

디자인 시스템

GitHub - team-gidong-design/FEDC3_design_storybook: 기동팀 스토리북 작성을 위한 레포입니다.
You can't perform that action at this time. You signed in with another tab or window. You signed out in another tab or window. Reload to refresh your session. Reload to refresh your session.
GitHub - team-gidong-design/FEDC3_design_storybook: 기동팀 스토리북 작성을 위한 레포입니다.
https://github.com/team-gidong-design/FEDC3_design_storybook
GitHub - team-gidong-design/FEDC3_design_storybook: 기동팀 스토리북 작성을 위한 레포입니다.
  • 선협 강사님이 만든 디자인 참고해서 만들어요~!
    • JS → TS
    • 추후 디자인 반영
 
  • 초기 세팅 → 민재님
    • storybook
    • react
    • emotion
    • eslint, prettier
  • 컴포넌트 분담
    • 민재: 아바타, 타이틀
    • 천욱: 버튼, 토스트
    • 지영: 모달, 로딩
    • 유리: 인풋, 스켈레톤
 

정해야 할 것

코딩 컨벤션 (참고용)

네이밍 (참고용)

  • 상수: 대문자 + 스네이크 네이밍 방법론 중복 상수 폴더로 관리?
  • 줄임말 쓰지 않기 풀 네임 (btn말고 button으로)
  • 동사 + 명사 → getValue | getRandomNumber | fetchUsers | onChangeInput
  • 이벤트
    • 현재 컴포넌트 내 이벤트 - on + eventName : onChangeInputValue
    • props로 받는 것 - ~handler : changeInputValueHandler
    • 함수 네이밍 규칙 동일하게 따르기
  • 상태관리
    • 2 depth이상 넘겨줄 때, 형제 컴포넌트는 전역 상태로 관리하기
  • 타입관리
    • type 키워드를 사용해서 타입을 정의한다.(interface X, https://hanpur.notion.site/ts-interface-type-2645a8c776b44902aca57d8225f75401)
    • 재사용할 타입만 분리하여 전역으로 관리 (index.d.ts파일에서) - 재사용안하는 건, 해당파일의 최상단에 정의
    • 타입 별칭 네이빙 방법론으로는 파스칼 케이스 방법론을 따른다.
  • 스타일
    • z-index는 100단위로 만약 사용했다면 꼭 말하기!!!
    • emotion props스타일 가이드 (object 스타일 사용하기)
      • // Or with object styles const Image1 = styled('div')<ImageProps>( { backgroundSize: 'contain' // props가 안들어가는 속성들 }, props => ({ // props가 들어가는 속성들을 처리 width: props.width, background: `url(${props.src}) center center` }) )
  • 주석달기 !! tsdoc → 설명이 필요한 부분에서 주석달기(모든 건 x)
    • 작업용 주석(각자 TODO, userID, 언제할거다)
    • 설명용 주석: 설명이 필요한 부분
    • vscode todo tree
    • /* * 어떤 일을 하는지 * 매개변수 * 리턴값 */
    • 주석을 전역 타입에서 사용해보고, 추후 논의
  • 컴포넌트
    • type -> style -> component 순서
    • 컴포넌트 정의를 함수 표현식 (arrow)
    • <></>
    • rendering 관련 return문 생략 or 작성(map, filter, etc…) / 일단 보류
    • 각 컴포넌트 파일은 하나로 분리한다. 자식 컴포넌트를 컴포넌트화 시키게 된다면 새로운 파일로 분리해서 작업을 진행한다. (논의 필요)
  • 경로
    • alias 절대 경로 이름 지정
      • @: src는 엣@ 사용
    • 같은 폴더 위치라면 상대경로로 그 외에는 절대경로 사용
  • node 버전
  • pr 템플릿
  • 코드리뷰 규칙 - 2명이상 approve
    • p1 ~ p5 중요도 표시
  • 애니메이션 라이브러리 쓸건지?
    • Framer Motion + Chakra UI
    • React Transition Group
    • react-spring
 
 
References
Storybook을 활용하여 본격적으로 디자인 시스템 구축하기
스토리북을 쓰는 방법을 어느정도 배웠으니, 이제 Hello 컴포넌트 말고 정말 디자인 시스템에 있어서 유의미한 컴포넌트들을 만들어봅시다. 그런데, 어떤 컴포넌트를 만들어야 할까요? 사실 가장 이상적인것은 프로젝트를 만드는 과정에서 처음부터 디자인 시스템을 구축하고 재사용이 자주 될 것 같은 컴포넌트를 만들게 될 때마다 디자인 시스템에 컴포넌트를 하나씩 ...
Storybook을 활용하여 본격적으로 디자인 시스템 구축하기
https://velog.io/@velopert/create-your-own-design-system-with-storybook
Storybook을 활용하여 본격적으로 디자인 시스템 구축하기
내 NPM 패키지(모듈) 배포하기
개발을 위해 npm install xxx로 설치하는 모듈이 많아지면서 자주 사용하는 나의 코드들도 같은 방법으로 제공하고 싶었죠.하지만 '코드 복붙'이 더 쉬우니 차일피일 미루던 일을 최근 기회가 생겨 시작했습니다.동시에 NPM 배포에 필요한 과정을 정리했습니다. 모듈은 Node.js require() 함수에 의해 로드할 수 있는 node_modules 디렉터리의 파일 또는 디렉터리입니다.모듈은 package.json 파일을 가질 필요가 없기 때문에 모든 모듈이 패키지는 아닙니다.
내 NPM 패키지(모듈) 배포하기
https://heropy.blog/2019/01/31/node-js-npm-module-publish/
내 NPM 패키지(모듈) 배포하기