FRONTEND/React
60
![list_img](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FJIVgi%2FbtszvDj2d7s%2Fs96Fd0eWGXZXVMkEpVXF20%2Fimg.png)
React :: ๋ฆฌ์กํธ ์๋ฒ ์ปดํฌ๋ํธ. React Server Component.
2
2023.11.01
์ฐธ๊ณ ๊ธ ์๋ฌธ Making Sense of React Server Components This year, the React team unveiled something they've been quietly researching for years: an official way to run React components exclusively on the server. This is a significant paradigm shift, and it's caused a whole lot of confusion in the React communit www.joshwcomeau.com (์ด๋ฒ ๊ธ์ ๊ฒฝ์ฐ ํด๋น ๊ธ์ ๋ง๋ถํ ์ค๋ช
์ด ๋ถ์กฑํ๋ค๊ณ ๋๊ปด์ง๋ ๊ฒ๋ค์ ๋ค์ ์์นญํ์ฌ ์์ฑํ์ฌ.. ์ฐธ๊ณ ๊ธ์ด๋ผ๊ณ ํ๊ธฐ์๋ ๋จธ์ฑํ๋ค.)..
React :: Mixed Content ์๋ฌ ํด๊ฒฐ
2023.11.01
Mixed Content: The page at '' was loaded over HTTPS, but requested an insecure resource ''. This request has been blocked; the content must be served over HTTPS. Mixed Content ๋ฌธ์ ๋ https ์ฌ์ดํธ์์ http ์ฌ์ดํธ๋ก ์์ฒญ์ ๋ณด๋ผ ์์ ๋ฐ์ํ๋ ๋ณด์ ๋ฌธ์ ์ค ํ๋. https ์ฌ์ดํธ์์ ajax๋ฅผ ์ฌ์ฉํ์ฌ ๋น๋๊ธฐ๋ก http ์ฌ์ดํธ์ ์์ฒญ์ ๋ณด๋ด์ด ๋ฌธ์ ๊ฐ ๋ฐ์ํ ๊ฒ์ธ๋ฐ.. ์ํธํ๋ https ๊ธฐ๋ฐ์ ์ฌ์ดํธ์์ ์ํธํ๋์ง ์์ http ์ฌ์ดํธ๋ก ์์ฒญ์ ๋ณด๋ด๋.. ๋ฌธ์ ๊ฐ ๋ฐ์ํ ๊ฒ. ํด๊ฒฐ ๋ฐฉ๋ฒ index.html ํ์ผ head์ ์๋ ๋ฌธ๋ฒ์ ์ถ๊ฐํ๋ค.
![list_img](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcRxpI6%2Fbtszb7y1aBi%2FnyTCZKPmQqlEZ9JeyhnSpK%2Fimg.png)
React :: JSX(JavaScript XML) ?
2023.10.27
JSX JavaScript XML ์ ์ฝ์๋ก ์๋ฐ์คํฌ๋ฆฝํธ์ XML์ด ํฉ์ณ์ง ๋ฌธ๋ฒ. XML ์ด๋? - eXtensible Markup Language - HTML๊ณผ ๊ฐ์ ๋งํฌ์
์ธ์ด์ด์ง๋ง, HTML์ ๋ฐ์ดํฐ๋ฅผ "ํํ"๋ผ๋ ๋งํฌ์
์ธ์ด์ธ ๋ฐ๋ฉด, XML์ ๋ฐ์ดํฐ๋ฅผ "๊ธฐ์ "ํ๋ ์ธ์ด - ์๋ฐํ ๋งํ์๋ฉด XML์ ๋งํฌ์
์ธ์ด๋ผ๊ธฐ ๋ณด๋ค ๋งํฌ์
์ธ์ด๋ฅผ ์ ์ํ๊ธฐ ์ํ ์ธ์ด .JS ์ .JSX์ ๋ฌธ๋ฒ ์ฐจ์ด 1. JSX๋ class๊ฐ ์๋ className์ ์ฌ์ฉ. 2. JSX์์๋ ๋ณ์๋ฅผ ์ฌ์ฉํ ๋, {}๋ฅผ ์ฌ์ฉํจ. 3. JSX : HTML ์์ ์คํ์ผ์ ์ง์ ํ ๋ style={{style}} ์ ํํ 4. JSX : ํ๋์ div ํ๊ทธ๋ก ๊ฐ์ธ์ผํจ. ๋์ ๊ฒฝ์ฐ .js๋ก ํ์ผ์ ์ ์ธํ์์์ง๋ง ๋ฌธ๋ฒ์ jsx์ ๋ฌธ๋ฒ์ ๋ฐ๋ผ๊ฐ..
React :: Uncaught Error: Rendered more hooks than during the previous render
2023.10.26
Uncaught Error: Rendered more hooks than during the previous render ์ด์ ๋ ๋๋ง์์ ํธ์ถ๋ hooks๋ณด๋ค ํ์ฌ ๋ ๋๋ง์์ hooks๊ฐ ๋ ๋ง์ด ํธ์ถ๋ ๊ฒฐ๊ณผ๋ก ๋ฐ์ํ๋ ์๋ฌ hooks๋ ๋งค ๋ ๋๋ง๋ง๋ค ๋์ผํ ํธ์ถ์ ๋ณด์ฅ๋ฐ์์ผ๋ง ํจ. - ์ด๋ฐ ์ด์ ๋๋ฌธ์ hooks๋ฅผ ์กฐ๊ฑด๋ฌธ ์์์ ์ฐ๋ ๊ฒ์ด ๊ธ์ง๋์ด ์๊ณ , ์ปดํฌ๋ํธ ์ต์์์์ ์ฌ์ฉํ๋ผ๊ณ ๊ถ์ฅํ๋ ๊ฒ. hooks๋ ํจ์์ ์ํ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋์๋๋ค. Hook์ ๊ท์น – React A JavaScript library for building user interfaces ko.legacy.reactjs.org ์๋ฆฌ์ ๊ด๋ จ๋ ์ด์ผ๊ธฐ. ์์ฝ. ๋ฐ๋ณต๋ฌธ์ด๋ html ์์์ state ๋ฅผ ๋ง๋ค๋ฉด ์๋จ.
React :: UseState ์ฌ์ฉ ์ ์ด์ ๊ฐ์ Data ๋์ ์ํค๊ธฐ
2023.09.12
์๋ฅผ ๋ค์ด ์
๋ ฅ ํผ์ ์๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํด์ ์ด๋ค ๊ณณ์ send ํ๋ค๊ณ ์๊ฐํด๋ณด์. ๋ฌผ๋ก useref ๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ์ฌ ๋ณด๋ด์ด๋ ๋๋ค. ๋ง์ฝ ์ด๋ค event ๊ฐ ์ผ์ด๋ ๋๋ง๋ค usestate ์ด์ ๊ฐ์ ์ถ๊ฐํ์ฌ ์ด๋ค ์ด๋ฒคํธ๊ฐ ์ผ์ด๋๊ฒ ํ๊ณ ์ถ๋ค๋ฉด... setUser((prev)=>([...prev, ...add1])) setUser((prev)=>([...prev, ...add2])) ์ด๋ฐ ํ์์ผ๋ก ๊ตฌํํด์ฃผ๋ฉด ๋๋ค. CASE 1) ํน์ ๊ฐ ๋์ ํ์ฌ ๊ณ์ฐํ๊ธฐ const [number, setNumber] = useState(0) function onClick() { setNumber(prev => prev + 1) // ์ํ๊ฐ ๋ณ๊ฒฝ ํจ์์ ํจ์ ์ ๋ฌ } CASE 2) ์
๋ ฅ ํผ์ ์๋ ๋ฐ์ดํฐ ๋..
NPM :: node_modules ๊น๋ํ ์ญ์ ํ ์ฌ์ค์น
2023.08.29
์์ค์ฝ๋๋ฅผ zip ํ์ผ๋ก ์ฎ๊ฒจ๋ฐ์ ๋๋, ํน์ git ์ผ๋ก ๋ด๋ ค ๋ฐ์ ๋์๋ npm ๋ชจ๋๊น์ง ํฌํจํ์ฌ ์ฎ๊ฒจ ๋ฐ์ผ๋ฉด ์
๋ก๋ ํ๋๋ฐ์๋ ์๊ฐ์ด ๋ง์ด ๊ฑธ๋ฆฌ๊ณ , ๋ค์ด๋ก๋ ๋ด๋ ค ๋ฐ์ ๋์๋ ์๊ฐ์ด ๋ง์ด ๊ฑธ๋ฆฐ๋ค. ๊ทธ๋์ ์ข
์ข
ํด๋น ํ์ผ์ ์ ์ธํ๊ณ ์์ค ํ์ผ์ ๋๊ฒจ์ฃผ๋ ๊ฒฝ์ฐ๊ฐ ๋ฐ์ํ๋๋ฐ, ๊ทธ๋๋ฅผ ์ํ ๋ฐฉ๋ฒ์ ์์ฑํด๋ณด๋๋ก ํ๊ฒ ๋ค. 1. React ํ์ผ์ด ์กด์ฌํ๋ ๋๋ ํ ๋ฆฌ๋ก ์ด๋ ํฐ๋ฏธ๋์ ํตํด ์ง์ฐ๊ณ ์ถ์ node_modules ๊ฐ ์กด์ฌํ๋ ๋๋ ํ ๋ฆฌ๋ก ์ด๋. ํน์ ํด๋น ํด๋์์ ๋ง์ฐ์ค ์ฐํด๋ฆญํ์ฌ ํฐ๋ฏธ๋ ์ด์ด์ฃผ๊ธฐ. 2. package-lock.json ์ญ์ rm -rf package-lock.json 3. node_modules ์ญ์ ํด๋ ์ฐํด๋ฆญํด์ ์ง์๋ ๋์ง๋ง, ๋ง์ ํจํค์ง๊ฐ ๊น๋ ค์์์๋ก ์๊ฐ์ด ๋ง์ด ์ง์ฐ๋๋ค. rm ..
![list_img](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbZBgny%2FbtsrgjfD6bS%2FhhviFPiPbNbPd4p2vA0nmk%2Fimg.png)
[Springboot] JAR/WAR ?
2023.08.16
๋ชจ๋ Java ์ jar ํด์ ์ด์ฉํ์ฌ ์์ฑ๋ ์์ถ(์์นด์ด๋ธ) ํ์ผ. ์ดํ๋ฆฌ์ผ์ด์
์ ์ฝ๊ฒ ๋ฐฐํฌํ๊ณ ๋์์ํฌ ์ ์๋๋ก ๊ด๋ ฅ ํ์ผ(๋ฆฌ์์ค, ์์ฑ ํ์ผ ๋ฑ)๋ค์ ํจํค์งํด์ฃผ๋ ๊ฒ์ด ์ฃผ ์ญํ . 1. JAR (Java Archive) - Java ํ๋ก๊ทธ๋จ์ ์คํ์ ํ์ํ ํด๋์ค ํ์ผ์ด๋ ์ค์ ํ์ผ์ด ์ ๋ฆฌ๋์ด ์๋ ์ ์ฅ์ - Java๋ก ์์ฑํ ์ดํ๋ฆฌ์ผ์ด์
์ ๋ฐฐํฌํ ๋์ ๊ด๋ จ ํ์ผ์ 1๊ฐ์ ํจํค์งํ ๋ ์ด์ฉ๋๊ณ , ์ค์ ๋ก๋ ๋ง์ ํด๋์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ์ด ํ์์ผ๋ก ๋ฐฐํฌ๋๊ณ ์์. - ํด๋์ค ํ์ผ๊ณผ ๊ฐ ํด๋์ค๋ค์ด ์ฌ์ฉํ๋ ๊ด๋ จ ๋ฆฌ์์ค ํ์ผ ๋ฐ ๋ฉํ ๋ฐ์ดํฐ๋ฅผ ์์ถํ ํ์ผ - ์ํ๋ ๊ตฌ์กฐ๋ก ๊ตฌ์ฑ์ด ๊ฐ๋ฅ. - ํ๋ซํผ์ ๊ท์๋๋ ์ ์ ์ ์ธํ๋ฉด Win .zip ํ์ผ๊ณผ ๋์ผํ ๊ตฌ์กฐ - JRE(JAVA Runtime Environmen..
[JS] Arrow Function ๊ฐ ๋ญ๋ฐ
2023.08.16
์ผ๋ฐ function ์ฌ์ฉ ๋ฌธ๋ฒ // 1 function ํจ์์ด๋ฆ(){ // ๊ธฐ๋ฅ } // 2 var ํจ์์ด๋ฆ = function(){ // ๊ธฐ๋ฅ } Arrow Function ์ฌ์ฉ ๋ฌธ๋ฒ var ํจ์์ด๋ฆ = () => { // ๊ธฐ๋ฅ } ์ ์ฐ๋ ๊ฑธ๊น? = ์ด๊ฑธ ์๋ฉด ์ธ์ ์ฐ๋ฉด ์ข์์ง๊ฐ ๋์จ๋ค. 1. ํจ์ ๋ณธ์ฐ์ ๊ธฐ๋ฅ์ ์์ฃผ ์ ํํํด์ฃผ๋ ๋ฌธ๋ฒ ์ฐ์ function์ ์ธ์ ์ฃผ๋ก ์ฌ์ฉํ๋๊ฐ..์ ๋ํด ์๊ฐํด๋ณด๋ฉด 1) ์ฌ๋ฌ๊ฐ์ง ๊ธฐ๋ฅ์ ํ๋ ์ฝ๋๋ฅผ ํ ๋จ์ด๋ก ๋ฌถ๊ณ ์ถ์ ๋. (์ดํ ์ฌ์ฌ์ฉ๋ ๊ณ ๋ ค..) 2) ์
์ถ๋ ฅ๊ธฐ๋ฅ์ ๋ง๋ค ๋ var ๋๋ฐฐ๋ง๋ค๊ธฐ = (x) => {return x * 2 } console.log( ๋๋ฐฐ๋ง๋ค๊ธฐ(4) ); console.log( ๋๋ฐฐ๋ง๋ค๊ธฐ(8) ); ์ด๋ฐ ์์ผ๋ก ์ฌ์ฉํ๋ฉด ์ง๊ด์ ์ผ๋ก ๋ณด..
Onclick Event ๋ก ๊ฑธ์ด๋์๋๋ฐ Rendering ์ ์คํ๋๋ ์ผ์ด์ค
2023.08.16
์๋ฅผ ๋ค์ด.. ์๋์ ๊ฐ์ ์ฝ๋๋ฅผ ์์ฑํ๋ค๊ณ ํด๋ณด์. module.exports = React.createClass({ render: function(){ var taskNodes = this.props.todoTasks.map(function(todo){ return ( {todo.task} Submit ); }, this); return ( {taskNodes} ); } }); onclick event ๋ก map ํจ์์ ํ์๋ ์ด๋ค ๊ฒ๋ค์ ์ญ์ ํ๋ ๊ธฐ๋ฅ์ ํ๋ function ์ ๊ตฌํํ๋ค. ์ด๋ delete ๊ธฐ๋ฅ์ ๋ฒํผ ํด๋ฆญ ์์๋ง ๋ฐ์ํ์ฌ์ผ ํ๋ค. ๊ทผ๋ฐ ํด๋น function ์์์ console์ ์ฐ์ด๋ณด๋ฉด ํ๋ฉด์ด ๋ ๋๋ง ๋ ๋ function ์์ console ์ด ์ฐํ๋ ๊ฒ์ ๋ณผ ์ ์์ ๊ฒ์ด๋ค...
![list_img](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FxVUWG%2FbtsqYoHBe8T%2FFLkCdofygt2zu5aG14Ywy0%2Fimg.png)
DevExpress Grid Excel์์ ๋ณต์ฌํด์ Datagrid ์ ๋ถํ๋ฃ๊ธฐ in React - ํ ์ค
2023.08.11
copy and paste excel ... ์์ ๋ฐ์ดํฐ๋ฅผ ๋ฃ์ด์ฃผ๋ data.js ์๋์ ๊ฐ์ด ๊ตฌ์ฑ // data.js export const employees = [{ 'ID': 1, 'FirstName': 'John', 'LastName': 'Heart', 'Prefix': 'Mr.', 'Position': 'CEO', 'BirthDate': '1964/03/16', 'HireDate': '1995/01/15', 'Notes': 'John has been in the Audio/Video industry since 1990. He has led DevAv as its CEO since 2003.\r\n\r\nWhen not working hard as the CEO, John loves to golf..
![list_img](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb4IQKm%2Fbtsp3m4opUV%2F7Slu927o5iGRGyMIvREZH1%2Fimg.png)
React-Query ๋?
2023.08.04
React-Query ๋? ๋ฆฌ์กํธ ์ ํ๋ฆฌ์ผ์ด์
์์ ์๋ฒ์ ๋ฐ์ดํฐ๋ฅผ ์กฐํํ๊ฑฐ๋ ์บ์ฑ, ์
๋ฐ์ดํธ, ์๋ฌ ์ฒ๋ฆฌ์ ๊ฐ์ ๋น๋๊ธฐ ๋ก์ง์ ์ง์ํ๋ data fetching ๋ผ์ด๋ธ๋ฌ๋ฆฌ. Server-side ์ Client-side ์ฌ์ด์์ ๋น๋๊ธฐ ๋ก์ง์ ๋ณด๋ค ์ฝ๊ฒ ๋ค๋ฃจ๊ฒ ํด์ฃผ๋ฉฐ Server State๋ฅผ ๊ด๋ฆฌํด์ค๋ค. React Query ๋ด์์์ Server State ์ ์ Client๊ฐ ์ ์ดํ๊ฑฐ๋ ์์ ํ์ง ์๋ ์์น์์ ์๊ฒฉ์ผ๋ก ์ ์ง๋จ. fetching ๋ฐ updating์ ์ํ ๋น๋๊ธฐ API๋ฅผ ํ์๋ก ํจ. ์ํ๊ฐ ๊ณต์ ๋๋ฉฐ ์ฌ์ฉ์ ๋ชจ๋ฅด๊ฒ ๋ณ๊ฒฐ๋ ์ ์์. ์ฃผ์ํ์ง ์์ผ๋ฉด ์ ํ๋ฆฌ์ผ์ด์
์ด ์ ์ฌ์ ์ผ๋ก "out of date" ์ํ๊ฐ ๋ ์ ์์. React Query์ ํน์ง (Server State ์ ์ธ) Caching..
![list_img](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb8Vl1e%2FbtspMjO6P1s%2F3FPpIOdr1k1y3mIBXjiuVk%2Fimg.png)
Typescript ์ฐ๋ ์ด์ ๋ฐ ํ์ ๋ฌธ๋ฒ
2023.08.03
TypeScript ์ฐ๋ ์ด์ 1. Javascript๋ Dynamic Typing ์ด ๊ฐ๋ฅํ๋ค. : ์ฝ๋๋ฅผ ๊ธธ๊ฒ ์งค ๋๋ ์์ ๋์ ์ ์ฐ์ฑ์ด ๋
์ด ๋๋ค. // Javascript 5 - '3' // ์ฐ์ฐ ๊ฐ๋ฅ // ์๋๋ ์ซ์-์ซ์๋ง ๊ฐ๋ฅํ์ง๋ง JS๊ฐ ์์์ '3'์ ์ซ์๋ก ๋ฐ๊ฟ์ค๋ค. // ํ๋ก์ ํธ ๊ท๋ชจ๊ฐ ์ปค์ง๋ฉด ๋จ์ . ๊ด๋ฆฌํ๊ธฐ ํ๋ฌ. ts ๋ type ์ ์๊ฒฉํ๊ฒ ๊ฒ์ฌํด์ค๋ค. // Typescript 5 - '3' // TS Error : ๋ฌธ์๋ ์ซ์๋ฅผ ๋นผ๋๊ฒ ์ด์ํ๋ค. ์์ ์๋ง. 2. TypeScript ๋ ์๋ฌ๋ฉ์ธ์ง๋ฅผ ์์ธํ๊ฒ ๋ฟ๋ ค์ค๋ค. TypeScript ๋ Javascript ์ ๋ฌธ๋ฒ์ด ๊ฑฐ์ ๋์ผํ๊ธฐ ๋๋ฌธ์ ์ฝ๋ ์๋ํฐ ๋ถ๊ฐ ๊ธฐ๋ฅ ์ญํ ๋ก ๋ด๋ ์ถฉ๋ถํ๋ค. Typescript ํ์ ๋ฌธ๋ฒ 1. ๊ฐ๋จ..