rollup-plugin-postcss의 SASS 파일 내 custom alias 처리 문제
·
Frontend/Article
* 개발 환경 : react(cra), ts, storybook, sass, tailwind, rollup 1. 이슈 사항 프로젝트 내에서 상대경로를 쓰지 않고 custom alias 사용 중인 상황 ex) @ea => ./src rollup 에서 custom alias를 처리하기 위한 플러그인으로 @rollup/plugin-alias 가 있다. https://www.npmjs.com/package/@rollup/plugin-alias @rollup/plugin-alias Define and resolve aliases for bundle dependencies. Latest version: 5.0.1, last published: 9 days ago. Start using @rollup/plugin-a..
Style Dictionary 사용 방법 정리(feat. 피그마 디자인 토큰 가공하기)
·
Frontend/Article
이번 글에서는 Style Dictionary가 무엇인지와 사용 방법을 간단히 정리하고자 한다 1. 디자인 시스템과 Style Dictionary Style Dictionary가 무엇인지 알기 전에, 디자인 시스템이 무엇인지 알 필요성이 있다. 쉽게 설명하자면, 디자인 시스템은 디자인과 개발을 좀 더 쉽게, 일관되게, 효율적으로 만들고 관리하는 방법이라고 할 수 있다. 그러면 Style Dictionary와 디자인 시스템이 무슨 상관이 있는 걸까? Style Dictionary는 디자인 시스템에서 사용되는 디자인 토큰을 관리하고 적용하는 오픈 소스이다. * 디자인 토큰: 디자인에서 사용되는 요소(글꼴, 색상, 그림자 등)을 표준화 한 요소 그럼 디자인 토큰이 왜 필요한 걸까? 디자인 토큰은 css변수를 설..
Storybook path alias 설정
·
Frontend/Article
tsconfig의 path에 아래 별칭을 이용하여 사용중이었는데 "@": ["./packages/my-app"], "@/*": ["./packages/my-app/src/*"], storybook내부에서 아래 별칭을 사용하려면 main.ts에 alias설정을 해줘야 한다. https://storybook.js.org/docs/react/builders/webpack#troubleshooting Webpack Storybook is a frontend workshop for building UI components and pages in isolation. Thousands of teams use it for UI development, testing, and documentation. It’s open ..
[모던 자바스크립트 Deep Dive] 12장 함수
·
Frontend/Study
12장 함수 1. 함수란 ? 일련의 과정을 문으로 구현하고 코드 블록으로 감싸서 하나의 실행 단위로 정한 것 함수 정의를 통해 생성하고, 함수 호출로 실행한다. 2. 함수를 사용하는 이유 코드의 재사용성 유지보수의 편의성 코드의 신뢰성/가독성 3. 함수 리터럴 📌 구성 요소 : 함수 이름, 매개변수 목록, 함수 몸체 일반 객체는 호출할 수 없지만, 함수는 호출할 수 있으며 고유의 프로퍼티를 갖는다. 함수는 "객체" 이다. 4. 함수 정의 1) 함수 선언문 function add(x,y) { return x + y; } console.dir(add); // console.log와 다르게 객체의 프로퍼티까지 출력 console.log(add(2,3)); ✅ 함수 선언문은 표현식이 아닌 "문" 이다. (und..
[모던 자바스크립트 Deep Dive] 09 ~ 11장
·
Frontend/Study
09장 타입 변환과 단축 평가 1. 타입 변환 1) 명시적 타입 변환(explicit coercion) / 타입 캐스팅 : 개발자가 의도적으로 값의 타입을 변환 하는 것 var x = 10; var str = x.toString(); // 숫자를 문자열로 타입 캐스팅 2) 암묵적 타입 변환 : 개발자의 의도와는 상관없이 자바스크립트 엔진에 의해 암묵적으로 타입이 자동 변환되는 것 var x = 10; var str = x + ''; // typeof str = string 👉 명시적/암묵적 타입 변환은 기존 원시 값을 직접 변경하는 것이 아니라, 새로운 원시 값을 생성하는 것! 2. 암묵적 타입 변환 1) 문자열 타입으로 변환 1 + '2' // "12" NaN + '' // "NaN" true + ''..
자바스크립트의 숫자(Number)형 (Feat. 부동 소수점 vs 고정 소수점)
·
Frontend/Article
맨날 까먹어서 정리하는 내용 ... 자바스크립트에서의 숫자는 다른 언어와 달리 하나의 숫자 타입만 가진다. Number ECMAScript 사양에 따르면, 숫자 타입의 값은 배정밀도 64비트 부동소수점 형식을 따른다. 모든 수를 실수로 처리하며, 정수를 표현하기 위한 데이터 타입이 별도로 존재하지 않는다. 배정밀도 64비트 부동소수점은 무엇일까 ? 컴퓨터에서 실수를 표현하는 방법에는 크게 4가지가 있다. 컴퓨터가 소수점 아래 숫자가 있는 실수를 표기할 때, 소수점의 위치를 고정시켜 표현하는 방식을 고정소수점, 소수점의 위치를 고정시키지 않고 가수와 진수를 이용하는 방식을 부동소수점 이라 한다. 1. 단정밀도/배정밀도 고정소수점 방식 단정밀도 고정소수점 방식은 소수를 아래처럼 표현한다. [ 0 000000..
VanillaJs로 무한 스크롤 구현하기(feat: Intersection Observer)
·
Frontend/Article
모바일 UI에서 많이 보이는 무한 스크롤! ex) 페이스북, 인스타 등 해당 UI를 구현하기 위해서는 크게 두 가지 방법이 있다. 1. 스크롤 이벤트 이용 2. Intersection Observer 이용 필자는 observer api를 이용하여 구현할 예정이다. 스크롤 이벤트를 이용하여 구현하는 방식은, 매번 window의 스크롤 이벤트를 감지하여 스크롤 위치가 컨텐츠의 끝에 닿았는지 확인하는 절차가 필요하기에 성능 상 좋지 않다고 한다. 그래서 Intersection Observer로 무한스크롤을 구현하기 전에, 먼저 Intersection Observer가 무엇인지 알아보자 1. Intersection Observer https://developer.mozilla.org/en-US/docs/Web/..
[DAY 37] Vue (5)
·
Frontend/프로그래머스 FE 데브코스
1. slot : 부모 컴포넌트에서 자식 컴포넌트의 엘리먼트를 지정할때 사용 1) 기본 형식 - 부모 컴포넌트 Hello Vue - 자식 컴포넌트 2) slot 이름 지정 v-slot 디렉티브를 이용하여 slot 요소가 여러 개일때 이름을 붙여 지정해 줄 수 있다. (축약 #) ABC ABC 3) slot의 props - v-slot:default를 이용하여 하위 컴포넌트의 데이터를 가져와 출력할 수 있다. - #['이름'] 형태로 동적으로 이름을 지정해 줄 수 있다. {{ slotProps.hello }} // slotProps.hello {{ hello }} ... data(){ return { slotName: 'xyz' } } 2. 동적 컴포넌트 : 화면에 보여질 컴포넌트를 동적으로 제어할 수 있..
[DAY 36] Vue (4)
·
Frontend/프로그래머스 FE 데브코스
1. Node.js 와 npm 1) Node.js : JavaScript 엔진으로 빌드 된 JavaScript 런타임 2) npm : Node Packaged Manager, 모듈을 웹에서 받아서 설치하고 관리해주는 프로그램 + nvm : Node.js의 버전을 관리해주는 프로그램 + npm n : 맥 버전 node.js 버전 관리 nvm use 14 // node js 버전을 14버전으로 바꿈 2. npm 프로젝트 빌드 npm init npm init -y // 질문 생략 1) package.json 파일 구성 { "name": "프로젝트 이름", "version": "1.0.0", "description": "설명", "scripts": { // 사용자 빌드 키워드 }, "author": "", "l..