Post cover

React Class vs React Hooks Lifecycle ๋น„๊ต ์ •๋ฆฌ

4์‹œ๊ฐ„ ํ›„
React Class์—์„œ ์‚ฌ์šฉํ•˜๋Š” Lifecycle๊ณผ React Hooks์—์„œ ์‚ฌ์šฉํ•˜๋Š” Lifecycle์˜ ์ฐจ์ด์ ์„ ๋น„๊ต ์ •๋ฆฌํ•œ๋‹ค. COMPONENTDIDMOUNT // Class class Example extends React.Component { componentDidMount() { ... } } // Hook con...
Post cover

Letsencrypt๋กœ ๊ณต์ธ CA ์ ์šฉํ•˜๊ธฐ

14์ผ ์ „
1. LETSENCRYPT ํด๋ผ์ด์–ธํŠธ ๋‹ค์šด๋ฐ›๊ธฐ ๋‹ค์šด๋กœ๋“œ ๋ฐ›๊ณ ์žํ•˜๋Š” ๊ฒฝ๋กœ์—์„œ ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•œ๋‹ค. git clone https://github.com/letsencrypt/letsencrypt 2. ์˜์กด์„ฑ ๋‹ค์šด๋กœ๋“œ ๋ฐ›๊ธฐ ๋‹ค์šด๋กœ๋“œ ๋ฐ›์€ ํ›„ letsencrypt ๋””๋ ‰ํ† ๋ฆฌ์—์„œ ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•œ๋‹ค. ./letsencrypt-auto --help 3...
Post cover

React Hot Loader Patch Warning ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•

ํ•œ ๋‹ฌ ์ „
์ตœ๊ทผ React ๋ฒ„์ „์„ ์ตœ์‹ ์œผ๋กœ ์˜ฌ๋ฆฌ๋ฉด์„œ ๋ธŒ๋ผ์šฐ์ € ๊ฐœ๋ฐœ์ž ์ฝ˜์†”์—์„œ ๋ถˆํ•„์š”ํ•œ React Hot Loader Warning ๋กœ๊ทธ๊ฐ€ ์ฐํžŒ๋‹ค. ๋‚˜์™€ ๊ฐ™์€ ๋ฌธ์ œ๋ฅผ ๊ฐ€์ง€๊ณ  ๋‹ค์–‘ํ•œ ์‚ฌ๋žŒ๋“ค์ด React Hot Loader ์ด์Šˆ์— ์˜ฌ๋ ธ๊ณ , ๋‚˜๋Š” ๊ทธ ์ด์Šˆ์— ๋‹ต๋ณ€๋“ค์„ ๋ณด๊ณ  ํ•ด๊ฒฐ์— ๋‚˜์„ฐ๋‹ค. React-Hot-Loader: react-๐Ÿ”ฅ-dom patch is not d...
Post cover

[React Design Editor] ์ฐจํŠธ ์ถ”๊ฐ€

ํ•œ ๋‹ฌ ์ „
์ด๋ฒˆ์— React Design Editor ํ”„๋กœ์ ํŠธ์— ์ฐจํŠธ๋ฅผ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋„๋ก ์—…๋ฐ์ดํŠธ ํ–ˆ๋‹ค. ์ฐจํŠธ๋Š” Canvas๋กœ ๊ฐœ๋ฐœ๋œ Baidu์˜ Echarts๋ฅผ ์‚ฌ์šฉํ•˜์˜€๋‹ค. ์ตœ์ดˆ๋Š” Chart.js๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Canvas์˜ Context๋กœ ์ฐจํŠธ๋ฅผ Fabric.js ๋‚ด๋กœ ์ง์ ‘ ๋ Œ๋”๋ง ํ•˜๋ ค ํ–ˆ์œผ๋‚˜ Chart.js์˜ ๋ ˆ์ด์•„์›ƒ ๊ธฐ๋Šฅ ์ œ์•ฝ์— ๋ง‰ํ˜€ Echarts๋ฅผ ์„ ํƒํ•˜๊ฒŒ ...
Post cover

Next.js๋กœ ์ •์  ์›น์‚ฌ์ดํŠธ ๋งŒ๋“ค๊ธฐ - 5. Material UI ์ ์šฉํ•˜๊ธฐ

6๋‹ฌ ์ „
์ด๋ฒˆ์—๋Š” ํ”„๋กœ์ ํŠธ์— Material UI๋ฅผ ์ ์šฉํ•˜์—ฌ ๋ ˆ์ด์•„์›ƒ์„ ๋งŒ๋“ค์–ด ๋ณด๊ณ  ๋ช‡๊ฐ€์ง€ ์ปดํฌ๋„ŒํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ ˆ์ด์•„์›ƒ์„ ๋งŒ๋“ค์–ด๋ณด๋ ค๊ณ  ํ•œ๋‹ค. ๋จผ์ € Metarial UI๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด npm package๋ฅผ ๋ฐ›๋Š”๋‹ค. npm install --save @material-ui/core @material-ui/icons @material-ui/styles Next...
Post cover

