Ajax(Asynchronous Javascript And Xml)
์›น (WEB)/๊ณต๋ถ€ 2021. 2. 6. 23:04

Ajax๋Š” js๋ฅผ ์ด์šฉํ•œ ๋น„๋™๊ธฐ ํ†ต์‹ ์œผ๋กœ, ํด๋ผ์ด์–ธํŠธ ์„œ๋ฒ„ ๊ฐ„์˜ xml(Extensible Markup Language)๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ ๋ฐ›๋Š” ๊ธฐ์ˆ ์ด๋‹ค. ์ „์ฒด ํŽ˜์ด์ง€๋ฅผ ๋ฆฌ๋กœ๋“œํ•˜์ง€ ์•Š๊ณ  ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋งŒ ๋กœ๋“œํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์žฅ์ ์ด ์žˆ๋‹ค. Ajax ๋ฐฉ์‹์„ ์ด์šฉํ•œ ์›น API๋Š” XMLHttpRequest ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜์—ฌ fetch๋ฅผ ๊ฑฐ์ณ axios๊นŒ์ง€ ๋‹ค์–‘ํ•˜๋‹ค. XMLHttpRequest๋Š” ๋ณต์žกํ•˜๊ณ  ๊ฐ€๋…์„ฑ์ด ๋–จ์–ด์ง€๊ธฐ ๋•Œ๋ฌธ์— fetch api๊ฐ€ ES6์—์„œ๋ถ€ํ„ฐ ํ‘œ์ค€์ด ๋˜์—ˆ๋Š”๋ฐ, ๋”ฐ๋ผ์„œ ํ˜„์žฌ fetch api๋Š” ๊ธฐ๋ณธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ ๋”ฐ๋กœ ์„ค์น˜ํ•˜์ง€ ์•Š๊ณ  ์‚ฌ์šฉํ•ด๋„ ๋œ๋‹ค. axios๋Š” Node.js์—์„œ XMLHttpRequests๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์ข‹๊ฒŒ ๋งŒ๋“ค์–ด๋‘” api์ด๋ฉฐ ๋”ฐ๋กœ ์„ค์น˜ํ•ด์ฃผ์–ด์•ผ ๋™์ž‘ํ•œ๋‹ค. TOP Ajax API๋ฅผ ์ฐธ๊ณ ํ•˜๋ฉด ๋” ๋งŽ์€..

[ECMAScript] ES5, ES6 ๋ฌธ๋ฒ• ์ •๋ฆฌ
์›น (WEB)/๊ณต๋ถ€ 2021. 2. 3. 21:57

