header-img
Info :
Document/๋จ•์„ ์ƒ์˜ ์ฝ”๋”ฉ๊ต์‹ค 16
์ปค์Šคํ…€ํ•œ ๋‹ค๊ตญ์–ด ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•œ 'i18next' (React-i18next)
2023.11.01
ํšŒ์‚ฌ์˜ ๊ฒฝ์šฐ ์—ฌ๋Ÿฌ ํ•ด์™ธ ๋ฒ•์ธ์ด ์กด์žฌํ•˜๊ณ  ์žˆ์–ด, ๋‹ค๊ตญ์–ด ์ง€์›์ด ํ•„์š”ํ•˜๋‹ค. ์›นํŽ˜์ด์ง€์˜ ๊ฒฝ์šฐ chrome ๋“ฑ ์ธํ„ฐ๋„ท ๋ธŒ๋ผ์šฐ์ € ๋‚ด ๋ฒˆ์—ญ์œผ๋กœ๋„ ์ง€์›์ด ๊ฐ€๋Šฅํ•˜์ง€๋งŒ, ํšŒ์‚ฌ์—์„œ๋Š” ์‚ฌ์ „์ ์œผ๋กœ ๋ฒˆ์—ญํ•˜๊ธฐ ๋ณด๋‹ค๋Š”, ๊ฐ ๋‚˜๋ผ์—์„œ ์ดํ•ดํ•˜๊ธฐ ์‰ฌ์šด ๋‹จ์–ด๋กœ ๋ฒˆ์—ญํ•˜๋Š” ์ผ€์ด์Šค๊ฐ€ ํ•„์š”ํ•˜๊ฒŒ ๋œ๋‹ค. โ€‹ ์ด๋•Œ ์‚ฌ์šฉ๋˜๋Š” ๊ฒƒ์ด i18next. i18next๋ž€? Javascript๋กœ ์ž‘์„ฑ๋œ ๊ตญ์ œํ™” ํ”„๋ ˆ์ž„์›Œํฌ๋กœ ์—ฌ๋Ÿฌ ๊ตญ๊ฐ€์˜ ์–ธ์–ด๋ฅผ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ค€๋‹ค. ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ๋Š” react-i18next, next-i18next, next-translation ์ด๋ ‡๊ฒŒ 3๊ฐ€์ง€. ๊ฐ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ์žฅ๋‹จ์ ๊ณผ ํŠน์„ฑ์ด ์กด์žฌํ•˜๋ฏ€๋กœ ์•Œ์•„๋ณด๊ณ  ์ฑ„ํƒํ•˜๋Š” ๊ฒƒ์„ ์ถ”์ฒœํ•œ๋‹ค. โ€‹ ์šฐ๋ฆฌ์˜ ๊ฒฝ์šฐ react-i18next ๋ฅผ ์ฑ„ํƒํ•˜๊ฒŒ ๋˜์—ˆ๋Š”๋ฐ.. ์ •ํ™•ํžˆ๋Š” ์ฑ„ํƒ ๋‹นํ–ˆ๋‹ค. ๊ณ ๋กœ..
list_img
์‰ฌ์šด ์ „์—ญ ์ƒํƒœ ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•œ "Recoil" 2
2023.11.01
ํ˜„์žฌ ํ”„๋กœ์ ํŠธ์˜ ๊ฒฝ์šฐ ๊ถŒํ•œ ๊ด€๋ฆฌ๋ฅผ recoil ๋กœ ๋‹ค๋ฃจ๊ณ  ์žˆ๋‹ค. โ€‹ Rocoil ์ด๋ž€? ํŽ˜์ด์Šค๋ถ์—์„œ ๋ฐœํ‘œํ•œ React ์ „์—ญ ์ƒํƒœ ๊ด€๋ฆฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ด๋‹ค. usestate ๋งŒ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ƒํƒœ ๊ด€๋ฆฌ๋ฅผ ํ•˜๊ฒŒ ๋˜๋ฉด ํ”„๋กœ๊ทธ๋žจ์ด ๋ณต์žกํ•˜๊ฒŒ ๋  ์‹œ, props drilling์ด ์ผ์–ด๋‚˜๊ฒŒ ๋˜๋Š”๋ฐ, Recoil์€ ์ด๋Ÿฌํ•œ ํ–‰์œ„๋ฅผ ๋ฐฉ์ง€ํ•˜๊ฒŒ ํ•ด์ค€๋‹ค. โ€‹ Recoil์˜ ๊ฒฝ์šฐ. React ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์•„๋‹Œ, ์™ธ๋ถ€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ ์•„๋ž˜์˜ ๋งํฌ์—์„œ ๋‚ด์šฉ์„ ํ™•์ธํ•˜๋ฉด ๋œ๋‹ค. Recoil A state management library for React. recoiljs.org Recoil ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ์ฃผ์š”ํ•œ ๊ฐœ๋…์œผ๋กœ๋Š” Atom ๊ณผ selector๊ฐ€ ์žˆ๋‹ค. โ€‹ Recoil ์—์„œ ํ•˜๋‚˜์˜ ์ „์—ญ ์ƒํƒœ๋ฅผ Atom ์ด๋ผ๊ณ  ํ•˜๋Š”๋ฐ, Atom ..
list_img
useref์—์„œ ์ƒ์† ๊ฐœ๋…์ด ๋ถ™์€ "ForwardRef"์™€ "useImperativeHandle" 2
2023.11.01
๋ณดํ†ต useRef ๊นŒ์ง€๋Š” ํ”ํžˆ๋“ค ์•ˆ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋Š”๋ฐ, ๋งŒ์•ฝ ๋‚ด๊ฐ€ ์–ด๋–ค ๊ณณ์—์„œ ์ปดํฌ๋„ŒํŠธ๋“ค์„ ์ผ๊ด„๋กœ ์ •์˜ํ•ด๋‘๊ณ , ๋ถ€๋ชจ ๋‹จ์—์„œ ๊บผ๋‚ด์–ด์„œ ์‚ฌ์šฉํ•˜๋Š” ํ˜•ํƒœ์˜ ๋กœ์ง์„ ์ง ๋‹ค๋ฉด ์–ด๋–ป๊ฒŒ ๋ ๊นŒ? ์ด๋•Œ๋„ ref๋ฅผ ๋‹ค๋ฃจ๋Š” case๊ฐ€ ์กด์žฌํ•œ๋‹ค๋ฉด? โ€‹ ์ •๋‹ต์€ ForwardRef ์ด๋‹ค. ๋ถ€๋ชจ์—์„œ ์ž์‹์˜ ref ์š”์†Œ๋“ค์„ ๋‹ค๋ฃจ๊ณ  ์‹ถ์„ ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๋ฌธ๋ฒ•. โ€‹ ๋˜, ์ž์‹๋‹จ์— ์žˆ๋Š” function ์„ ๋ถ€๋ชจ์—์„œ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด? (๋ณดํ†ต์€ ๋ถ€๋ชจ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๋งž์ง€๋งŒ, ๋ฌด์ž‘์ • ๊ทธ๋ ‡๊ฒŒ ๋กœ์ง์„ ์งœ๋ฒ„๋ฆฌ๋ฉด ํ•˜์œ„ ์ปดํฌ๋„ŒํŠธ ๋“ค์ด ๋งŽ์•„์งˆ์ˆ˜๋ก ์ตœ์ƒ์œ„, ์ƒ์œ„ ๋กœ์ง์ด ๋น„๋Œ€ํ•ด์ง์„ ๋ง‰์„ ์ˆ˜ ์—†๊ฒŒ ๋œ๋‹ค.) โ€‹ ์ •๋‹ต์€ useImperativeHandle ์ด๋‹ค. ์ž์‹์˜ ๋ฌธ๋ฒ•์ด๋‚˜ ๋ณ€์ˆ˜๋ฅผ ๋ถ€๋ชจ ๋‹จ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ๋ฌธ๋ฒ•. โ€‹ ์šฐ์„ .. forwardRef ๋ถ€ํ„ฐ... ..
DOM ์กฐ์ž‘์„ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” "useRef" 2
2023.11.01
์ปดํฌ๋„ŒํŠธ์˜ ์†์„ฑ ๊ฐ’์„ ๋ถˆ๋Ÿฌ์˜ฌ ์ˆ˜๋„ ์žˆ๊ณ , value๋‚˜ style ๊ฐ’ ๊ฐ™์€ ๊ฒƒ๋“ค์„ ๋ฐ”๊ฟ”์ค„ ์ˆ˜๋„ ์žˆ๋Š”. DOM์„ ์กฐ์ž‘ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ref. ๋ Œ๋”๋ง์— ํ•„์š”ํ•˜์ง€ ์•Š์€ ๊ฐ’์„ ์ฐธ์กฐํ•  ์ˆ˜ ์žˆ๋Š” ref. ์— ๋Œ€ํ•˜์—ฌ ์„ค๋ช…ํ•˜๋„๋ก ํ•˜๊ฒ ๋‹ค. โ€‹ ref ๋Š” ๋น„๊ต์  ๊ฐ„๋‹จํ•œ ๊ฐœ๋…์ด๋ฏ€๋กœ forwardRef ์™€ useImperativeHandle ๋ฅผ ์„ค๋ช…ํ•˜๊ธฐ ์œ„ํ•œ ๋„์•ฝ ๋‹จ๊ณ„์ฒ˜๋Ÿผ ๊ฐ€๋ณ๊ฒŒ ์งš๊ณ  ๋„˜์–ด๊ฐ€๋„๋ก ํ•˜๊ฒ ์Œ. โ€‹ ๋ง๋ถ™ํžˆ๋Š” ๋ง.. ๋ชจ ๋ถ€์žฅ์˜ "Ref ๋Š” React ์ƒ๋ช…์ฃผ๊ธฐ์™€ ์–ด์šธ๋ฆฌ์ง€ ์•Š๋Š” ๋ฌธ๋ฒ•์œผ๋กœ React ์ƒ์—์„œ๋„ ์ง€์–‘ํ•ด์•ผ ํ•œ๋‹ค"๋Š” ๋ฐœ์–ธ์— ๋Œ€ํ•˜์—ฌ ์„ค๋ช…ํ•˜๋„๋ก ํ•˜๊ฒ ๋‹ค. Ref ๋ฅผ ๋ฌด๋ถ„๋ณ„ํ•˜๊ฒŒ ์„ ์–ธํ•˜๊ณ , ๋‹ค๋ฅธ ๋ฌธ๋ฒ•์œผ๋กœ ๋Œ€์ฒด๊ฐ€ ๊ฐ€๋Šฅํ•œ๋ฐ๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ๋ฌด์ง€์„ฑ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๋ฌธ์ œ. (์ด๊ฒƒ์€ ๋‹ค๋ฅธ ๋ฌธ๋ฒ•๋„ ๋™์ผํ•˜๋‹ค. ๊ฐ์ž๊ฐ€ ๊ฐ€์ง€๋Š” ๊ณ ์œ ์˜ ํŠน์„ฑ์„..
์ดˆ๊ธฐ ๋ Œ๋”๋ง ๋ฐ ๋ณ€์ˆ˜ ๋ณ€ํ™˜์— ๋”ฐ๋ฅธ ๊ธฐ๋Šฅ์„ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ ์œ„ํ•œ "useEffect"
2023.11.01
UseEffect ๋ž€. ๋ฆฌ์•กํŠธ ์ปดํฌ๋„ŒํŠธ๊ฐ€ ๋ Œ๋”๋ง ๋  ๋•Œ๋งˆ๋‹ค ํŠน์ • ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋„๋ก ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋Š” Hook์ž„. โ€‹ ๊ธฐ์กด์—๋Š” ํด๋ž˜์Šคํ˜• ์ปดํฌ๋„ŒํŠธ์—์„œ๋งŒ ์ƒ๋ช…์ฃผ๊ธฐ ๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์—ˆ๋Š”๋ฐ. useEffect๋ฅผ ์“ฐ๋ฉด ํ•จ์ˆ˜ ์ปดํฌ๋„ŒํŠธ์—์„œ๋„ side effect ๋ฅผ ์“ธ ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ๋‹ค. ๋ผ์ดํ”„์‚ฌ์ดํด hook(componentDidMount, componentDidUpdate, componentWillUnMount)์„ ๋Œ€์ฒดํ•  ์ˆ˜ ์žˆ๋Š” useEffect. ์‚ฌ์šฉ ๋ฐฉ๋ฒ• import { useEffect } from 'react'; function useeffecttest() { // ์‚ฌ์šฉ๋ฒ• 1. ์ข…์†์„ฑ ๋งค๊ฐœ๋ณ€์ˆ˜ ์—†์Œ. useEffect(() => { DoSomething(); }); // ์‚ฌ์šฉ๋ฒ• 2. ๋นˆ ์ข…์†์„ฑ ๋งค๊ฐœ๋ณ€์ˆ˜ ..
list_img
๋™์ ์ธ ๊ฐ’์„ ํ• ๋‹นํ•˜๊ธฐ ์œ„ํ•œ ๋ณ€์ˆ˜, useState 2
2023.11.01
๋ฆฌ์•กํŠธ 16.8 ๋ฒ„์ „ ์ด์ „์—์„œ๋Š” ํ•จ์ˆ˜ํ˜• ์ปดํฌ๋„ŒํŠธ์—์„œ ์ƒํƒœ ๊ด€๋ฆฌ๋ฅผ ํ•  ์ˆ˜๊ฐ€ ์—†์—ˆ์Œ. (์ปจ๋ฒ„ํŒ… ํ•˜๋Š” ์‚ฌ๋žŒ๋„ ๋ณด์•˜๋‹ค..) ํ•˜์ง€๋งŒ 16.8 ๋ฒ„์ „ ๋ถ€ํ„ฐ Hooks ๋ผ๋Š” ๊ธฐ๋Šฅ์ด ๋„์ž…๋˜๋ฉฐ ํ•จ์ˆ˜ํ˜• ์ปดํฌ๋„ŒํŠธ์—์„œ ์ƒํƒœ๋ฅผ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ๋‹ค.! โ€‹ โ€ป Hook : ํ•จ์ˆ˜ ์ปดํฌ๋„ŒํŠธ์—์„œ React state (๋ฆฌ์•กํŠธ์—์„œ ์•„์ฃผ ์ค‘์š”ํ•œ ๊ฐœ๋… ์ค‘ ํ•˜๋‚˜) ์™€ ์ƒ๋ช…์ฃผ๊ธฐ ๊ธฐ๋Šฅ(lifecycle features)์„ ์—ฐ๋™ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ํ•จ์ˆ˜. โ€ป ์ƒํƒœ๊ด€๋ฆฌ(State Management) : ๋ฐ์ดํ„ฐ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•. ์—ฌ๋Ÿฌ component ๊ฐ„์— ๋ฐ์ดํ„ฐ ์ „๋‹ฌ๊ณผ ์ด๋ฒคํŠธ ํ†ต์‹ ์„ ํ•œ ๊ณณ์—์„œ ๊ด€๋ฆฌํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธ. โ€‹ ๋ฆฌ์•กํŠธ๋กœ ๊ฐœ๋ฐœ์„ ํ•˜๋‹ค๋ณด๋ฉด usestate ๋ฅผ ์ ์ ˆํ•œ ์œ„์น˜์—์„œ ์„ ์–ธํ•˜๊ณ , ์ž˜ ๋‚ด๋ ค์ฃผ๊ณ (์ƒ์†) ๊ผฌ์ด์ง€ ์•Š๋„๋ก ๊ด€๋ฆฌํ•˜๋Š” ๊ฒƒ์ด ๊ณ ์˜ค๊ธ‰ ์Šคํ‚ฌ..
่ˆŠ.๋ฆฌ์•กํŠธ ๊ฐ•์‚ฌ๊ฐ€ ๋ง์•„์ฃผ๋Š” ๊ฐ„๋‹จ react ๋ฌธ๋ฒ•
2023.11.01
๋ชฉ์ฐจ ๋™์ ์ธ ๊ฐ’์„ ํ• ๋‹นํ•˜๊ธฐ ์œ„ํ•œ ๋ณ€์ˆ˜, "useState" ์ดˆ๊ธฐ ๋ Œ๋”๋ง ๋ฐ ๋ณ€์ˆ˜ ๋ณ€ํ™˜์— ๋”ฐ๋ฅธ ๊ธฐ๋Šฅ call์„ ์œ„ํ•œ "useEffect" ์ปดํฌ๋„ŒํŠธ์˜ ์†์„ฑ ๊ฐ’์„ get/set ํ•  ์ˆ˜ ์žˆ๋Š” "useRef" useRef + ์ƒ์† ๊ฐœ๋…, "ForwardRef()", "useImperativeHandle()" ํ•จ์ˆ˜ ์žฌ์‚ฌ์šฉ์„ ์œ„ํ•œ "UseCallback" ์‰ฌ์šด ์ „์—ญ ์ƒํƒœ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•œ "Recoil" ์ปค์Šคํ…€ํ•œ ๋‹ค๊ตญ์–ด ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•œ "i18next" ๋ฒˆ์™ธ. Axios์™€ Fetch์˜ ์ฐจ์ด ๋ฒˆ์™ธ. Lazy Import ๋ž€?
0519 ์ˆ˜์—… ํŒ์„œ ๋‚ด์šฉ
2023.05.19
1. createReactApp ๋ง๊ณ  ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์œผ๋กœ ํ•˜๋Š” ๋ฐฉ๋ฒ• ์˜ˆ์‹œ ์ฝ”๋“œ ํ•˜๋‚˜ ์ž‘์„ฑ --------- 1. History API๊ฐ€ ๋ญ”๋ฐ - history API : ๋ธŒ๋ผ์šฐ์ €์˜ ์„ธ์…˜ ๊ธฐ๋ก์„ ์กฐ์ž‘ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฉ”์†Œ๋“œ๋ฅผ ๋‹ด๊ณ  ์žˆ๋Š” ๊ฐ์ฒด - ๋’ค๋กœ ๊ฐ€๊ธฐ, ์•ž์œผ๋กœ ๊ฐ€๊ธฐ, ํŽ˜์ด์ง€ ์ด๋™ ๋“ฑ์„ ์กฐ์ž‘ํ•  ์ˆ˜ ์žˆ์Œ - history ๋ž€ ์„ธ์…˜ ๊ธฐ๋ก(ํŽ˜์ด์ง€ ๋ฐฉ๋ฌธ ๊ธฐ๋ก)์— ๋Œ€ํ•œ ์ ‘๊ทผ ๋ฐฉ๋ฒ•๊ณผ ๋ฉ”์„œ๋“œ๋ฅผ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ - history.back() : ๋’ค๋กœ๊ฐ€๊ธฐ - history.forward() : ์•ž์œผ๋กœ ๊ฐ€๊ธฐ - history.go() : ์„ธ์…˜ ๊ธฐ๋ก ๋‚ด ํŽ˜์ด์ง€๋กœ ์ด๋™ // chrome ์ผœ์„œ ํ™•์ธ ์‹œ์ผœ์ฃผ๊ธฐ 2. BrowserRouter ์š”์†Œ์˜ ๊ธฐ๋Šฅ, History API์™€์˜ ๊ด€๋ จ์„ฑ 3. Route ์‚ฌ์šฉ๋ฒ• ๋ฐ ๋ฐ์ดํ„ฐ ํ˜•์‹ 4. export ..
0518 ์ˆ˜์—… ํŒ์„œ ๋‚ด์šฉ
2023.05.19
๋ฆฌ์•กํŠธ์˜ ํŠน์ง• 3๊ฐ€์ง€ 1. ์„ ์–ธํ˜•(Declarative) : ํ•œ ํŽ˜์ด์ง€๋ฅผ ๋ณด์—ฌ์ฃผ๊ธฐ ์œ„ํ•ด html, css, js๋กœ ๋‚˜๋ˆ ์„œ ์ ๊ธฐ ๋ณด๋‹ค๋Š” ํ•˜๋‚˜์˜ ํŒŒ์ผ์— ๋ช…์‹œ์ ์œผ๋กœ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๊ฒŒ JSX๋ฅผ ํ™œ์šฉํ•œ ์„ ์–ธํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ์ง€ํ–ฅ const name = 'yoonhyewon' const element = Hello,{name} 2. ์ปดํฌ๋„ŒํŠธ ๊ธฐ๋ฐ˜ (Component-Based) - ํ•˜๋‚˜์˜ ๊ธฐ๋Šฅ ๊ตฌํ˜„์„ ์œ„ํ•ด ์—ฌ๋Ÿฌ ์ข…๋ฅ˜์˜ ์ฝ”๋“œ๋ฅผ ๋ฌถ์–ด๋‘” ์ปดํฌ๋„ŒํŠธ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ฐœ๋ฐœํ•จ 3. ๋ฒ”์šฉ์„ฑ (Learn Once, Write Anywhere) - js ํ”„๋กœ์ ํŠธ ์–ด๋””์—๋“  ์œ ์—ฐํ•˜๊ฒŒ ์ ์šฉ ๊ฐ€๋Šฅ - facebook ์—์„œ ๊ด€๋ฆฌ๋˜๊ณ  ์žˆ์–ด ์•ˆ์ •์ ์ด๋ฉฐ, ์œ ๋ช…ํ•˜๊ณ , ๋ฆฌ์•กํŠธ ๋„ค์ดํ‹ฐ๋ธŒ ๋ชจ๋ฐ”์ผ ๊ฐœ๋ฐœ๋„ ๊ฐ€๋Šฅํ•จ - 2020๋…„ ๊ธฐ์ค€ ๊ฐ€์žฅ ์œ ๋ช…ํ•œ ํ”„๋ก ํŠธ์—”๋“œ ๊ธฐ์ˆ  - ..
517 ์ˆ˜์—… ํŒ์„œ ๋‚ด์šฉ
2023.05.18
[], {}, () ๋Œ€๊ด„ํ˜ธ [] 1. list ๋‚˜์—ด ํ˜น์€ list ์ธ๋ฑ์Šค ์ง€์ • ex) list[0], list[1] ์ค‘๊ด„ํ˜ธ {} 1. dictionary ๋งŒ๋“ค๋•Œ {'key':'value'} 2. style tag ์ง€์ • ์‹œ 3. ํŠน์ • function์— ๋Œ€ํ•ด ์ •์˜ ํ•  ๋•Œ function test(){} ํ˜•์‹์ด ๋˜๊ฒ ์ฃ .. 4. for / if ๋“ฑ์˜ ๋ฌธ๋ฒ• ์ƒ ํ•„์š”ํ•  ๋•Œ ์†Œ๊ด„ํ˜ธ () 1. for๋‚˜ if ๊ฐ™์€ ๋ฌธ๋ฒ•์— ์กฐ๊ฑด ์‹ ๋„ฃ์„ ๋•Œ JSON (Javascript Object Notation) ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ฑฐ๋‚˜ ์ „์†กํ•  ๋•Œ ๋งŽ์ด ์‚ฌ์šฉ๋˜๋Š” "๊ฒฝ๋Ÿ‰" Data ๊ตํ™˜ ํ˜•์‹ ์‰ฝ๊ฒŒ ๋งํ•ด์„œ javascript์—์„œ ๊ฐ์ฒด๋ฅผ ๋งŒ๋“ค ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ํ‘œํ˜„์‹์„ ์˜๋ฏธ -- ์‚ฌ๋žŒ ๊ธฐ๊ณ„ ๋ชจ๋‘ ์ดํ•ดํ•˜๊ธฐ ์‰ฌ์šฐ๋ฉฐ ์šฉ๋Ÿ‰์ด ์ž‘์•„์„œ ๋ฐ์ดํ„ฐ ์ „์†ก์— ๋งŽ์ด ์“ฐ์ด..
516 ๊ฐ•์˜ ํŒ์„œ ๋‚ด์šฉ (callback/promise)
2023.05.16
// settimeout : ์‹คํ–‰ํ•  ํ•จ์ˆ˜, ์ดˆ(๋ฐ€๋ฆฌ์„ธ์ปจ ๋‹จ์œ„) [callback] ์ฝœ๋ฐฑํ•จ์ˆ˜ : ๊ฐ„๋‹จํ•˜๊ฒŒ ๋‹ค๋ฅธ ํ•จ์ˆ˜์— ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ๋„˜๊ฒจ์ค€ ํ•จ์ˆ˜๋ฅผ ์˜๋ฏธ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ๋„˜๊ฒจ๋ฐ›์€ ํ•จ์ˆ˜๋Š” ์ผ๋‹จ ๋งค๊ฐœ๋ณ€์ˆ˜ ๋จผ์ € ๋„˜๊ฒจ๋ฐ›์•„๋‘” ์ƒํƒœ์—์„œ ์ผ์ • ์‹œ์ (๋•Œ)๊ฐ€ ๋˜๋ฉด ๋‚˜์ค‘์— ํ˜ธ์ถœ(call back)ํ•œ๋‹ค๋Š” ์˜๋ฏธ // ์ฝœ๋ฐฑํ•จ์ˆ˜๊ฐ€ ํ•„์š”ํ•œ ์ด์œ  1. ๋ณ€์ˆ˜์˜ ์œ ํšจ๋ฒ”์œ„ (scope) 2. ๋™๊ธฐ/๋น„๋™๊ธฐ(synchronous/Asynchronous) -> ์ด๋Ÿฐ ๊ฑธ ์œ„ํ•ด์„œ ํ•จ์ˆ˜๋ฅผ ํ™œ์šฉํ•˜๋Š” ํ•˜๋‚˜์˜ ๋ฐฉ๋ฒ•๋ก ์ ์ธ ๋ถ€๋ถ„ ์œ ์šฉํ•œ๋ฐ.. ๋‚ด๊ฐ€ a~z๊นŒ์ง€ console ์ฐ๋Š” ํ–‰์œ„๋ฅผ ์ œ์–ดํ•˜๊ณ  ์‹ถ์œผ๋ฉด ์ฝ”๋“œ๊ฐ€ ๋„ˆ๋ฌด ๋ณต์žกํ•ด์ง„๋‹ค.. -> Callback Hell -- ์ž‘์„ฑ์ž ์ž…์žฅ์—์„œ๋Š” ํฌ๊ฒŒ ๋ฌธ์ œ๊ฐ€ ์•ˆ๋  ์ˆ˜๋„ ์žˆ์œผ๋‚˜ ์ด๊ฑธ ์ถ”ํ›„์— ๋ˆ„๊ตฐ๊ฐ€ ์œ ์ง€๋ณด์ˆ˜ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋ฉด? hell ์ด๋‹ค...
[javascript] Async/Sync ๋™๊ธฐ ๋น„๋™๊ธฐ BasicChaining ๊ตฌํ˜„ (+Promise ๊ตฌํ˜„)
2023.05.16
'part-2/02_promiseConstructor.js' ํŒŒ์ผ์„ ๊ตฌํ˜„ํ•˜๊ณ , ํ…Œ์ŠคํŠธ๋ฅผ ํ†ต๊ณผํ•ฉ๋‹ˆ๋‹ค. callback์ด๋ผ๋Š” ๋งค๊ฐœ๋ณ€์ˆ˜(parameter) ๋Œ€์‹ , Promise์˜ resolve, reject ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•˜์„ธ์š”. part-2/03_basicChaining.js์€, ์•ž์„œ ์ž‘์„ฑํ•œ getDataFromFilePromise๋ฅผ ์ด์šฉํ•ด์„œ ํ’€์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. fs ๋ชจ๋“ˆ์„ ์ง์ ‘ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹™๋‹ˆ๋‹ค. getDataFromFilePromise๋ฅผ ์ด์šฉํ•ด, 'files/user1.json' ํŒŒ์ผ๊ณผ 'files/user2.json' ํŒŒ์ผ์„ ๋ถˆ๋Ÿฌ์˜ค๊ณ , ๋‘ ํŒŒ์ผ์„ ํ•ฉ์ณ์„œ ์ตœ์ข…์ ์œผ๋กœ ๋‘ ๊ฐ์ฒด๊ฐ€ ๋‹ด๊ธด ๋ฐฐ์—ด์„ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด ๋ชฉํ‘œ์ž…๋‹ˆ๋‹ค. ํŒŒ์ผ ๊ฒฝ๋กœ๋ฅผ ์ฐพ์„ ๋•Œ, user1Path ๋ฐ user2Path๋ฅผ ์ด์šฉํ•˜์„ธ์š”. then์ด ์–ด๋–ค ..