Next.js๋กœ ์ •์  ์›น์‚ฌ์ดํŠธ ๋งŒ๋“ค๊ธฐ - 4. Routing ์‚ฌ์šฉํ•˜๊ธฐ

6๋‹ฌ ์ „
์ง€๋‚œ ๊ธ€์—์„œ index.js์™€ post.js๋ฅผ ์ƒ์„ฑํ–ˆ์—ˆ๊ณ  Routing์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  URL๋กœ ์ง์ ‘ ์ ‘๊ทผํ•ด์„œ ํ™”๋ฉด์„ ํ™•์ธํ–ˆ์—ˆ๋‹ค. ์ด๋ฒˆ ๊ธ€์—์„œ๋Š” Next.js์˜ Routing์„ ์‚ฌ์šฉํ•˜์—ฌ ํŽ˜์ด์ง€ ์ „ํ™˜์„ ํ•ด๋ณด๋ ค๊ณ ํ•œ๋‹ค. > Next.js github์— Routing์— ๋Œ€ํ•œ ์„ค๋ช…์ด ์ž˜ ๋‚˜์™€์žˆ๋‹ค. Next.js์—์„œ Route๋Š” pages๋””๋ ‰ํ† ๋ฆฌ ๊ฒฝ๋กœ์— ์ž‘์„ฑํ•œ...
Post cover

Next.js๋กœ ์ •์  ์›น์‚ฌ์ดํŠธ ๋งŒ๋“ค๊ธฐ - 3. ๋ ˆ์ด์•„์›ƒ

6๋‹ฌ ์ „
์ด์ „ ๊ธ€์—์„œ ํ”„๋กœ์ ํŠธ ๊ตฌ์„ฑ์„ ํ•˜์—ฌ ๊ฐ„๋‹จํ•œ ํ™”๋ฉด์„ ํ™•์ธํ–ˆ์—ˆ๋‹ค. ์ด๋ฒˆ์—๋Š” Next.js์— ๋‚ด์žฅ๋˜์–ด ์žˆ๋Š” _document.js, _app.js, _error.js๋ฅผ ์ปค์Šคํ„ฐ๋งˆ์ด์ง•ํ•˜์—ฌ ๋ ˆ์ด์•„์›ƒ์„ ์ƒˆ๋กญ๊ฒŒ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•˜๋ ค๊ณ  ํ•œ๋‹ค. > ๊ฐ๊ฐ์— ๋Œ€ํ•œ ์„ค๋ช…์€ Next.js ๊ตฌ์กฐ์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. _DOCUMENT.JS ํŒŒ์ผ ์ƒ์„ฑ _document.js...
Post cover

Next.js๋กœ ์ •์  ์›น์‚ฌ์ดํŠธ ๋งŒ๋“ค๊ธฐ - 2. ํ”„๋กœ์ ํŠธ ๊ตฌ์„ฑ

6๋‹ฌ ์ „
์‚ฌ์‹ค Next.js๋Š” ์„ค๋ช…ํ• ๊ฒŒ ๋ณ„๋กœ ์—†๋‹ค. ์˜ˆ์ œ๋“ค์ด ๋„ˆ๋ฌด ์ž˜๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์—.. ๊ทธ๋ ‡์ง€๋งŒ ๋‚ด ๋จธ๋ฆฟ์†์—์„œ ์‚ฌ๋ผ์ ธ๊ฐ€๊ธฐ ๋•Œ๋ฌธ์— ๊ธฐ๋ก์ด๋ผ๋„ ๋‚จ๊ธฐ๋ ค๊ณ  ์ž‘์„ฑํ•œ๋‹ค. 1. NPM ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ ํ”„๋กœ์ ํŠธ๋ฅผ ๊ตฌ์„ฑํ•˜๊ธฐ ์œ„ํ•ด static-website ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ํ•˜๋‚˜ ๋งŒ๋“ค๊ณ  cd static-website๋กœ ๊ฐ€์„œ npm init์œผ๋กœ npm ํ”„๋กœ์ ํŠธ๋ฅผ ๋งŒ๋“ค์ž. > ์ฐธ๊ณ ๋กœ n...
Post cover

Windows์—์„œ openssl๋กœ ์ธ์ฆ์„œ ์ƒ์„ฑํ•˜๊ณ  MQTT๋กœ ํ…Œ์ŠคํŠธํ•˜๊ธฐ

