๐ฉ๐ป ๊ฐ๋ฐ ๊ณต๋ถ (43) ์ธ๋ค์ผํ ๋ฆฌ์คํธํ [์ฒ์ ๋ง๋ ๋ฆฌ์กํธ] React ์ฑ ์ฝ๊ธฐ : Chapter 9-12 ์ ๋ฆฌ [ ์ฐธ๊ณ ์์ : ์ํ์ ์ฒ์ ๋ง๋ ๋ฆฌ์กํธ(2ํ) - ํ๋น๋ฏธ๋์ด ] โ ์กฐ๊ฑด๋ถ ๋ ๋๋ง (Conditional Rendering)์กฐ๊ฑด์ ๋ฐ๋ผ ๋ ๋๋ง ๊ฒฐ๊ณผ๊ฐ ๋ฌ๋ผ์ง๋๋ก ํ๋ ๊ฒ๐น 1. ์๋ฆฌ๋จผํธ ๋ณ์๋ฆฌ์กํธ ์๋ฆฌ๋จผํธ๋ฅผ ๋ณ์์ฒ๋ผ ์ ์ฅํด์ ์กฐ๊ฑด์ ๋ฐ๋ผ ์ ํ์ ์ผ๋ก ๋ ๋๋ง let button;if (isLoggedIn) { button = ;} else { button = ;}return {button};๐น 2. ์ธ๋ผ์ธ ์กฐ๊ฑดโถ ์ธ๋ผ์ธ If์กฐ๊ฑด๋ฌธ์ ์ฝ๋ ์์ ์ง์ ์ง์ด๋ฃ๋ ๋ฐฉ์๋ ผ๋ฆฌ ์ฐ์ฐ์ && (AND) ์ฌ์ฉ์์ ์กฐ๊ฑด์ด true์ผ ๋๋ง ๋ค์ ์๋ฆฌ๋จผํธ๊ฐ ๋ ๋๋ง๋จ{isLoggedIn && }โถ ์ธ๋ผ์ธ If-Else์ผํญ ์ฐ์ฐ์ ? : ์ฌ์ฉ์กฐ๊ฑด์ด true๋ฉด ์ฒซ ๋ฒ์งธ, false๋ฉด ๋ ๋ฒ์งธ ํญ๋ชฉ์ ๋ ๋๋ง์๋ก ๋ค๋ฅธ ๋ ๊ฐ์ง.. [์ฒ์ ๋ง๋ ๋ฆฌ์กํธ] React ์ฑ ์ฝ๊ธฐ : Chapter 6-8 ์ ๋ฆฌ [ ์ฐธ๊ณ ์์ : ์ํ์ ์ฒ์ ๋ง๋ ๋ฆฌ์กํธ(2ํ) - ํ๋น๋ฏธ๋์ด ] ๐น React State ์ ๋ฆฌโ State๋?๋ฆฌ์กํธ ์ปดํฌ๋ํธ์ ๋ณ๊ฒฝ ๊ฐ๋ฅํ ๋ฐ์ดํฐ๊ฐ๋ฐ์๊ฐ ์ง์ ์ ์ํ์ฌ ์ฌ์ฉState๊ฐ ๋ณ๊ฒฝ๋๋ฉด ์ปดํฌ๋ํธ๊ฐ ์ฌ๋ ๋๋ง๋จ๋ ๋๋ง์ด๋ ๋ฐ์ดํฐ ํ๋ฆ์ ์ฌ์ฉ๋๋ ๊ฐ๋ง State์ ํฌํจํด์ผ ํจ๐ฏ State์ ํน์งJavaScript ๊ฐ์ฒด ํํ์ง์ ๋ณ๊ฒฝ ๋ถ๊ฐ๋ฅ → ๋ฐ๋์ ์ง์ ๋ ๋ฐฉ๋ฒ(set ํจ์)์ผ๋ก ๋ณ๊ฒฝํด์ผ ํจโ๏ธ ํด๋์ค ์ปดํฌ๋ํธ์์ State ์ฌ์ฉ๋ฒ์์ฑ์์์ State๋ฅผ ํ ๋ฒ์ ์ ์State ๋ณ๊ฒฝ ์ setState() ํจ์ ์ฌ์ฉโก ํจ์ ์ปดํฌ๋ํธ์์ State ์ฌ์ฉ๋ฒuseState() Hook์ ์ฌ์ฉํ์ฌ ๊ฐ๊ฐ์ State๋ฅผ ์ ์๊ฐ State๋ณ๋ก ์ ๊ณต๋๋ set ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ๋ณ๊ฒฝ๐น React ์๋ช ์ฃผ๊ธฐ(Life.. [์ฒ์ ๋ง๋ ๋ฆฌ์กํธ] React ์ฑ ์ฝ๊ธฐ : Chapter 0-5 ์ ๋ฆฌ ํ ์ค๋ฑ ํฌ ๋ฉํ ๋ ์กฐ์ธ์ ๋ฐ๋ผ์ ์์ฆ ์ ๊ณต์์ (?) ๊ฐ๋ฐ์์ (?) ์ฑ ๋ค์ ์ฝ๊ณ ์๋๋ฐ,์ค๋ ๊ธฐ์ตํ๋ ค๋ฉด ๋ด์ฉ์ ์์ฝํด๋๋ฉด ์ข์ ๊ฒ ๊ฐ์ ์ ๋ฆฌํ๋ค. ์ด ์ฑ ์ ์ ๋ฌธ์ ๊ธฐ์ค์ด๋ผ, ์ค๋ช ์ด ๊ฝค ์์ธํ๋ค.ํ๋ก ํธ์๋ ๊ฐ๋ฐ์๋ค์ ๊ฐ๋ ์ ํํํ ๋ค์ง๋ ๋ฐ์ ๋์์ด ๋ ๊ฒ ๊ฐ๋ค. ์ง๊ธ ์ฝ๊ณ ์๋๊ฑด React ๋์๋ Node JS ๋์์ธ๋ฐ,์ด๋ฒ ๋ฌ ๋ด๋ก ์๋ ํ๊ณ Next JS์ Springboot ์ฑ ๋ ์ฝ์ด๋ณด๊ณ ์ถ๋ค. ์ด๋ฆด ๋ ์ฑ ์ ์ฐธ ์ข์ํ๋๋ฐ, ์์ฆ์ ์ฝ์ ์๊ฐ์ด ๋ง์ด ์์ด์ ์์ฝ๋ค ๐ค๐์์ฝ์ ๊น๋ํ๊ฒ ํ๋ ค๊ณ chatgpt์ ๋์์ ๋ฐ์๋ค![ ์ฐธ๊ณ ์์ : ์ํ์ ์ฒ์ ๋ง๋ ๋ฆฌ์กํธ(2ํ) - ํ๋น๋ฏธ๋์ด ] ๐น ์น ๊ฐ๋ฐ ๊ธฐ๋ณธ ๊ฐ๋ ์ ๋ฆฌ๐ HTML (HyperText Markup Language)์น์ฌ์ดํธ์ ๋ผ๋๋ฅผ ๊ตฌ์ฑํ.. [ํ๊ฒฝxToss] ๐์ถ๊ฐ๊ณต๋ถ) Node JS, MySQL ์๋ฒ ํธ๋ฌ๋ธ์ํ / API ๋ง๋ค๊ธฐ ER_NOT_SUPPORTED_AUTH_MODE ์๋ฌ mysql ํธ๋ฌ๋ธ์ํ ๊ธฐ๋กํฐ๋ฏธ๋์์ node mysql-server.js ๋ก ์๋ฒ๋ฅผ ์คํํ์ ๋, ์๋์ ๊ฐ์ ์ค๋ฅ๊ฐ ๋ฌ๋ค.code: 'ER_NOT_SUPPORTED_AUTH_MODE',errno: 1251,sqlMessage: 'Client does not support authentication protocol requested by server; consider upgrading MySQL client',sqlState: '08004',fatal: true ๋ถ๋ช ๋ชฝ๊ณ ๋๋น ์ธ๋๋ ์๋๋๋ฐ..!!!์ด ์ค๋ฅ๋ MySQL ์๋ฒ์ ์ธ์ฆ ๋ฐฉ์์ด ํ์ฌ ์ฌ์ฉ ์ค์ธ MySQL ํด๋ผ์ด์ธํธ์์ ์ง์๋์ง ์๊ธฐ ๋๋ฌธ์ ๋ฐ์ํ๋ค๊ณ ํ๋ค MySQL 8.0 ์ด์์์๋ ๊ธฐ๋ณธ ์ธ์ฆ ํ๋ฌ๊ทธ์ธ์ด caching_sha2_passwor.. [ํ๊ฒฝxToss] Fullstack ๊ฐ๋ฐ - ์ค๊ฐ ํ๋ก์ ํธ ํ๊ณ ๐๐ฉ๐ป [ํ๊ตญ๊ฒฝ์ ์ ๋ฌธ with toss bank] Tech ์ฐ์์ธ์ฌ ์์ฑ์ ์ํ ํ์คํ ๊ณผ์ 2๊ธฐ ์ฝ 3์ฃผ ๋์ ์งํํ ์ค๊ฐ ํ๋ก์ ํธ ํ๊ธฐ.์ง๋ ์ฃผ์ ๋ฐํ๊ฐ ๋๋ฌ๋๋ฐ, ๋ ๋ฏธ๋ค๋ค๊ฐ๋ ๊ธฐ์ต์ด ํ๋ฐ๋ ๊ฒ ๊ฐ์ ์๋๋ฌ ์์ฑํด๋ณด๋ ค ํ๋ค โฌ๏ธ ํ์ ์์ค โฌ๏ธ https://github.com/inthhh/bufl_fe GitHub - inthhh/bufl_fe: ๋ฒํ - ์๊ธ ์ชผ๊ฐ๊ธฐ ์๋ํ ์๋น์ค๋ฒํ - ์๊ธ ์ชผ๊ฐ๊ธฐ ์๋ํ ์๋น์ค. Contribute to inthhh/bufl_fe development by creating an account on GitHub.github.com ๋ชฉ์ฐจ 1. ํ ๋น๋ฉ2. ์ฃผ์ 3. ๊ธฐํ์ ์์ฑ4. ๊ฐ๋ฐ - ๊ฐ๋ฐ ์งํ - ์ฌ๊ฑด์ฌ๊ณ 5. ๋ฐํ ์ค๋น 1. ํ ๋น๋ฉํ์ ๊ฐ์ฌ๋๊ป์ ์์๋ก.. [ํ๊ฒฝxToss] 8์ฃผ์ฐจ ์์ฝ : Typescript + ์ค๊ฐ ํํ๐ฅท * ๊ฐ์ธ์ ํ์ต ๋ด์ฉ ๊ธฐ๋ก ์ค, ๊ทนํ ์ผ๋ถ์ ๋ด์ฉ๋ง ์์ฑ๋์์ต๋๋ค. typescript ํํ ์์ ๋น์ ํ์๋ค์๊ฒ react ts๋ก ๊ฐ๋ฐ์ ์งํํ์๊ณ ํ์๋๋ฐ,๋ง์นจ ๊ฐ์ฌ๋์ด ๊ฐ์๋ฅผ ์งํํด์ฃผ์ จ๋ค.ts๋ฅผ ๊ฒฝํํด๋ณด์ง ์์ ํ์๋ค์ด ์์๊ธฐ์ ๋คํ์ด์์!! //ํ์ ๋จ์ธ(Assertion) : ํ๋ณํ๊ณผ ์ ์ฌtype Person = { name: string age: number} //ํ์ ์ขํ๊ธฐfunction func1(value: number | string) { //value.toFixed() //์ค์ํ์ผ๋ก ๋ฐ๊พธ๊ธฐ //value.toUpperCase() //๋๋ฌธ์๋ก ๋ฐ๊พธ๊ธฐ if (typeof value === 'number') { value.toFixed() } else if (typeof v.. [ํ๊ฒฝxToss] 6-7์ฃผ์ฐจ ์์ฝ : React.js ์ฌํ, NodeJS ๊ธฐ์ด ๊ฐ์ธ์ ํ์ต ๋ด์ฉ ๊ธฐ๋ก ์ค, ๊ทนํ ์ผ๋ถ์ ๋ด์ฉ๋ง ์์ฑ๋์์ต๋๋ค. React ๊ธฐ์ดList & Key๋ฆฌ์คํธ(List): ๋ฐฐ์ด ๋ฐ์ดํฐ๋ฅผ ๋์ ์ผ๋ก ๋ ๋๋งํ๊ธฐ ์ํด ์ฌ์ฉ๋๋ JSX ์์๋ค์ ์งํฉ React์์๋ ๋ฐฐ์ด์ ๊ฐ ํญ๋ชฉ์ JSX ์๋ฆฌ๋จผํธ๋ก ๋ณํํ์ฌ ํ๋ฉด์ ์ถ๋ ฅํฉ๋๋ค.ํค(Key): ๋ฆฌ์กํธ์์ ๊ฐ ๋ฆฌ์คํธ ํญ๋ชฉ์ ๊ณ ์ ํ๊ฒ ์๋ณํ๊ธฐ ์ํด ์ฌ์ฉํ๋ ์์ฑ์ ๋๋ค. ํค๋ ๋ฆฌ์กํธ๊ฐ ์ด๋ค ์์๊ฐ ๋ณ๊ฒฝ๋์๋์ง, ์ถ๊ฐ๋์๋์ง, ์ ๊ฑฐ๋์๋์ง๋ฅผ ๋น ๋ฅด๊ฒ ํ์ ํ์ฌ DOM์ ํจ์จ์ ์ผ๋ก ์ ๋ฐ์ดํธํ๋ ๋ฐ ์ค์ํ ์ญํ ์ ํฉ๋๋ค.Form๋ฆฌ์กํธ์์ ์ ๋ ฅํผ(input form)์ ์ฌ์ฉ์์ ์ ๋ ฅ์ ๋ฐ์ ์ํ(state)๋ก ๊ด๋ฆฌํ๋ ์ค์ํ ์์์ ๋๋ค. ์ ๋ ฅํผ์ ๋ง๋ค ๋๋ ๋ฆฌ์กํธ์ ์ํ(state)์ ์ด๋ฒคํธ ํธ๋ค๋ฌ๋ฅผ ์ฌ์ฉํ์ฌ ์ ๋ ฅ ๋ฐ์ดํฐ๋ฅผ ๊ด๋ฆฌํฉ๋๋ค.. [React] Redux ๊ฐ๋ ๋ฐ ์ญํ , ํ์ผ ๊ตฌ์กฐ ๋๋ ํ ๋ง ๊ฐ๋ฐ์ ์ฒ์ ์งํํ ๋๋ ๋ฆฌ๋์ค ๋ด์ฉ์ ํ ํ์ผ์๋ค๊ฐ ๋ชจ์๋๋ค๊ฐ,์ธํด ํ๋ฉด์ ๋๋ ํ ๋ง ํ๋ ๋ฐฉ๋ฒ์ ๋ฐฐ์ ์๋๋ฐ ๋ ์จ๋จน์ ์ผ์ด ์๊ฒจ ๊ธฐ๋กํด๋๋ค. Redux๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ํ๋ฅผ ํ๊ณณ์์ ๊ด๋ฆฌํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ด๋ค. ์ฌ๋ฌ ์ปดํฌ๋ํธ์์ ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ๊ณต์ ํ ๋ ์ ์ฉํ๋ค. 1๏ธโฃ Redux ํ์ผ ๊ตฌ์กฐ (in React typescript) /redux /actions # ์ก์ ์ ์ (์ด๋ฒคํธ ๋ฐ์ ์ ํ์ํ ๋ฐ์ดํฐ ์ ์) categoryActions.ts /reducers # ๋ฆฌ๋์ ์ ์ (์ํ๊ฐ ์ด๋ป๊ฒ ๋ณ๊ฒฝ๋ ์ง ๊ฒฐ์ ) categoryReducer.ts store.ts # ์คํ ์ด ์ค์ (์ ์ฒด ์ํ ๊ด๋ฆฌ) ๊ฐ ํ์ผ์ Redux์ ํต์ฌ ์์์ธ ์ก์ (Acti.. ์ด์ 1 2 3 4 ยทยทยท 6 ๋ค์