Skip to content

사이프 디자인 시스템 미팅로그

Shinwon Jang edited this page Nov 24, 2024 · 8 revisions

주차별 미팅로그입니다.

1~2주차 (24.11.05) - 킥오프

오픈소스 UI 컴포넌트 라이브러리 (ex. MUI 등)을 살펴보고 잘 작성했다고 생각하는 컴포넌트들을 조원들에게 소개해보자

참고하기 좋은 라이브러리들의 목록을 정리해 보았습니다.

  • vibe
    • 프로젝트의 구조가 복잡하지 않고 코드가 간결하여 읽기 좋았습니다.
  • shadcn/ui
    • 요즘 인기 있는 라이브러리입니다.
    • headless한 형태가 컴포넌트의 확장성을 보장해서 좋았습니다.
    • tailwind에 대한 의존성이 있는 부분은 조금 아쉬웠어요.
  • 우아한 공방
    • 컴포넌트의 레이어를 분리하여 구현한 점이 인상적이었습니다.
  • radix-ui
    • headless 컴포넌트의 시초격입니다.
    • 다형성을 가능하게 만들어주는 Slot 컴포넌트가 눈여겨 볼 만하다고 생각해요.
  • 아틀라시안 디자인 컴포넌트
    • 다른 것 보다 문서화가 잘 되어있어서 좋았습니다.
  • MUI
    • 지원하는 컴포넌트가 많아서 좋지만, styled-components의 의존성이 있어서 사용하는 입장에서 스타일 이슈를 해결하기 어려웠어요.
  • kuma UI
    • css-in-js를 사용하면서도 zero runtime인 부분이 흥미로웠어요.

우리 디자인 시스템에 활용하고 싶은 스타일링 라이브러리 (ex. postcss, tailwind, css-in-js 등)을 골라보자

  • SCSS, SASS, PostCSS, tailwind, css-in-js 등 많은 옵션이 있어요.
  • 아직 누구나 납득할만한 정답이 없기 때문에, 최대한 적은 비용으로 사용이 가능한 css module 방식을 적용해보고 이후에 리팩토링을 진행해보아요.

사이프 디자인 시스템에게 멋진 이름을 지어주자! 이름 공모전~

  • sds, sip-ui, synergy, ins8(인사이트), 초록(chorok) 등등
  • 이름도 차차 결정해보기로..

킥오프 논의 정리

  • 1차 미션의 끝 그림은 아마 사이프 홈페이지의 아토믹한 요소들을 디자인 시스템으로 전환하는 것으로 잡아보기로 했어요.
  • 가능하다면 2주차까지 미션을 연장하여 호흡을 길게 가져가보려고 해요.
  • 컴포넌트의 개발 과정은 백로그에 존재하는 컴포넌트 선택 - 기능 명세 작성 - 테스트 시나리오 작성 - 컴포넌트 코드 구현 - 스토리 작성 혹은 유즈케이스를 보여주는 샘플 코드 구현 의 순서를 따르는 것을 권장해요.
  • 가능하다면 주당 1개 이상의 컴포넌트를 구현하는걸 목표로 잡아보았으면 좋겠어요.
  • 주 단위로 목표 진행 상황을 공유하되, 1주는 슬랙에 쓰레드로 공유, 1주는 온/오프라인 미팅으로 논의가 필요한 안건을 이야기 나누는 시간으로 정했어요.

3주차 (24.11.14)

Skeleton 구현 중

  • mui와 radix-ui의 사용 방식이 다른 것이 흥미로웠어요.
  • mui는 단순히 Skeleton 컴포넌트를 보여주는 용도인 반면, radix는 실제 렌더링 되어야 할 컴포넌트 자체를 스켈레톤으로 표현하고자 하는 목적이 있었어요.

https://mui.com/material-ui/react-skeleton/

https://www.radix-ui.com/themes/docs/components/skeleton

Typography 구현 완료

Badge 구현 중

  • 뱃지 기능을 정의하다보니 컬러 같은 디자인 토큰들을 같이 정하면 좋겠단 생각이 들었어요.

RadioGroup 구현 중

  • 테스트 코드 작성 & 기능 구현을 진행 중이고, 디테일한 부분을 잡아나가고 있어요.
  • 컴포넌트 테스트가 처음이라 진도가 생각보다 더딘 것 같아요.

Input 구현 중

  • 역시 테스트 코드는 익숙하지 않아요.
  • 디자인 토큰의 필요성을 저도 느꼈어요.

Select 구현 중

  • 인터렉션이 있는 컴포넌트라서 난이도가 있네요. 다른 컴포넌트로 방향을 선회해볼까 고민이에요.

4주차 (24.11.23)

주요 결정 사항

개발 프로세스

  • PR 병합: 1명 approve로 충분
  • 알림 관리: 슬랙 노티 채널 생성 예정

코드 컨벤션

  • Props: 전체 bypass 방식 채택
  • Ref: forwardRef 사용 확정
  • 패키지 네이밍: kebab-case 사용

디자인 시스템

  • 색상: chakra-ui 기반, 직관적 네이밍
  • 반응형: PC/Mobile 두 가지로 구분
  • 글로벌 스타일: 별도 패키지로 관리 예정

레포지토리 도구

  • CodeRabit, Chromatic, CodeCov 설치 완료

팀 문화

  • 히딩크 모드 도입: 팀원 간 반말 사용
  • PR 작성도 반말로 통일 (의현 : 존대는 비효율적)
  • 존댓말 사용 시 페널티 (추가 컴포넌트 구현)

다음 논의 사항

  • 컴포넌트 명세 작성 및 구현 실습
  • 신원 : 템플릿 제너레이터 관련 논의

5주차

6주차

도움이 되는 정보들