6๋‹ฌ ์ „
ํšŒ์‚ฌ์—์„œ MQTT๋ฅผ SSL/TLS๋กœ ํ…Œ์ŠคํŠธํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์ƒ๊ฒผ๋Š”๋ฐ, ๊ธฐ์กด์— ๋‚˜์™€์žˆ๋Š” Eclipse Mosquitto๋กœ ํ•˜๋ ค๋‹ค๊ฐ€ ์ด์™• ํ•˜๋Š” ๊น€์— Javascrpt๋กœ MQTT Broker๋ž‘ Client (Pub, Sub)๋ฅผ ์ง์ ‘ ๊ตฌํ˜„ํ•ด๋ณด๊ธฐ๋กœ ํ–ˆ๋‹ค. ์ „์ฒด์ ์œผ๋กœ MQTT Broker์™€ Client๋ฅผ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋“ค์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. * Mosca ...
Post cover

React์—์„œ .tsx ์—†์ด Typescript ์‚ฌ์šฉํ•˜๊ธฐ

7๋‹ฌ ์ „
์ด๋ฒˆ ๊ธ€์—์„œ๋Š” ๊ธฐ์กด์— .js, .jsx ํ™•์žฅ์ž๋กœ ์ž‘์„ฑ๋œ React ์ปดํฌ๋„ŒํŠธ์—์„œ Typescript๋ฅผ ์ ์šฉํ•˜์—ฌ ์ปดํฌ๋„ŒํŠธ ๊ฐœ๋ฐœ์ด๋‚˜ ์‚ฌ์šฉ ์‹œ์— ํƒ€์ž…์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด์„œ ์„ค๋ช…ํ•˜๋ ค๊ณ  ํ•œ๋‹ค. Button.js ์ปดํฌ๋„ŒํŠธ๋กœ ๊ฐ„๋‹จํ•œ ์˜ˆ๋ฅผ ๋“ค์–ด๋ณธ๋‹ค. src/ components/ button/ index.js ...
Post cover

Next.js๋กœ ์ •์  ์›น์‚ฌ์ดํŠธ ๋งŒ๋“ค๊ธฐ - 1. Next.js ๊ตฌ์กฐ

7๋‹ฌ ์ „
Next.js๋Š” ํ˜„์žฌ ๊ฐ€์žฅ ์œ ๋ช…ํ•œ React์šฉ ์„œ๋ฒ„ ์‚ฌ์ด๋“œ ๋ Œ๋”๋ง ํ”„๋ ˆ์ž„์›Œํฌ์ด๋‹ค. ํ”„๋ ˆ์ž„์›Œํฌ๋กœ์จ ์ดํ•ดํ•˜๊ธฐ ์‰ฌ์šด ๊ตฌ์กฐ์™€ ์ˆ˜๋งŽ์€ ์˜ˆ์ œ๋“ค, ๊ทธ๋ฆฌ๊ณ  ๋‹ค์–‘ํ•œ ํ”Œ๋Ÿฌ๊ทธ์ธ๋“ค์„ ์ง€์›ํ•˜๊ณ  ์žˆ์–ด ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์—๊ฒŒ ์‚ฌ๋ž‘๋ฐ›๊ณ  ์žˆ๋‹ค. ๋˜ํ•œ, Next.js๋Š” next export๋ผ๋Š” ๋ช…๋ น์–ด๋กœ routing ๊ฒฝ๋กœ๋กœ ํ•˜์—ฌ๊ธˆ ์ •์  ์›น์‚ฌ์ดํŠธ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ๋„ ์ œ๊ณตํ•˜๊ณ  ์žˆ๋‹ค. > ...
Post cover

medium-zoom ์ ์šฉํ•˜๊ธฐ

7๋‹ฌ ์ „
ํ‰์†Œ Medium์—์„œ ๊ฐœ๋ฐœ ํฌ์ŠคํŒ…์„ ์ฐพ์•„๋ณด๋Š” ํŽธ์ธ๋ฐ, ๊ธ€์—์„œ ์ด๋ฏธ์ง€๋ฅผ ํด๋ฆญํ–ˆ์„ ๋•Œ, ์คŒ์ด ๋˜๋Š” ๊ธฐ๋Šฅ์ด ์ด๋ป๋ณด์—ฌ์„œ ๋‚ด ๊ฐœ๋ฐœ ๋ธ”๋กœ๊ทธ์—๋„ ์ ์šฉํ•˜๊ณ  ์‹ถ์–ด ๋น„์Šทํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋“ค์ด ์žˆ๋‚˜ ์ฐพ์•„๋ณด๊ฒŒ ๋˜์—ˆ๋‹ค. ์šฐ์„  ์ด ๋ธ”๋กœ๊ทธ๊ฐ€ React๋กœ ๊ฐœ๋ฐœํ–ˆ์œผ๋‹ˆ React์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ฐพ์•„๋ณด๋‹ˆ react-medium-image-zoom์ด ์žˆ์—ˆ๋‹ค. ํ•˜์ง€๋งŒ React๋กœ...
Post cover

