Open Graph ์ดํ•ดํ•˜๊ณ  ์ ์šฉํ•˜๊ธฐ (feat. ์นด์นด์˜คํ†ก์—์„œ ๋ณ€๊ฒฝ์ด ์ ์šฉ๋˜์ง€ ์•Š์„ ๋•Œ)
์›น (WEB)/๊ณต๋ถ€ 2022. 1. 9. 11:47

Open Graph๋ž€? ์–ด๋–ค ์›นํŽ˜์ด์ง€๋“  social graph์˜ ์ผ๋ถ€๋ถ„์ด ๋  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ํ”„๋กœํ† ์ฝœ์ด๋‹ค. Metadata og:title : url ๊ณต์œ  ์‹œ ์ œ๋ชฉ์œผ๋กœ ๋“ค์–ด๊ฐ€๋Š” ์˜์—ญ์ด๋‹ค. (์นด์นด์˜คํ†ก ๊ณต์œ ๋Š” title๋งŒ ๊ณต์œ ๋œ๋‹ค.) og:type : object์˜ type์ด๋‹ค. (ex_ video.movie, website) og:image : url ๊ณต์œ  ์‹œ ๋‚˜ํƒ€๋‚˜๋Š” ์ด๋ฏธ์ง€์ด๋‹ค. og:url : graph์—์„œ id๋กœ ์“ฐ์ด๋Š” url์ด๋‹ค. og:audio, og:video : audio, video ํŒŒ์ผ์˜ url์ด๋‹ค. og:description: object์— ๊ด€ํ•œ ์„ค๋ช…์ด๋‹ค.์นด์นด์˜คํ†ก ๊ณต์œ ์—์„œ๋Š” ํ‘œ์‹œ๋˜์ง€ ์•Š๊ณ  ์Šฌ๋ž™ ๊ณต์œ , ๋ธ”๋กœ๊ทธ์—์„œ๋Š” description๊นŒ์ง€ ํ‘œ์‹œ๋œ๋‹ค. og:site_name : ๋ฐฉ๋Œ€ํ•œ ์›น์‚ฌ์ด..

[React hook] html ์š”์†Œ๋ฅผ ์ด๋ฏธ์ง€๋กœ ์ €์žฅํ•˜๊ณ , ์ด๋ฏธ์ง€ ํ˜ธ์ŠคํŒ…ํ•˜์—ฌ ์นด์นด์˜คํ†ก api๋กœ ๊ณต์œ ํ•˜๊ธฐ :: html2canvas, imgur, kakao api
์›น (WEB)/๊ณต๋ถ€ 2021. 1. 30. 00:27

html2canvas + ์ด๋ฏธ์ง€ ํ˜ธ์ŠคํŒ… *์˜ˆ์ œ๋Š” React Hook ํ™˜๊ฒฝ์—์„œ ์ง„ํ–‰๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ฒฐ๊ณผ table์„ ์ด๋ฏธ์ง€๋กœ ๋งŒ๋“ค์–ด ๊ณต์œ ํ•ด์•ผํ•˜๋Š” ์š”๊ตฌ์‚ฌํ•ญ์ด ์žˆ์—ˆ๋‹ค. ์š”๊ตฌ์‚ฌํ•ญ์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ณผ์ œ๋ฅผ ์ˆœ์ฐจ์ ์œผ๋กœ ํ•ด๋‚ด์•ผํ•œ๋‹ค. html table์„ ์ด๋ฏธ์ง€๋กœ ๋งŒ๋“ค๊ธฐ ๋งŒ๋“ค์–ด์ง„ ์ด๋ฏธ์ง€๋ฅผ ํ˜ธ์ŠคํŒ…ํ•˜๊ธฐ ํ˜ธ์ŠคํŒ…๋œ ์ด๋ฏธ์ง€๋ฅผ ์นด์นด์˜คํ†ก api๋ฅผ ์ด์šฉํ•˜์—ฌ ๊ณต์œ ํ•˜๊ธฐ ์ฐจ๋ก€๋Œ€๋กœ ํ•ด๋ณด์ž. html table์„ ์ด๋ฏธ์ง€๋กœ ๋งŒ๋“ค๊ธฐ DOM์š”์†Œ๋ฅผ ์ด๋ฏธ์ง€๋กœ ๋งŒ๋“ค ๋•Œ, html2canvas๋ผ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์ฃผ๋กœ ์“ฐ์ธ๋‹ค. import html2canvas from 'html2canvas'; const copyDOM = async () => { window.scrollTo(0, 0); let url = ""; await html2canvas(..

[ESLint] React hook + Typescript ํ”„๋กœ์ ํŠธ ์‹œ ์„ค์ •ํ•œ rule ๊ณต์œ 
์›น (WEB)/๊ณต๋ถ€ 2020. 12. 14. 14:01

module.exports = { 'parser': '@typescript-eslint/parser', 'plugins': ['@typescript-eslint'], 'env': { 'commonjs': true, 'browser': true, 'es2021': true, 'node' : true }, 'extends': [ 'airbnb', 'airbnb/hooks', 'plugin:@typescript-eslint/recommended' ], 'parserOptions': { 'project': './tsconfig.json', 'ecmaFeatures': { 'jsx': true, }, 'ecmaVersion': 12, 'sourceType': 'module', }, 'rules': { 'inden..