ECMAScript ๊ณต๋ถ€ ES5 ์ด์ „ ES3 (1999) : ์ •๊ทœํ‘œํ˜„์‹, try/catch๋ฌธ string string.length : ๊ธธ์ด ์†์„ฑ string.indexOf(string, [start]) : ํ•ด๋‹น ๊ธ€์ž์˜ ์‹œ์ž‘ index ์œ„์น˜ ๋ฐ˜ํ™˜ string.lastIndexOf(string, [start]) : ํ•ด๋‹น ๊ธ€์ž์˜ ๋งˆ์ง€๋ง‰ ์‹œ์ž‘ index ์œ„์น˜ ๋ฐ˜ํ™˜ string.search(string) : indexOf์™€ ๋น„์Šทํ•˜์ง€๋งŒ ์ •๊ทœํ‘œํ˜„์‹ ์‚ฌ์šฉ x string.slice(index, index2) : index๋ถ€ํ„ฐ index2-1๊นŒ์ง€ ์ž๋ฅด๊ธฐ ์Œ์ˆ˜ index๋Š” ๋’ค์—์„œ๋ถ€ํ„ฐ ์…ˆ string.substring(index, index2) : slice์™€ ๋น„์Šทํ•˜์ง€๋งŒ, ์Œ์ˆ˜ ๋ถˆ๊ฐ€ string.substr(index, l..

[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..

[Typescript] ๊ธฐ์กด React + js ํ”„๋กœ์ ํŠธ ts๋กœ ๋ฐ”๊พธ๊ธฐ
์›น (WEB)/๊ณต๋ถ€ 2020. 12. 14. 13:58

Typescript ์ฐธ๊ณ  : https://www.typescriptlang.org/docs/handbook/typescript-in-5-minutes.html (Typescript ๊ณต์‹ ์‚ฌ์ดํŠธ) ๋ฐฐ์šฐ๋Š” ์ด์œ  JS์—์„œ๋Š” Type์ด ๊ณ„์† ์ฒดํฌ๋˜์ง€ ์•Š๋Š”๋‹ค. 1. ์ด๋Š” ์•”๋ฌต์  ํ˜•๋ณ€ํ™˜, hoisting, ๋ณต์žก์„ฑ ๋ฌธ์ œ๋ฅผ ์ผ์œผํ‚ฌ ์ˆ˜ ์žˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ฝ”๋“œ ์ƒ์˜ ์˜ˆ์ƒ์น˜ ๋ชปํ•œ ๋ฒ„๊ทธ๋ฅผ ์—†์• ๊ธฐ ์œ„ํ•ด typescript๋ฅผ ์ฃผ๋กœ ์‚ฌ์šฉํ•œ๋‹ค. hoisting : ๋Œ์–ด์˜ฌ๋ฆฐ๋‹ค๋Š” ๋œป. javascript์—์„œ ์„ ์–ธ๋ฌธ์„ ๋Œ์–ด์˜ฌ๋ ค ์ฝ”๋“œ์—์„œ ์‚ฌ์šฉํ•  ๋•Œ ์ˆœ์„œ์— ์ƒ๊ด€์—†์ด ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๋„๋ก ํ•˜๋Š” ๊ธฐ์ˆ . typescript๋Š” ๋ณต์žกํ•œ ์˜ˆ์™ธ์ฒ˜๋ฆฌ ์ฝ”๋“œ ์—†์ด ์ด๋ฅผ ์ˆ˜ํ–‰ํ•œ๋‹ค. 2. ํ˜‘์—… ์‹œ์—๋‚˜ ์ถ”ํ›„์— ๋ณธ์ธ์ด ์ง  ์ฝ”๋“œ๋ฅผ ๋ณด์•˜์„ ๋•Œ ํƒ€์ž…์ด ์ •์˜๋˜์–ด ์žˆ์ง€ ์•Š๋‹ค๋ฉด ํ•˜๋‚˜..

[React] React MVVM ๊ตฌ์กฐ MobX / Redux ์—†์ด ๊ตฌํ˜„ํ•˜๊ธฐ (Feat. Context API)
์›น (WEB)/๊ณต๋ถ€ 2020. 12. 8. 14:57

[2021-03-04 ์ตœ์ข… ์ˆ˜์ •] ๋ฐœ๋‹จ KOS ํ”„๋กœ์ ํŠธ ์ง„ํ–‰ ์ค‘์— ์ƒํƒœ๊ด€๋ฆฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ(Redux, Mobx)๋ฅผ ์ถ”ํ›„ ๋„์ž…ํ•˜๊ธฐ๋กœ ํ•˜๊ณ , ๋จผ์ € MVVM ํŒจํ„ด๋งŒ ์‚ฌ์šฉํ•˜๊ธฐ๋กœ ํ•˜์˜€๋‹ค. ํ•˜์ง€๋งŒ ๊ธฐ์กด์— ๋‚˜์™€์žˆ๋Š” ํด๋” ๊ตฌ์กฐ๋“ค์€ ๋ชจ๋‘ react์™€ Redux / Mobx ๋ฅผ ์—ฐ๋™ํ•˜์—ฌ ๋งŒ๋“ค์–ด๋‚ธ ๊ตฌ์กฐ๋“ค์ด์—ˆ๋‹ค. ๋‹ค์Œ์€ ์ƒํƒœ๊ด€๋ฆฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  MVVM ํŒจํ„ด์„ ๊ตฌํ˜„ํ•œ ์‚ฌ์ดํŠธ์ด๋‹ค. https://github.com/davinci2015/react-mvvm-pokemon ( Class ์ด์šฉ ) https://velog.io/@dlrmsghks7/whatismvvmpattern ( Hook ์ด์šฉ ) ์œ„์˜ ์‚ฌ์ดํŠธ๋“ค์—์„œ ์ œ์•ˆํ•œ ๊ตฌ์กฐ๋ฅผ ๊ทธ๋ฆผ์œผ๋กœ ๋‚˜ํƒ€๋‚ด๋ณด์ž. View, View Controller, View Model, Model..

[Yaml] ๋ฐ์ดํ„ฐ ์–‘์‹ YAML์ด๋ž€ ๋ญ˜๊นŒ?
์›น (WEB)/๊ณต๋ถ€ 2020. 10. 6. 14:53

๊ฐœ์š” YAML : YAML Ain't Markup Language ์žฌ๊ท€๋ฅผ ํ†ตํ•ด ์ด๋ฆ„์ง“๊ธฐ ์ฟ ์ฟ  ๊ธฐ์กด์—๋Š” ํ”„๋กœ๊ทธ๋žจ์˜ ์„ค์ •์„ ์ €์žฅํ•˜๊ณ  ์ฝ๋Š”๋ฐ์— xml ํ˜•์‹์„ ์จ์™”๋‹ค. ํ•˜์ง€๋งŒ ์ž‘์„ฑ์ด ๋„ˆ๋ฌด ๊ท€์ฐฎ์•„์„œ ๋‹ค๋ฅธ ๋ฐฉ์‹์„ ๊ฐ•๊ตฌํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค. ์ •๋ณด๋ฅผ ์ €์žฅํ•  ์ˆ˜๋งŒ ์žˆ๋‹ค๋ฉด ๋‹ค๋ฅธ ๋ฐฉ์‹๋„ ๊ฐ€๋Šฅํ•˜๋‹ค. ๊ทธ๋ž˜์„œ ๋‚˜์˜จ๊ฒŒ json ํŒŒ์ผ ํ˜•์‹์ด๋‹ค. json์€ ๊ฐ์ฒด ํ˜•์‹์œผ๋กœ xml๋ณด๋‹ค๋Š” ๊ฐ„ํŽธํ•œ ์ž‘์„ฑ์ด ๊ฐ€๋Šฅํ•˜๋‹ค. ํ—ˆ๋‚˜ ๋” ์‰ฝ๊ฒŒ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋Š” ํ˜•์‹์ด ๋ฐ”๋กœ YAML ํ˜•์‹์ด๋‹ค. YAML์€ ๊ฐ€๋…์„ฑ์ด ์ข‹์•„์„œ JSON์— ๋น„ํ•ด ๊ตฌ์กฐ๊ฐ€ ๋ณต์žกํ•˜์ง€๋งŒ ์‚ฌ๋žŒ์ด ๋ณด๊ธฐ์—๋Š” ์ž์—ฐ์Šค๋Ÿฌ์šด ํ˜•ํƒœ์ด๋‹ค. ์ด์— ๋”ฐ๋ผ YAML์€ ์„ค์ • ํŒŒ์ผ์˜ ๋ชฉ์ ์œผ๋กœ ๋งŽ์ด ์“ฐ์ด๊ณ , JSON์€ ์„ค์ • ํŒŒ์ผ์„ ์ œ์™ธํ•œ ๋ถ„์•ผ์—์„œ ๋ชจ๋‘ ๋„๋ฆฌ ์“ฐ์ด๊ณ  ์žˆ๋‹ค. ์ด๋Ÿฌํ•œ ํŒŒ์ผ ํ˜•์‹๋“ค์€ ์ƒํ™ฉ๋งˆ๋‹ค ํ•„์š”์— ๋”ฐ๋ผ์„œ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค..

[React] Hook์— ๋Œ€ํ•œ ์„ค๋ช… (useState, useEffect, ๋“ฑ์žฅ ๋ฐฐ๊ฒฝ๊นŒ์ง€)
์›น (WEB)/๊ณต๋ถ€ 2020. 8. 2. 16:04

React Hook React ๊ณต์‹์‚ฌ์ดํŠธ ์ฐธ์กฐ : https://ko.reactjs.org/docs/hooks-intro.html Hook ์†Œ๊ฐœ Hook์€ ์–ด๋–ค ๊ฒƒ์ด๊ณ  ์™œ ๋‚˜์˜ค๊ฒŒ ๋˜์—ˆ์„๊นŒ? Hook์ด๋ž€? ์šฐ์„  Hook์€ React 16.8 ๋ฒ„์ „์— ์ƒˆ๋กœ ์ถ”๊ฐ€๋œ ์ตœ์‹  ๊ธฐ๋Šฅ์œผ๋กœ, ํด๋ž˜์Šคํ˜• ์ปดํฌ๋„ŒํŠธ์˜ ๋‹จ์ ์„ ๊ทน๋ณตํ•˜๊ณ ์ž ๋‚˜์˜จ ํ•จ์ˆ˜ํ˜• ์ปดํฌ๋„ŒํŠธ์— ๋Œ€ํ•œ ๊ธฐ๋Šฅ์ด๋‹ค. Hook์€ ํ•จ์ˆ˜ํ˜• ์ปดํฌ๋„ŒํŠธ๋กœ๋„ ํด๋ž˜์Šคํ˜• ์ปดํฌ๋„ŒํŠธ์˜ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ค€๋‹ค. ํ•จ์ˆ˜ํ˜• ์ปดํฌ๋„ŒํŠธ๋ž€? // ํด๋ž˜์Šคํ˜• ์ปดํฌ๋„ŒํŠธ import React, { Component } from 'react'; class App extends Component { render(){ return ( //jsx ); } } export default App; // ํ•จ์ˆ˜ํ˜•..