overscroll-behavior: contain ์†์„ฑ ์‚ฌ์šฉํ•˜๊ธฐ

7๋‹ฌ ์ „
์›น์—์„œ ์Šคํฌ๋กค์„ ๋‹ค๋ฃจ๋‹ค๋ณด๋ฉด ํ•ญ์ƒ ๋งˆ์ฃผ์น˜๋Š” ๋ฌธ์ œ ์ค‘ ํ•˜๋‚˜๊ฐ€ ์Šคํฌ๋กค ์ฒด์ด๋‹์ด๋‹ค. ๋‹ค์Œ ์˜ˆ์ œ๋ฅผ ๋ณด์ž. See the Pen overscroll-behavior: cotain before by Sung Gyun Oh (@salgum1114) on CodePen.์œ„ ์˜ˆ์ œ์—์„œ Box-1์˜ ์Šคํฌ๋กค์ด ๋์— ๋„๋‹ฌํ•˜๊ฒŒ ๋˜๋ฉด ์ƒ์œ„ ์š”์†Œ์ธ App์˜ ์Šคํฌ๋กค์ด ์‹œ์ž‘์ด๋œ๋‹ค. ...
Post cover

scroll-behavior: smooth ์†์„ฑ ์‚ฌ์šฉํ•˜๊ธฐ

7๋‹ฌ ์ „
๋ธ”๋กœ๊ทธ์— ๋ถ€๋“œ๋Ÿฌ์šด ์Šคํฌ๋กค๋ง์„ ์œ„ํ•ด์„œ CSS์˜ scroll-behavior๋ฅผ ํ™œ์šฉํ•ด๋ณธ๋‹ค. ์šฐ์„ , scroll-behavior์ด ๋ญ”์ง€ ์•Œ์•„๋ณด์ž. > w3school: CSS scroll-behavior Property์— ์•„์ฃผ ์ž˜ ๋‚˜์™€์žˆ๋‹ค. ์‚ฌ์šฉ ๋ฐฉ๋ฒ•์€ ์•„์ฃผ ๊ฐ„๋‹จํ•˜๋‹ค. ์•„๋ž˜ ์ฝ”๋“œ๋ฅผ ํ™•์ธํ•ด๋ณด์ž. SCROLL-BEHAVIOR: SMOOTH ์ ์šฉ ์ „ See...
Post cover

BackTop ์ปดํฌ๋„ŒํŠธ ๋งŒ๋“ค๊ธฐ

7๋‹ฌ ์ „
๋ธ”๋กœ๊ทธ ๊ฐœ๋ฐœ ์ค‘ ์Šคํฌ๋กค์ด ๋˜์—ˆ์„ ๋•Œ, ์ƒ์œ„๋กœ ์ด๋™์‹œํ‚ค๋Š” BackTop์„ ์ ์šฉํ•˜๊ธฐ ์œ„ํ•ด Ant.Design์˜ BackTop ์ปดํฌ๋„ŒํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๊ณ  ํ–ˆ๋‹ค. ํ•˜์ง€๋งŒ Ant.Design์˜ BackTop ์ปดํฌ๋„ŒํŠธ๋ฅผ ์ ์šฉํ•ด๋ณด๋‹ˆ ์ž˜ ์•ˆ๋œ๋‹ค. ๋”ฐ๋ผ์„œ ์ง์ ‘ BackTop ์ปดํฌ๋„ŒํŠธ๋ฅผ ๊ตฌํ˜„ํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ๋‹ค. > Ant.Design ํ™ˆํŽ˜์ด์ง€์—์„  ์ž˜ ๋™์ž‘ํ•œ๋‹ค. ๊ตฌํ˜„ ์ฝ”๋“œ๋Š” ...
Post cover

UglifyJsPlugin const ์˜ค๋ฅ˜ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•

7๋‹ฌ ์ „
์ตœ๊ทผ React Design Editor์— ๋นŒ๋“œ ์‹คํŒจ ๊ด€๋ จ ์ด์Šˆ๊ฐ€ ์˜ฌ๋ผ์™”๋‹ค. ๋‚ด์šฉ์ธ ์ฆ‰์Šจ, production์œผ๋กœ ๋นŒ๋“œ์‹œ UglifyJsPlugin์—์„œ Unexpected token: keyword ยซconstยป๋ผ๋Š” ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜์—ฌ ๊ณ„์†ํ•ด์„œ ๋นŒ๋“œ์— ์‹คํŒจํ•œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. [Bug] Not able to create build for the applicati...