나누고 싶은 이야기
요즘 리액트 강의에서 스토리북을 같이 사용하고 있는데요 리액트를 쓰는 현업에서 스토리북이 얼마나 사용되는지 궁금해지더라구요. 스토리북에 관해서 이야기 나눠보고 싶습니다~ (범님)
- Q. story 북?
- A. 준혁님, 희라님
- ui 컴포넌트를 시각적으로 좀 더 확인할 수 있는 것.
- 스토리 북을 사용하면 컴포넌트가 제대로 동작하는지 확인 가능
- 컴포넌트를 개발할 때 도움을 주는 것
- Q. 디자인 시스템?
- A. 성민님
- 프론트 엔드, 디자이너 -> 협업 문서 느낌.
- 컴포넌트를 작성할 때 재사용한 단위를 제공하기 위해서 작성하는 것으로 알고 있다.
- 멘토님 - story북 전 디자인시스템을 얘기하는 것이 good
- app을 총괄하는 문서로 동작할 수 있다.
- 디자인 시스템을 문서화 => 도와주는 것이 스토리북
그리고 곧 있으면 팀프로젝트를 시작해서 팀프로젝트 시에 협업에 도움이 되거나 협업을 강화할 수 있는 도구나 컨벤션, 사이트? 등이 있다면 공유해주셨으면 합니다!
- 지라, 컴플루언스 쯤 -> 규모가 큰 회사는 도움이 된다.
- 오히려 트렐로, 깃허브 이슈를 쓰는 것이 도움이 될 수 있다.
- 오히려 코드리뷰에 관한 내용을 주로 보면 좋을 것 같다. -> 이게 더 중요하다.
최근 tailwindcss가 점점 편하다고 느끼고, 그에 반해 @emotion과 같은 런타임에서 동작하는 css-in-js 라이브러리의 속도가 느린 것 같다는 개인적인 경험이 있었습니다. 그래서 요즘에는 어떤 CSS 라이브러리를 많이 사용하는지 궁금하여 npm trends를 찾아봤는데, 12월 3일 자 데이터 상으로 tailwindcss가 @emotion, styled-components를 제치고 1위를 했더라구요! 그래서 멘토님께서는 tailwindcss와 같은 주문형 atomic css 라이브러리에 대해 어떻게 생각하시는지 여쭤보고 싶고, 외에도 선호하시는 기술이 있는지 궁금합니다!
또 최근에 vanilla-extract라는 제로 런타임 CSS-in-JS 라이브러리가 관심을 많이 끌고 있는 것 같은데, 이에 대해서 어떻게 생각하시는지 궁금합니다! (성민님)
- tailwind - tailwind와 styled components는 역할이 다르다.
- tailwind에서 제공해주지 않는 스타일은 일일히 해줘야된다.
- 다만, 멘토님은 tailwind 좋아한다.
- 제로 런타임 css-in-js를 사용하는 이유
- 성민님 : css를 컴포넌트화해서, 좀도 html구조에 맞게 사용
- 내부적으로 style을 클래스화 해주고, 자동으로 prefix를 붙여서 재사용가능하도록 해준다.
- 재사용가능한 단위, 개발자 친화적
- 멘토님 : 그냥 css - 재사용 가능, css요즘 모듈 스코프 다 지원한다.
- 제로 런타임 css in js는 js로 떨어진다는게 가장 장점인 것 같다.
- 번들러와 관련된 얘기 일 수 있지 않을까.
- 애니메이션에 good
- @emotion - 왜 쓰는지 명확하게 설명이되면 사용하는 거 좋다고 생각
- 취향의 영역이다. 100프로 맞는 논리가 없는 영역.
멱등성 - 연산을 여러 번 적용하더라도 결과가 달라지지 않는 성질을 의미한다.
함수형 프로그래밍에서는 순수함수를 만들어야한다.
- 순수함수 함수에 동일한 인자를 패스했을 때 항상 같은 값을 반환하는 함수다. y = x+2 일때 x=2면 y는 아무리 호출해도 4다. -> 멱등성 보장 o side effect(부수효과)가 없는 함수
useEffect를 사용하면, 멱등성을 보장하지 않는 함수를 만들 수 있다.
커머스 사이트 를 만드는데
비 브라우저 클라이언트(검색봇, 미리보기)가 유용
cls - 이미지 가 뜨면서, 레이아웃이 shift되는 것
레이지 로드 -
next.js - 새로 이미지를 인코딩해서 보내줬다는 얘기
이미지 크기가 작아짐.
인코딩(한번 변환이 된 파일)된 파일으
webp - 지원하는 브라우저가 많지 않음. 브라우저에 맞춰서 인코딩 해줌.
최적화에 도움이 많이 된다.
accept-encoding : 어떤 것으로 압축할지
styled-component에 prop를 지정해줄 수 있어서 금방 되었다.
react router browserrouter createrouter 버전6
컴포넌트 방식을 사용하는 것이 좋지 않을까
reduce toolket을 깔아라..
logger가 deplicated됐다.
툴팁
usehover
useclick
usefocus
mui - 툴팁
ref를 줘서 ref를 조작할 수 있도록..