Welcome To

ν›„λ‹ˆ's Blog

Hello World
Let's Focus On
State Lifting
Β·
React/2022-上
State LiftingState Lifting (State λŒμ–΄μ˜¬λ¦¬κΈ°)React의 데이터 흐름은 μƒμœ„ μ»΄ν¬λ„ŒνŠΈμ—μ„œ ν•˜μœ„ μ»΄ν¬λ„ŒνŠΈλ‘œ μ „λ‹¬ν•˜λŠ” ν•˜ν–₯μ‹μ΄μž 단방ν–₯ 데이터 흐름을 λ”°λ¦„λ§Œμ•½, ν•˜λ‚˜μ˜ μƒνƒœκ°€ μ—¬λŸ¬ μ»΄ν¬λ„ŒνŠΈμ— 영ν–₯을 μ€€λ‹€λ©΄, ν•΄λ‹Ή μ»΄ν¬λ„ŒνŠΈλ“€ κ°„μ˜ κ°€μž₯ κ°€κΉŒμš΄ κ³΅ν†΅μ˜ μƒμœ„ μ»΄ν¬λ„ŒνŠΈμ— μƒνƒœλ₯Ό λŒμ–΄μ˜¬λ¦¬λ©΄ 됨이것을 State Lifting (State λŒμ–΄μ˜¬λ¦¬κΈ°)라고 ν•¨κ³΅μœ λ  μƒνƒœλ₯Ό μ†Œμœ ν•œ μ»΄ν¬λ„ŒνŠΈκ°€ μ§„λ¦¬μ˜ μ›μ²œμ΄ λ¨ν•˜μ§€λ§Œ μ‹€μ œλ‘œλŠ” ν•˜μœ„ μ»΄ν¬λ„ŒνŠΈμ—μ„œ μ΄λ²€νŠΈκ°€ μΌμ–΄λ‚˜ μƒμœ„ μ»΄ν¬λ„ŒνŠΈμ˜ μƒνƒœλ₯Ό κ°±μ‹ ν•˜λŠ” κ²½μš°κ°€ μ‘΄μž¬ν•˜κ³ , μ΄λŠ” μ—­λ°©ν–₯ 데이터 νλ¦„μ²˜λŸΌ λ³΄μΌμˆ˜λ„ 있음이λ₯Ό μœ„ν•΄ Reactμ—μ„œ μ œμ‹œν•œ 방법은 μƒμœ„ μ»΄ν¬λ„ŒνŠΈμ— μ •μ˜λœ μƒνƒœλ₯Ό λ³€κ²½ν•˜λŠ” ν•¨μˆ˜ 자체λ₯Ό ν•˜μœ„ μ»΄ν¬λ„ŒνŠΈμ— props둜 μ „λ‹¬ν•˜κ³ , ν•˜μœ„ μ»΄ν¬λ„ŒνŠΈμ—μ„œ 이 ..
State Prev
Β·
React/2022-上
State useState()λ₯Ό μ΄μš©ν•΄μ„œ 4μ”© 였λ₯΄λŠ” μΉ΄μš΄ν„° λ§Œλ“€κΈ° μœ„ μ½”λ“œλ₯Ό μ‹€ν–‰ν•˜κ³  λ²„νŠΌμ„ ν΄λ¦­ν–ˆμ„ λ•Œ β”Œ 첫번째 λ²„νŠΌ 클릭 μ‹œ : β”” count = 0, ν˜„μž¬ count = 0, μž„μ‹œμ €μž₯ count = 1 ┣ λ‘λ²ˆμ§Έ λ²„νŠΌ 클릭 μ‹œ : β”Œ count = 0, ν˜„μž¬ count = 0, μž„μ‹œμ €μž₯ count = 1 β”” count = 0, ν˜„μž¬ count = 0, μž„μ‹œμ €μž₯ count = 1 ┣ μ„Έλ²ˆμ§Έ λ²„νŠΌ 클릭 μ‹œ : β”Œ count = 0, ν˜„μž¬ count = 0, μž„μ‹œμ €μž₯ count = 1 ┣ count = 0, ν˜„μž¬ count = 0, μž„μ‹œμ €μž₯ count = 1 β”” count = 0, ν˜„μž¬ count = 0, μž„μ‹œμ €μž₯ count = 1 β”” λ„€λ²ˆμ§Έ λ²„νŠΌ 클릭 μ‹œ : β”Œ count = 0, ν˜„μž¬ count ..
State Lifecycle
Β·
React/2022-上
State Lifecycle 생λͺ…μ£ΌκΈ° Reactμ—μ„œ λͺ¨λ“  μ»΄ν¬λ„ŒνŠΈλŠ” μ•„λž˜μ˜ μ„Έκ°€μ§€ 단계λ₯Ό κ±°μΉ¨ β”Œ μ΄ˆκΈ°ν™” 단계 β”œ μ—…λ°μ΄νŠΈ 단계 β”” μ†Œλ©Έ 단계 μœ„μ˜ 각 λ‹¨κ³„μ—μ„œ λͺ‡κ°œμ˜ λ©”μ„œλ“œλ“€μ΄ μ •ν•΄μ§„ μˆœμ„œλŒ€λ‘œ μž‘λ™ν•˜κ³  각 단계 μ†μ—μ„œ ν˜ΈμΆœλ˜λŠ” λ©”μ„œλ“œλ“€μ„ λ°”λ‘œ 생λͺ…μ£ΌκΈ° λ©”μ„œλ“œ 라고 뢀름 λ¦¬μ•‘νŠΈλŠ” μ›Ήμ—μ„œ UI 데이터가 λ³€κ²½λ˜λ©΄ μžλ™μœΌλ‘œ μ»΄ν¬λ„ŒνŠΈκ°€ μ—…λ°μ΄νŠΈλ˜κ³  λ™μ μœΌλ‘œ 화면을 그렀쀌 μ œλŒ€λ‘œ 된 κΈ°λŠ₯을 μˆ˜ν–‰ν•˜λ €λ©΄ 이런 μžλ™μœΌλ‘œ μ—…λ°μ΄νŠΈ λ˜λŠ” 과정에 끼어듀어 APIλ₯Ό ν˜ΈμΆœν•˜κΈ°λ„ ν•˜κ³  데이터λ₯Ό κ°€κ³΅ν•΄μ€˜μ•Ό ν•  λ•Œλ„ 있음 λ”°λΌμ„œ, 생λͺ…μ£ΌκΈ°μ˜ 각 λ‹¨κ³„λ³„λ‘œ ν•„μš”ν•œ μˆœκ°„μ— ν•„μš”ν•œ μž‘μ—…λ“€μ„ λΌμ›Œλ„£μ„ 수 μžˆλŠ” λ©”μ„œλ“œλ“€μ΄ μ‘΄μž¬ν•¨ β”” μœ„μ˜ 사진은 λ¦¬μ•‘νŠΈμ˜ 라이프 사이클을 λ‚˜νƒ€λ‚Έ ν™”λ©΄ 생λͺ…μ£ΌκΈ°μ˜ 각 λ©”μ„œλ“œλ“€μ˜ μ—­ν•  μ΄ˆκΈ°ν™” 단계 β”Œ μ΄ˆκΈ°ν™” λ‹¨κ³„μ—μ„œ..
μŠ€μ½”ν”„, μŠ€μ½”ν”„ 체인
Β·
Web Basic/JavaScript
μŠ€μ½”ν”„μžλ°”μŠ€ν¬λ¦½νŠΈμ˜ λ³€μˆ˜μ—λŠ” 유효 λ²”μœ„κ°€ μžˆμŒλ³€μˆ˜μ™€ 같은 μ‹λ³„μžμ— λŒ€ν•œ 유효 λ²”μœ„λ₯Ό μŠ€μ½”ν”„λΌκ³  ν•¨μœ νš¨λ²”μœ„λŠ” 전역곡간과 μ§€μ—­κ³΅κ°„μœΌλ‘œ 크게 λ‘κ°€μ§€λ‘œ λ‚˜λ‰˜λ©°, 이에따라 λ³€μˆ˜ λ˜ν•œ μ „μ—­λ³€μˆ˜μ™€ μ§€μ—­λ³€μˆ˜λ‘œ λ‚˜λ‰¨ μ „μ—­ λ³€μˆ˜μŠ€ν¬λ¦½νŠΈ μ˜μ—­ 어디에도 νž˜μ„ 발휘 ν•  수 μžˆλŠ” λ³€μˆ˜λ³€μˆ˜κ°€ μ–΄λ–€ λΈ”λ‘μ•ˆμ— λ“€μ–΄κ°€μžˆμ§€ μ•Šμ„ 경우 μ „μ—­λ³€μˆ˜λΌ 함 μ§€μ—­ λ³€μˆ˜μ •ν•΄μ§„ μ˜μ—­μ—μ„œλ§Œ νž˜μ„ λ°œνœ˜ν•˜λŠ” λ³€μˆ˜λ³΄ν†΅ 블둝 { } μ•ˆμ΄λ‚˜, ν•¨μˆ˜ μ•ˆμ—μ„œλ§Œ λ³€μˆ˜μ— μ ‘κ·Όν•  수 있음 μŠ€μ½”ν”„ μ²΄μΈμ‹λ³„μžμ˜ μœ νš¨λ²”μœ„ 즉, μŠ€μ½”ν”„λ₯Ό μ•ˆμ—μ„œλΆ€ν„° λ°–μœΌλ‘œ 검색해 λ‚˜κ°€λŠ” 것을 μŠ€μ½”ν”„ 체인이라고 ν•¨μ»¨ν…μŠ€νŠΈλŠ” ν•΄λ‹Ή μ½”λ“œμ˜ μ™ΈλΆ€ν™˜κ²½μ •λ³΄λ₯Ό μˆ˜μ§‘ν•΄ 올 λ•Œ μŠ€μ½”ν”„ 체인이 λ°œμƒ β”” aκ°€ 1이 λ˜λŠ” 이유 : λ°”λ‘œ μœ„ μ‹λ³„μžμ˜ Environmentλ₯Ό μ°Έμ‘°ν•΄μ˜€κΈ° λ•Œλ¬Έ β‘  λ¨Όμ € oute..
Class / Functional Component (ν΄λž˜μŠ€ν˜• μ»΄ν¬λ„ŒνŠΈ, ν•¨μˆ˜ν˜• μ»΄ν¬λ„ŒνŠΈ)
Β·
React/2022-上
Reactμ—μ„œ Functional ComponentλŠ” μ—†λŠ” 단어이닀. μš°μ„ , 곡식 μ‚¬μ΄νŠΈλ₯Ό 보게 되면, Functional Component(ν•¨μˆ˜ν˜• μ»΄ν¬λ„ŒνŠΈ)λΌλŠ” 말은 μ‘΄μž¬ν•˜μ§€ μ•ŠλŠ”λ‹€. Functional Component(ν•¨μˆ˜ν˜• μ»΄ν¬λ„ŒνŠΈ) λŒ€μ‹  Function Component(ν•¨μˆ˜ μ»΄ν¬λ„ŒνŠΈ)라고 μ°Ύμ•„λ³΄κ²Œ λœλ‹€λ©΄, 이에 λŒ€ν•œ μ„€λͺ…은 μ°Ύμ•„λ³Ό 수 μžˆλ‹€. 이에 λŒ€ν•œ μ΄μœ λŠ”, Function Component(ν•¨μˆ˜ μ»΄ν¬λ„ŒνŠΈ)λŠ” μ°Έμ‘° 투λͺ…ν•  μˆ˜λ„, 아닐 μˆ˜λ„ 있기 λ•Œλ¬Έμ— "Functional"(ν•¨μˆ˜ν˜•) μˆ˜μ‹μ–΄λ₯Ό λΆ™μ΄λŠ” 것은 μ˜€ν•΄λ₯Ό 뢈러 μΌμœΌν‚¬ μˆ˜λ„ 있기 λ•Œλ¬Έμ΄λ‹€. β”” μ°Έμ‘° 투λͺ…성에 λŒ€ν•΄μ„œλŠ” μ•Œμ•„μ„œ 검색해보길 μΆ”μ²œν•œλ‹€! β€» κ³Όκ±°μ—λŠ” 곡식 μ‚¬μ΄νŠΈμ—μ„œλ„ "Functional Component" (ν•¨μˆ˜ν˜• μ»΄ν¬λ„ŒνŠΈ) 라..
μ‹€ν–‰ μ»¨ν…μŠ€νŠΈμ™€ ν˜Έμ΄μŠ€νŒ…
Β·
Web Basic/JavaScript
μŠ€νƒ & νμŠ€νƒμΆœμž…κ΅¬κ°€ ν•˜λ‚˜μΈ 우물 ν˜•νƒœμ˜ 데이터 ꡬ쑰 μŠ€νƒμ˜ μž…λ ₯κ³Ό 좜λ ₯ μˆœμ„œμŠ€νƒμ˜ μΆœμž…κ΅¬λŠ” ν•˜λ‚˜μž…λ ₯의 μˆœμ„œμ™€ 좜λ ₯의 μˆœμ„œκ°€ λ‹€λ¦„μž…λ ₯ μˆœμ„œ : 1 - 2 - 3 - 4 - 5좜λ ₯ μˆœμ„œ : 5 - 4 - 3 - 2 - 1 큐양방ν–₯ μΆœμž…μ΄ κ°€λŠ₯ν•œ νŒŒμ΄ν”„ ν˜•νƒœμ˜ 데이터 ꡬ쑰 큐의 μž…λ ₯κ³Ό 좜λ ₯ μˆœμ„œμž…κ΅¬μ™€ μΆœκ΅¬κ°€ 닀름 → 제일 λ¨Όμ € λ“€μ–΄κ°„ 데이터가 제일 λ¨Όμ € λ‚˜μ˜΄μž…λ ₯의 μˆœμ„œμ™€ 좜λ ₯의 μˆœμ„œκ°€ κ°™μŒμž…λ ₯ μˆœμ„œ : c - b - a좜λ ₯ μˆœμ„œ : c - b - a μ‹€ν–‰ μ»¨ν…μŠ€νŠΈμ™€ ν˜Έμ΄μŠ€νŒ…μ‹€ν–‰ μ»¨ν…μŠ€νŠΈμ‹€ν–‰ν•  μ½”λ“œμ— μ œκ³΅ν•  ν™˜κ²½μ •λ³΄λ₯Ό λͺ¨μ•„λ‘” κ°μ²΄μžλ°”μŠ€ν¬λ¦½νŠΈλŠ” λ™μΌν•œ ν™˜κ²½μ— μžˆλŠ” μ½”λ“œλ“€μ„ μ‹€ν–‰ν•  λ•Œ ν•„μš”ν•œ ν™˜κ²½μ •λ³΄λ₯Ό λͺ¨μ•„ μ»¨ν…μŠ€νŠΈλ₯Ό κ΅¬μ„±ν•˜κ³ , ν•΄λ‹Ή μ»¨ν…μŠ€νŠΈλ₯Ό μ½œμŠ€νƒμ— μŒ“μ•„λ‘ μ‹€ν–‰ μ»¨ν…μŠ€νŠΈλ₯Ό μƒμ„±ν•˜κΈ° μœ„ν•œ κ°€μž₯ ..
React state, props
Β·
React/2022-上
State & Props Props, State λž€? 데이터λ₯Ό λ‹€λ£° λ•Œ μ‚¬μš©λ˜λŠ” κ°œλ… State λž€? μ»΄ν¬λ„ŒνŠΈμ˜ μƒνƒœλ₯Ό λ‚˜νƒ€λƒ„ κ°€λ³€ 데이터 (μ»΄ν¬λ„ŒνŠΈμ˜ λ‚΄λΆ€μ—μ„œ μ„ μ–Έλ˜κΈ° λ•Œλ¬Έ) 직접 λ³€κ²½ κ°€λŠ₯ λ§Œμ•½ stateκ°€ λ³€κ²½λ˜λ©΄ μ»΄ν¬λ„ŒνŠΈλ₯Ό λ‹€μ‹œ λ Œλ”λ§ 해야함 외뢀에 κ³΅κ°œν•˜μ§€ μ•Šκ³ , μ»΄ν¬λ„ŒνŠΈκ°€ 슀슀둜 관리함 state둜 μ‚¬μš©ν•˜λŠ” 것은 μ»΄ν¬λ„ŒνŠΈμ˜ μƒνƒœκ°’μ„ λ‚˜νƒ€λ‚΄κΈ° μœ„ν•œ 것듀(λ¦¬μŠ€νŠΈμ—μ„œ μ„ νƒλœ κ°’, μ²΄ν¬λ°•μŠ€μ—μ„œ 체크된 κ°’ λ“±) β”” μœ„μ˜ μ˜ˆμ‹œλŠ” + λ²„νŠΌμ„ λˆ„λ₯΄λ©΄, 화면에 ν‘œμ‹œλœ 값을 1 증가 μ‹œν‚€λŠ” μ½”λ“œ β”Œ Stateλ₯Ό μ‚¬μš©ν•˜κΈ° μœ„ν•΄ useStateλΌλŠ” Hook을 μ‚¬μš©ν•΄μ•Ό 함 β”œ useStateλŠ” State λ³€μˆ˜μ˜ μ΄ˆκΈ°κ°’μ„ λ§€κ°œλ³€μˆ˜λ‘œ μ „λ‹¬ν•˜μ—¬ ν˜ΈμΆœν•˜κ³ , κ²°κ³Όκ°’μœΌλ‘œλŠ” 배열을 λ°˜ν™˜ν•¨ β”œ λ°˜ν™˜λœ λ°°μ—΄μ—μ„œλŠ” useState 함..
JavaScript와 TypeScript
Β·
React/2022-上
JavaScript JavaScript λž€? μ›Ή κ°œλ°œμ— 주둜 μ‚¬μš©λ¨ μ›Ή νŽ˜μ΄μ§€λ₯Ό λŒ€ν™”μ‹μœΌλ‘œ λ§Œλ“œλŠ” ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄ 폼 μœ νš¨μ„± 검사, μ• λ‹ˆλ©”μ΄μ…˜ 적용 및 이벀트 생성을 μˆ˜ν–‰ ν΄λΌμ΄μ–ΈνŠΈ μΈ‘ μŠ€ν¬λ¦½νŒ… μ–Έμ–΄ β”” μ‚¬μš©μžκ°€ μ›Ή λΈŒλΌμš°μ €λ₯Ό μ—΄κ³  μ›Ή νŽ˜μ΄μ§€λ₯Ό μš”μ²­ν•˜λ©΄ ν•΄λ‹Ή μš”μ²­μ΄ μ›Ή μ„œλ²„λ‘œ 이동함 λ©€ν‹° μŠ€λ ˆλ”©, λ©€ν‹° ν”„λ‘œμ„Έμ‹± κΈ°λŠ₯이 μ—†μŒ μ˜ˆμ‹œ μ½”λ“œ β”” 정적 νƒ€μž…μ„ μ§€μ›ν•˜μ§€ μ•ŠμœΌλ―€λ‘œ μ–΄λ–€ νƒ€μž…μ˜ λ°˜ν™˜κ°’μ„ 리턴해야 ν•˜λŠ”μ§€ λͺ…ν™•ν•˜μ§€ μ•ŠμŒ TypeScript TypeScript λž€? MSμ—μ„œ κ°œλ°œν•˜μ—¬ 2012λ…„ 10월에 첫 μΆœμ‹œλ¨ μ˜€ν”ˆμ†ŒμŠ€ ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄λ‘œ μ–΄λ–€ λΈŒλΌμš°μ €λ‚˜ 호슀트, μš΄μ˜μ²΄μ œμ—μ„œλ„ λ™μž‘ν•¨ ES6의 μƒˆλ‘œμš΄ κΈ°λŠ₯듀을 μ‚¬μš©ν•˜κΈ° μœ„ν•΄ Babelκ³Ό 같은 별도 트랜슀파일러λ₯Ό μ‚¬μš©ν•˜μ§€ μ•Šμ•„λ„ 됨 정적 νƒ€μž… μ–Έμ–΄λ‘œ 컴파일 μ‹œ..