Light Purple Pointer
Storybook chromatic ์‚ฌ์šฉํ•˜์—ฌ ๋ฐฐํฌํ•˜๊ธฐ
ยท
FRONTEND/๊ธฐํƒ€
ํ˜„์žฌ Storybook์„ ์‚ฌ์šฉํ•˜์—ฌ ์ปดํฌ๋„ŒํŠธ ๋ฌธ์„œํ™”๋ฅผ ํ•˜๊ณ  ์žˆ๋Š”๋ฐ, ๋‹ค๋ฅธ ํŒ€์›๋“ค์—๊ฒŒ ๊ณต์œ ๊ฐ€ ๋˜์–ด์•ผ ํ•˜๋Š” ์ƒํ™ฉ์ด๋ฏ€๋กœ ๊ฐ„๋‹จํ•˜๊ฒŒ ๋ฐฐํฌํ•  ์ˆ˜๋Š” ์—†์„๊นŒ ํ•˜๋‹ค๊ฐ€ chromatic์ด๋‚˜ netlify๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋” ๊ฐ„๋‹จํ•˜๊ฒŒ ๋ฐฐํฌ๊ฐ€๋Šฅํ•˜๋‹ค๊ณ  ํ•˜์—ฌ ์ž‘์—…ํ•˜์˜€๋‹ค. ์Šคํ† ๋ฆฌ๋ถ ๊ณต์‹๋ฌธ์„œ์—๋„ chromatic์„ ์‚ฌ์šฉํ•œ ๋ฐฐํฌ ๋ฐฉ๋ฒ•์„ ์•ˆ๋‚ดํ•˜๊ณ  ์žˆ๋‹ค. https://storybook.js.org/tutorials/intro-to-storybook/react/ko/deploy/ Storybook TutorialsLearn how to build and test UI components with Storybook. Our in-depth frontend guides are created by Storybook maintainers and p..
ํ”Œ๋Ÿฌํ„ฐ ํ”„๋กœ์ ํŠธ ์‹œ์ž‘
ยท
FRONTEND/Flutter
์• ๋ฎฌ๋ ˆ์ดํ„ฐ์—์„œ ์•ฑ ์‹คํ–‰ํ•˜๊ธฐ
ํ”Œ๋Ÿฌํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ  ๋ฐ ๊ฐœ๋ฐœํ™˜๊ฒฝ ์ค€๋น„(์œˆ๋„์šฐ)
ยท
FRONTEND/Flutter
1. ํ”Œ๋Ÿฌํ„ฐ์— ์ฃผ๋ชฉํ•˜๋Š” ์ด์œ  1. ๋†’์€ ๊ฐœ๋ฐœ ํšจ์œจํ”Œ๋Ÿฌํ„ฐ๋ฅผ ์ด์šฉํ•ด ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋ฉด ์•ˆ๋“œ๋กœ์ด๋“œ์™€ iOS ๋ชจ๋ฐ”์ผ ์•ฑ ๋ชจ๋‘ ํ•œ ๋ฒˆ์— ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ์–ด์„œ ํšจ์œจ์ ์ž„. ์ด๋ ‡๊ฒŒ ๊ฐœ๋ฐœํ•œ ์•ฑ์€ ์–ด๋–ค ์šด์˜์ฒด์ œ์—์„œ๋„ ๋˜‘๊ฐ™์€ ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค์™€ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์„ ์ œ๊ณตํ•œ๋‹ค. ๋˜ํ•œ, ํ”Œ๋Ÿฌํ„ฐ์˜ ํ•ซ ๋ฆฌ๋กœ๋“œ ๊ธฐ๋Šฅ๋•๋ถ„์— ๊ฐœ๋ฐœ์ž๊ฐ€ UI๋ฅผ ์‹ค์‹œ๊ฐ„์œผ๋กœ ํ™•์ธํ•˜๊ณ  ์ˆ˜์ •ํ•˜๋ฉฐ ์•ฑ์˜ ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•˜๋ฉด์„œ ์ฝ”๋“œ๋ฅผ ๋ณ€๊ฒฝํ•˜๋Š” ๋“ฑ ์ƒ์‚ฐ์„ฑ์„ ํš๊ธฐ์ ์œผ๋กœ ๋†’์ผ ์ˆ˜ ์žˆ์Œ. 2. ์—ญ๋™์ ์ด๊ณ  ์œ ์—ฐํ•œ ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šคํ”Œ๋Ÿฌํ„ฐ๋Š” ๋‹ค์–‘ํ•œ ์œ„์ ฏ์„ ์ œ๊ณตํ•˜๋ฏ€๋กœ ์‚ฌ์šฉ์ž ๋งž์ถคํ˜• ์•ฑ์„ ์‰ฝ๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Œ. ์œ„์ ฏ์ด๋ž€ ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์„ ์–ธํ•˜๊ณ  ๊ตฌ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์ž„. ์œ„์ ฏ์€ ํ˜„์žฌ ๊ตฌ์„ฑ๊ณผ ์ƒํƒœ์— ๋”ฐ๋ผ ๋ทฐ์—์„œ ์–ด๋–ป๊ฒŒ ๋ณด์ผ์ง€๋ฅผ ์„ค๋ช…ํ•œ๋‹ค. ์ƒํƒœ๊ฐ€ ๋ฐ”๋€Œ๋ฉด ์œ„์ ฏ์€ ์„ค๋ช…์„ ๋‹ค์‹œ ์ž‘์„ฑํ•˜๊ณ  ํ”„๋ ˆ์ž„์›Œํฌ๋Š” ์ด์ „ ์„ค๋ช…๊ณผ ..
React Three Fiber(r3f, drei ) ์„ค์น˜ ๋ฐ ๊ธฐ์ดˆ
ยท
FRONTEND/React
Introduction - React Three FiberReact-three-fiber is a React renderer for three.js.r3f.docs.pmnd.rs 1. React-three-fiberReact-three-fiber๋Š” React ๊ธฐ๋ฐ˜์œผ๋กœ Three.js๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ž…๋‹ˆ๋‹ค. Three.js๋Š” 3D ๊ทธ๋ž˜ํ”ฝ ๋ Œ๋”๋ง์— ์žˆ์–ด ๊ฐ€์žฅ ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๋Š” JavaScript ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ด์ง€๋งŒ, DOM๊ณผ๋Š” ๋ณ„๊ฐœ์˜ ๋ Œ๋”๋ง ํ™˜๊ฒฝ์„ ํ•„์š”๋กœ ํ•ฉ๋‹ˆ๋‹ค. React-three-fiber๋Š” ์ด๋ฅผ React์˜ ์ƒํƒœ ๊ด€๋ฆฌ ๋ฐ ์ปดํฌ๋„ŒํŠธ ๊ตฌ์กฐ์™€ ํ†ตํ•ฉํ•˜์—ฌ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์žฅ์ ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.https://r3f.docs.pmnd.rs/getting-started/introduction Introduct..
React Three fiber (R3F) ์ธํ„ฐ๋ ‰ํ‹ฐ๋ธŒ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ
ยท
FRONTEND/React
๊ฐœ๋ฐœ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ 1. DOM -> React   2. SVG -> D3.js (Data visualizing)https://d3js.org/ D3 by Observable | The JavaScript library for bespoke data visualizationD3 The JavaScript library for bespoke data visualization Create custom dynamic visualizations with unparalleled flexibilityd3js.org  3. Canvas ->Three.js 2D -> p5.js , pixi.js (๊ฒŒ์ž„์—…๊ณ„์—์„œ ๋งŽ์ด ์‚ฌ์šฉํ•จ)   3D -> Three.js , babylon.js https://threejs.org/ Thre..
Object.entries() ๊ฐ์ฒด์˜ ํ‚ค-๊ฐ’ ์Œ์„ ๋ฐฐ์—ด๋กœ ๋งŒ๋“ค์–ด ๋ฐ˜ํ™˜ํ•˜๋Š” ๋ฉ”์†Œ๋“œ
ยท
FRONTEND/๊ธฐํƒ€
1. Object.entries() Object.entries() ๋ฉ”์†Œ๋“œ๋Š” JavaScript์—์„œ ๊ฐ์ฒด์˜ ํ‚ค-๊ฐ’ ์Œ์„ ๋ฐฐ์—ด๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ ๋ฐ˜ํ™˜ํ•˜๋Š” ๋ฉ”์†Œ๋“œ.์ด๋ฅผ ํ†ตํ•ด ๊ฐ์ฒด์˜ ์†์„ฑ์„ ์†์‰ฝ๊ฒŒ ๋ฐ˜๋ณต(iterate)ํ•˜๊ฑฐ๋‚˜, ๋ฐฐ์—ด ํ˜•์‹์œผ๋กœ ์ž‘์—…ํ•  ์ˆ˜ ์žˆ๋‹ค.   2. Object.entries() ์‚ฌ์šฉ ์˜ˆ์ œ 1) ๊ธฐ๋ณธ ์‚ฌ์šฉ const object1 = { a: 'somestring', b: 42, c: "์„ธ ๋ฒˆ์งธ", d: "๋„ค ๋ฒˆ์งธ",};console.log(Object.entries(object1)); [["a", "somestring"],["b", 42],["c", "์„ธ ๋ฒˆ์งธ"],["d", "๋„ค ๋ฒˆ์งธ"]]2) ๋ฐ˜๋ณต๋ฌธ ์‚ฌ์šฉ const obj = { a: 1, b: 2, c: 3 };// Object.entrie..
MonthPicker ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ชจ์Œ
ยท
FRONTEND/๊ธฐํƒ€
https://www.npmjs.com/package/react-month-picker react-month-pickerMonth-Picker Component offers a popup month selection panel with responsive layouts.. Latest version: 2.2.1, last published: 4 years ago. Start using react-month-picker in your project by running `npm i react-month-picker`. There are 13 other projects in twww.npmjs.com   https://www.react-lite-month-picker.dev/ React Lite Month P..
React.Fragment ์‚ฌ์šฉ ์ด์œ 
ยท
FRONTEND/Next.js
1. React Fragment? ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ž์‹์„ ํ•˜๋‚˜์˜ ๋ถ€๋ชจ ์š”์†Œ๋กœ ๋ฌถ๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ์ปดํฌ๋„ŒํŠธ. HTML ๊ตฌ์กฐ ์ƒ์— ๋ถˆํ•„์š”ํ•œ DOM ์š”์†Œ๋ฅผ ์ถ”๊ฐ€ํ•˜์ง€ ์•Š๊ณ ๋„ ์—ฌ๋Ÿฌ ์š”์†Œ๋ฅผ ๊ทธ๋ฃนํ™”ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์คŒ import React from "react";function Example() { return ( Title This is a paragraph. );}export default Example;์œ„์˜ ์˜ˆ์ œ์—์„œ ์™€ ๋Š” Fragment์˜ ์ถ•์•ฝ ๋ฌธ๋ฒ•์œผ๋กœ, ๋ Œ๋”๋ง ์‹œ ์‹ค์ œ DOM์— ์ถ”๊ฐ€์ ์ธ ๋…ธ๋“œ๋ฅผ ์ƒ์„ฑํ•˜์ง€ ์•Š์Œ ์ด๋ฅผ ํ™œ์šฉํ•˜๊ธฐ ์ข‹์€ ์˜ˆ์ œ๊ฐ€ map ์„ ์‚ฌ์šฉํ•  ๋•Œ์ด๋‹ค.map ์˜ ๊ฒฝ์šฐ ์ตœ์ƒ์œ„ ์ปดํฌ๋„ŒํŠธ์— key๋ฅผ ๋ถ€์—ฌํ•ด์•ผํ•˜๋Š”๋ฐ  key๋ฅผ ๋ถ€์—ฌํ•˜๊ณ ์ž ๋ถˆํ•„์š”ํ•œ div๋ฅผ ๋งŒ๋“ค๊ธฐ๋ณด๋‹จ React.Fr..
NEXT.JS - API Routes๋ž€?
ยท
FRONTEND/Next.js
API Routes ?NEXT.JS ์—์„œ API๋ฅผ ๊ตฌ์ถ•ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ฃผ๋Š” ๊ธฐ๋Šฅ์ž„ ๊ฐ„๋‹จํ•œ API๋ฅผ ๊ตฌ์ถ•ํ•ด์„œ ํด๋ผ์ด์–ธํŠธ, ์ฆ‰ ๋ธŒ๋ผ์šฐ์ €๋กœ ๋ถ€ํ„ฐ ์š”์ฒญ์„ ๋ฐ›์•„ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๊บผ๋‚ด์˜จ๋‹ค๋˜๊ฐ€์•„๋‹ˆ๋ฉด ๋˜ ๋‹ค๋ฅธ ์„œ๋“œํŒŒํ‹ฐ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ถˆ๋Ÿฌ์™€์„œ ์ „๋‹ฌ์„ ํ•ด์ฃผ๋Š” ์ผ๋ จ์˜ ๋™์ž‘๋“ค์„ ํ•  ์ˆ˜ ์žˆ์Œ.   Next์•ฑ์—์„œ๋Š” pages -> api ๋ผ๋Š” ํด๋” ๋‚ด์— hello.ts๋ฅผ ๋ณด๋ฉด ์ž๋™์œผ๋กœ api ํŒŒ์ผ์ด ์ƒ์„ฑ๋˜์–ด์žˆ๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ, // Next.js API route support: https://nextjs.org/docs/api-routes/introductionimport type { NextApiRequest, NextApiResponse } from "next";type Data = { name: str..
NEXT.JS ์˜ ํ”„๋ฆฌํŽ˜์นญ(pre-fetching)์˜ ๋™์ž‘
ยท
FRONTEND/Next.js
Pre-Fetching์ด๋ž€?    -  ํŽ˜์ด์ง€๋ฅผ ์‚ฌ์ „์— ๋ถˆ๋Ÿฌ์˜ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค.    -  ์˜ˆ๋ฅผ ๋“ค์–ด ํ˜„์žฌ ํŽ˜์ด์ง€์—์„œ ๋งํฌ๋กœ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋Š” ํŽ˜์ด์ง€๋ฅผ ํ˜„์žฌ ํŽ˜์ด์ง€๊ฐ€ ์‹คํ–‰๋  ๋•Œ ์‚ฌ์ „ ๋ฏธ๋ฆฌ ๋‹ค ๋ถˆ๋Ÿฌ์™€ ๋†“๋Š” ๊ธฐ   -  ํŽ˜์ด์ง€ ์ด๋™์„ ๋น ๋ฅด๊ฒŒ ์ง€์ฒด์—†์ด ํ•˜๊ธฐ ์œ„ํ•ด NEXT.JS์—์„œ ์ง€์›ํ•œ๋‹ค.   ์ด๋Š” ๊ฐœ๋ฐœ์ž๋ชจ๋“œ์˜ ๋„คํŠธ์›Œํฌ ํƒญ์—์„œ ๋ˆˆ์œผ๋กœ ํ™•์ธ์ด ๊ฐ€๋Šฅํ•˜๋‹ค. ์ดํ•ด๋ฅผ ์‰ฝ๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•ด ์•„๋ž˜์—๋Š” ๊ฐ ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•˜๋Š” Link์™€ ๋ฒ„ํŠผ์„ ํด๋ฆญํ–ˆ์„ ๋•Œ ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ๋ฅผ ํ†ตํ•ด ์ด๋™ํ•˜๋Š” ๊ฒฝ์šฐ ๋‘ ๊ฐ€์ง€๋ฅผ ์ž‘์„ฑํ•˜์—ฌ ํ™•์ธํ•ด ๋ณด๊ฒ ๋‹ค. import "@/styles/globals.css";import type { AppProps } from "next/app";import Link from "next/link";import { useRouter..
ใ„ด