์ธ์ฆ ๋ฐฉ์‹ :: ๊ธฐ๋ณธ ์ธ์ฆ ์›๋ฆฌ๋ถ€ํ„ฐ MSA ์ธ์ฆ๊นŒ์ง€
์›น (WEB)/๊ณต๋ถ€ 2021. 7. 22. 08:54

์ธ์ฆ ๋ฐฉ์‹ 1. API key๋ฅผ ํ†ตํ•œ ์ธ์ฆ ๊ณผ์ • user๊ฐ€ login ์ •๋ณด๋ฅผ ์ž…๋ ฅํ•œ๋‹ค. Client๋Š” ์ด๋ฏธ Server์— ๋“ฑ๋กํ•œ API key๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. Client๋Š” user๊ฐ€ ์ž…๋ ฅํ•œ Login ์ •๋ณด๋ฅผ ๋ฐ›์•„์„œ API key์™€ ํ•จ๊ป˜ Login API๋ฅผ ์š”์ฒญํ•œ๋‹ค. Server๋Š” API key๋ฅผ ํ†ตํ•ด ํ•ด๋‹น Client๊ฐ€ ๋“ฑ๋ก๋˜์–ด์žˆ๋Š” ์ง€๋ฅผ ๊ฒ€์‚ฌํ•œ๋‹ค. Sever๋Š” Login ์ •๋ณด๋ฅผ ํ†ตํ•ด ํ•ด๋‹น User๊ฐ€ API๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ง€๋ฅผ ๊ฒ€์‚ฌํ•œ๋‹ค. ๋‹จ์  API key๋Š” ๋ชจ๋“  Client๋“ค์ด ๊ณตํ†ต์œผ๋กœ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋…ธ์ถœ๋˜๋ฉด ์ „์ฒด API๊ฐ€ ๋…ธ์ถœ๋œ๋‹ค. API key๋Š” ์‹œ๊ฐ„์ด ๋ฌด์ œํ•œ์ด๊ณ  ํ•œ ๋ฒˆ ๋…ธ์ถœ๋˜๋ฉด API key ๋ณ€๊ฒฝ ์ „๊นŒ์ง€ ๊ณ„์† ๋…ธ์ถœ๋œ๋‹ค. 2. API Token์„ ํ†ตํ•œ ์ธ์ฆ ๊ณผ์ • user๊ฐ€ login ์ •๋ณด๋ฅผ ์ž…..

React-query :: api fetch ์‹œ ์‚ฌ์šฉํ•˜๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ
์›น (WEB)/๊ณต๋ถ€ 2021. 7. 10. 12:38

React-query : fetch, cache, synchronize, update(for server state)์— ์‚ฌ์šฉ๋˜๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ด๋‹ค. ๊ณต์‹์‚ฌ์ดํŠธ React Query Hooks for fetching, caching and updating asynchronous data in React react-query.tanstack.com ๋ฐฐ๊ฒฝ server state ์‚ฌ์šฉ ์‹œ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ œ์ ์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. caching deduping(๋ฐ์ดํ„ฐ ์ค‘๋ณต ์ œ๊ฑฐ) update "out of date" data / know when is it reflecting updates data pagination optimization, lazy loading data memory management, garba..

React-query :: Query Invalidation
์›น (WEB)/๊ณต๋ถ€ 2021. 7. 10. 12:37

query๊ฐ€ ์˜ค๋ž˜ ๋˜์—ˆ๋‹ค๋Š” ๊ฒƒ์„ ํŒ๋‹จํ•˜๊ณ  ๋‹ค์‹œ fetchํ•ด์˜ฌ ๋•Œ, queryClient.invalidateQueries ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. https://react-query.tanstack.com/guides/query-invalidation Query Invalidation Query Invalidation Waiting for queries to become stale before they are fetched again doesn't always work, especially when you know for a fact that a query's data is out of date because of something the user has done. For that purpose, the Quer..

React-query :: Mutations
์›น (WEB)/๊ณต๋ถ€ 2021. 7. 10. 12:36

query์™€ ๋‹ค๋ฅด๊ฒŒ CUD์— ์‚ฌ์šฉ๋œ๋‹ค. https://react-query.tanstack.com/guides/mutations Mutations Subscribe to our newsletter The latest TanStack news, articles, and resources, sent to your inbox. react-query.tanstack.com ์‚ฌ์šฉ์˜ˆ์ œ const mutation = useMutation(newTodo => axios.post('/todos', newTodo)) return ( {mutation.isLoading ? ( 'Adding todo...' ) : ( {mutation.isError ? ( An error occurred: {mutation.error.mes..

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๋ฅผ ์ฐธ๊ณ ํ•˜๋ฉด ๋” ๋งŽ์€..

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

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

[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; // ํ•จ์ˆ˜ํ˜•..