λ§ˆμ΄νŽ˜μ΄μ§€ 버그, 정보 λ³€κ²½ 확인 μœ νš¨μ„± 검사 πŸ€”
πŸ“” Studying/πŸ’Œ TIL 2023. 2. 21. 22:15

Today, What I learned νŠœν„°λ‹˜μ˜ μƒμ„Έν•œ!.. 거의 μ „μˆ˜ ν…ŒμŠ€νŠΈ κΈ‰μ˜ ν”Όλ“œλ°±μ„ 톡해 λ°œκ²¬ν•œ 버그.. 버그 ν•΄κ²° 과정을 기둝해 λ³Έλ‹€. ν˜„μž¬ λ‚΄κ°€ μž‘μ—…ν•œ λ§ˆμ΄νŽ˜μ΄μ§€μ—λŠ” 이런 버그가 μžˆλ‹€. κΈ°μ‘΄ μœ μ € 정보와 λ‹¬λΌμ‘Œμ„ λ•Œλ§Œ λ²„νŠΌμ„ ν™œμ„±ν™”μ‹œμΌœμ•Ό ν•˜λŠ”λ°, μœ νš¨μ„± 검사에 κ·Έ 뢀뢄을 λΉΌλ¨Ήμ–΄μ„œ.. μˆ˜μ •ν–ˆλŠλƒμ˜ 여뢀에 상관없이 κ³„μ†ν•΄μ„œ μ„œλ²„μ—κ²Œ μš”μ²­μ„ ν•  수 μžˆλŠ” μƒνƒœμ˜€λ‹€!!... ((OMG)) 이런 의미 μ—†λŠ” λ¦¬μ†ŒμŠ€ λ‚­λΉ„λ₯Ό λ§‰λŠ” μΌμ΄μ•Όλ§λ‘œ ν”„λ‘ νŠΈμ—”λ“œλ‘œμ„œ ν•΄μ•Ό ν•  일... πŸ˜‡ State μΆ”κ°€ν•˜κΈ° 해결을 μœ„ν•΄ 초기 λ Œλ”λ§ μ‹œ μ €μž₯된 μœ μ €μ˜ 정보λ₯Ό λ°›μ•„μ˜¬ stateλ₯Ό ν•˜λ‚˜ λ§Œλ“€μ—ˆλ‹€. const [defaultUserInfo, setDefaultUserInfo] = useState(defaultInfo); μ’€ μ—¬..

[React] React.lazy 와 Suspense
πŸ“” Studying/πŸ’Œ TIL 2023. 2. 20. 23:31

Today, What I learned? 우리 ν”„λ‘œμ νŠΈμ— μ μš©λ˜μ–΄ μžˆλŠ” μ½”λ“œλΆ„ν• μ— λŒ€ν•΄μ„œ μ•Œμ•„λ³΄λ € ν•œλ‹€. λ‚΄κ°€ μ μš©ν•œ 뢀뢄이 μ•„λ‹ˆμ—ˆκ³ , λ‚˜λ„ 처음 μ ‘ν•œ 것이라 아직 μƒμ†Œν•œ λΆ€λΆ„!... λ¦¬μ•‘νŠΈ κ³΅μ‹λ¬Έμ„œμ—λ„ 이 뢀뢄이 잘 μ„€λͺ…λ˜μ–΄ μžˆλ‹€. https://ko.reactjs.org/docs/code-splitting.html μ½”λ“œ λΆ„ν•  – React A JavaScript library for building user interfaces ko.reactjs.org μ½”λ“œ 뢄할은 앱을 μ§€μ—°λ‘œλ”©(lazy loading) ν•  수 μžˆλ„λ‘ 도와쀀닀. μ‚¬μš©μžκ°€ ν•„μš”ν•œ μ½”λ“œλ₯Ό κ·Έλ•Œκ·Έλ•Œ 뢈러였기 λ•Œλ¬Έμ— 초기 λ‘œλ”©μ— ν•„μš”ν•œ μ½”λ“œκ°€ 쀄어듀고, μ„±λŠ₯ ν–₯상에 λ§Žμ€ 도움이 λœλ‹€. React.lazy React.lazy ν•¨μˆ˜λ₯Ό μ΄μš©ν•΄μ„œ ..

2μ›” μ…‹μ§Έ μ£Ό μ£Όκ°„ 회고
πŸ“˜ Retrospect/πŸ’­ 회고 2023. 2. 19. 10:07

2μ›” μ…‹μ§Έ μ£Όλ₯Ό 보내며 MVP κΈ°λŠ₯ κ΅¬ν˜„μ— μ •μ‹ μ—†μ—ˆλ˜ ν•œ μ£Όκ°€ 지났닀 πŸ˜‡ κ°€μž₯ λΆˆνƒœμš΄ ν•œ μ£Όμ˜€λ˜ 것 κ°™λ‹€.. πŸ‘€ Fact firebase CORS μ—λŸ¬λ₯Ό ν•΄κ²°ν–ˆλ‹€. λ§ˆμ΄νŽ˜μ΄μ§€ UIλ₯Ό κ½€ μˆ˜μ •ν–ˆλ‹€. λ§ˆμ΄νŽ˜μ΄μ§€ ν”„λ‘œν•„ μˆ˜μ • κΈ°λŠ₯을 κ΅¬ν˜„ν–ˆλ‹€. λ§ˆμ΄νŽ˜μ΄μ§€ ν”„λ‘œμ νŠΈ 리슀트 쑰회 κΈ°λŠ₯을 κ΅¬ν˜„ν–ˆλ‹€. μ΅œμ†Œν•œμ˜ MVP κ΅¬ν˜„μ΄ 거의(!) 끝났닀. 버그λ₯Ό μˆ˜μ •ν•˜κ³  μ½”λ“œλ₯Ό λ¦¬νŒ©ν† λ§ν•˜κ³  μžˆλ‹€. πŸ™‚ Feeling μ•ˆ ν•΄λ΄€λ˜ κΈ°λŠ₯을 κ΅¬ν˜„ν•˜λ©° μ‚½μ§ˆμ„ 많이 ν–ˆλ‹€ πŸ˜‡ κ·Έλž˜λ„ κ΅¬ν˜„λμ„ λ•Œ μ¦κ±°μ›Œ.. μš”μƒˆ 뢀쩍 밀에 집쀑이 잘 λ˜μ–΄μ„œ 큰일이닀.. μˆ˜λ©΄νŒ¨ν„΄ μ§€μΌœ.. μ»€μŠ€ν…€ 훅을 이제 자유둭게 λ‹€λ£° 수 있게 된 것 κ°™λ‹€ μ’‹λ‹€. μƒνƒœκ΄€λ¦¬ 라이브러리λ₯Ό μ“°λŠ” 이유λ₯Ό μžŠμ§€ 말자.. πŸ” Finding input νƒœκ·Έμ˜ radio, checkbox λ₯Ό ..

[React] ν”„λ‘œμ νŠΈ 리슀트 필터링 μ—¬μ •(2) - 3쀑 쀑첩 객체
πŸ“” Studying/πŸ’Œ TIL 2023. 2. 17. 21:53

Today, What I learned? μ§€λ‚œ 글이 κΈΈμ–΄μ Έμ„œ μ΄μ–΄μ„œ μž‘μ„±ν•˜λŠ” ν”„λ‘œμ νŠΈ 리슀트 필터링 μ—¬μ •~ μ˜€λŠ˜μ€ 3쀑 쀑첩 객체의 값을 톡해 ν”„λ‘œμ νŠΈλ₯Ό ν•„ν„°λ§ν•˜λŠ” 과정에 λŒ€ν•΄ κΈ°λ‘ν•œλ‹€. μ—¬νƒœκ».. 쀑첩 κ°μ²΄κΉŒμ§„ κ²ͺμ–΄λ΄€μ§€λ§Œ 3μ€‘μœΌλ‘œ μ€‘μ²©λœ.. κ·ΈλŸ¬λ‹ˆκΉŒ μ€‘μ²©μ˜ μ€‘μ²©μ˜ 쀑첩 κ°μ²΄λŠ” 처음이라 μ‚½μ§ˆμ„ μ’€ ν–ˆλ‹€. κ·Έλž˜λ„ Promise 배열보단 빨리 해결함 γ…Ž 일단 μ΅œμ’…λ³Έμ€ 이렇닀. 기쁜 마음으둜 gifλ₯Ό λ§Œλ“€μ—ˆλ‹€ ^^.. 이 녀석은 3 쀑첩 객체 μ§€μ›ν•œ, μ°Έμ—¬ν•œ ν”„λ‘œμ νŠΈμ˜ 경우 ν”„λ‘œμ νŠΈ μ•„μ΄λ””λ‘œ λ¬Έμ„œ(객체)κ°€ λ§Œλ“€μ–΄μ§€κ³ , κ·Έ μ•ˆ 객체의 recruited λΌλŠ” 킀값을 톡해 νŒλ³„λœλ‹€. μ•„λž˜μ²˜λŸΌ true/false에 따라 κ°ˆλ¦°λ‹€. appliedProjectsλΌλŠ” 객체 μ•ˆμ˜ 각 λ¬Έμ„œ μ•„μ΄λ””λΌλŠ” 객체 μ•ˆμ˜ recruite..

[React] ν”„λ‘œμ νŠΈ 리슀트 필터링 μ—¬μ •(1) - Promise.all
πŸ“” Studying/πŸ’Œ TIL 2023. 2. 16. 22:25

Today, What I learned? λ§ˆμ΄νŽ˜μ΄μ§€μ˜ ν•΄λ‹Ή μœ μ € ν”„λ‘œμ νŠΈ 리슀트λ₯Ό ν•„ν„°λ§ν•˜κΈ° μœ„ν•œ κΈ΄ μ—¬μ •.... λ‚˜λ₯Ό λΉ™κΈ€ λŒμ•„λ²„λ¦¬κ²Œ λ§Œλ“€μ—ˆλ˜ Promise와 ν•΄κ²°ν•  수 μžˆμ—ˆλ˜ Promise.all에 λŒ€ν•΄ μ•Œμ•„λ³Έλ‹€. λ°œλ‹¨, Promise λ°°μ—΄ 우리 ν”„λ‘œμ νŠΈμ˜ 데이터 κ΅¬μ‘°λŠ” 쑰금 λ³΅μž‘ν•œ 편인데.. λ§ˆμ΄νŽ˜μ΄μ§€μ—μ„œμ˜ ν”„λ‘œμ νŠΈ λ¦¬μŠ€νŠΈλŠ” ν™œμ„±ν™”λœ μΉ΄ν…Œκ³ λ¦¬μ— λ”°λΌμ„œ 그에 ν•΄λ‹Ήν•˜λŠ” ν”„λ‘œμ νŠΈλ“€μ„ 보여주어야 ν•œλ‹€. μ°Έμ—¬ν•œ ν”„λ‘œμ νŠΈλΌλ©΄ μ§€μ›ν•œ ν”„λ‘œμ νŠΈλ§Œ λ³΄μ—¬μ£ΌλŠ” 식.. 뭐 μ—¬κΈ°κΉŒμ§€μ•Ό λ³΄ν†΅μ˜ 필터링이지 μ•Šλ‚˜? 싢을 수 μžˆμ§€λ§Œ μ € 데이터λ₯Ό κ°€μ Έμ˜€κΈ° μœ„ν•΄μ„œλŠ” μ–»μ–΄μ˜¨ 각각의 λ¬Έμ„œμ•„μ΄λ”” 리슀트λ₯Ό ν†΅ν•΄μ„œ 각각의 ν”„λ‘œμ νŠΈ 정보λ₯Ό λ‹€μ‹œ μ‘°νšŒν•΄μ•Ό ν•˜λŠ”.. 과정을 거쳐야 ν•œλ‹€. μ™œ 데이터 ꡬ쑰가 μ΄λŸ°κ°€μš”?라고 λ¬»λŠ”λ‹€λ©΄ 우리 νŒ€μ€ λͺ¨λ‘ ν”„..

[React] μ»€μŠ€ν…€ λͺ¨λ‹¬ λ§Œλ“€κΈ°
πŸ“” Studying/πŸ’Œ TIL 2023. 2. 15. 23:30

Today, What I learned? ν”„λ‘œμ νŠΈμ˜ 곡용 λͺ¨λ‹¬μ„ ν™œμš©ν•˜λ €κ³  ν–ˆμ§€λ§Œ πŸ‘€ κ·Έλž˜λ„ ν™œμš©ν•  수 μ—†λŠ” ν˜•νƒœλΌ 또 λ‹€λ₯Έ μ»€μŠ€ν…€ λͺ¨λ‹¬μ„ λ§Œλ“€μ–΄ 보기둜 ν–ˆλ‹€. λ”λΆˆμ–΄ 곡용 λͺ¨λ‹¬μ„ μ–΄λ–»κ²Œ λ§Œλ“€ 수 μžˆμ„μ§€?? μ§€λ‚œ ν”„λ‘œμ νŠΈμ—μ„œ 많이 κ³ λ―Όν–ˆμ—ˆλŠ”λ° 이번 ν”„λ‘œμ νŠΈμ—μ„œλŠ” λ©‹μ§€κ²Œ κ΅¬ν˜„ν•΄ μ€€ νŒ€μ› 뢄이 μžˆμ–΄μ„œ!.. 많이 λ°°μ› λ‹€ πŸ˜‡ κ·Έλž˜μ„œ μ˜€λŠ˜μ€ λͺ¨λ‹¬μ— λŒ€ν•΄ 정리해 λ³Έλ‹€. useModal hook λͺ¨λ‹¬μ„ κ³΅ν†΅μ μœΌλ‘œ μ“°λ €λ©΄ 일단 λͺ¨λ‹¬μ΄ 열리고 λ‹«νžˆλŠ” μƒνƒœλ₯Ό 관리해주어야 ν•œλ‹€. 이λ₯Ό μœ„ν•΄μ„œ 보톡 μ»€μŠ€ν…€ ν›…μœΌλ‘œ λͺ¨λ‹¬ μƒνƒœλ₯Ό κ΄€λ¦¬ν•œλ‹€. μƒνƒœλ₯Ό λ³€κ²½ν•΄ μ£ΌλŠ” ν•¨μˆ˜ 같은 것을 λ§Œλ“€μ–΄μ£Όμ–΄ κ΄€λ¦¬ν•œλ‹€. 또 여기에 onClick μ΄λ²€νŠΈλ‚˜ onChange 이벀트처럼 ν•„μš”ν•œ 것듀을 μΆ”κ°€ν•΄ μ€€λ‹€. const useModal = (initial..

[React] input type = 'radio', 'checkbox'의 μƒνƒœκ΄€λ¦¬
πŸ“” Studying/πŸ’Œ TIL 2023. 2. 14. 11:31

Today, What I learned? λΌλ””μ˜€ λ²„νŠΌκ³Ό μ²΄ν¬λ°•μŠ€μ˜ μƒνƒœ μœ μ§€λ₯Ό μœ„ν•œ 고민의 과정을 기둝해 λ³Έλ‹€!.. λ‹¨μˆœνžˆ 값을 λ„£μ–΄ stateλ₯Ό λ³€κ²½ν•΄ μ£ΌλŠ” 것이 μ•„λ‹ˆλΌ, 이전 μƒνƒœ μŠ€λƒ…μƒ·μ„ μ΄μš©ν•΄μ„œ stateλ₯Ό λ³€κ²½ν•˜λŠ” λ‘œμ§μ„ 써보게 λ˜μ–΄ μ’‹μ•˜λ‹€. 첫 번째 μ‹œλ„ λΌλ””μ˜€ λ²„νŠΌ const [isJuniorChecked, setIsJuniorChecked] = useState( user?.isJunior, ); const [checkedPositions, setCheckedPositions] = useState( user?.positions, ); λΌλ””μ˜€ λ²„νŠΌμ— λ“€μ–΄κ°ˆ onChange 이벀트. const handleCheckedRadioChange = useCallback( (e: React.ChangeE..

firebase CORS μ—λŸ¬ Response to preflight request doesn't pass access control check ~
πŸ“” Studying/🚧 Errors 2023. 2. 13. 21:31

μ–΄λ–€ μ—λŸ¬? νŒŒμ΄μ–΄λ² μ΄μŠ€ μŠ€ν† λ¦¬μ§€μ— 이미지 μ—…λ‘œλ“œλ₯Ό κ΅¬ν˜„ν•˜λ˜ 쀑 CORS μ—λŸ¬λ₯Ό λ§Œλ‚˜κ²Œ λ˜μ—ˆλ‹€. Access to XMLHttpRequest at '~~' from origin 'http://localhost:3000' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. 원인 νŒŒμ•… ꡐ차 좜처 λ¦¬μ†ŒμŠ€ 곡유 (Cross-origin resource sharing)κ°€ ν—ˆμš©μ΄ λ˜μ–΄μžˆμ§€ μ•Šμ•„μ„œ 생긴 였λ₯˜!.. CORS μ—λŸ¬λ₯Ό ν•΄κ²°ν•˜κΈ° μœ„ν•΄μ„œλŠ” ν΄λΌμ΄μ–ΈνŠΈ ..

2μ›” λ‘˜μ§Έ μ£Ό μ£Όκ°„νšŒκ³ 
πŸ“˜ Retrospect/πŸ’­ 회고 2023. 2. 12. 21:45

2μ›” λ‘˜μ§Έ μ£Όλ₯Ό 보내며 벌써 2μ›” μ€‘μˆœμ΄λ‹€. μ™œμ§€?... μΊ ν”„λ₯Ό μ§„ν–‰ν•˜λ©° κ°€μž₯ 많이 λ“  생각이 μ™œ 벌써 μ΄λ ‡κ²Œ μ‹œκ°„μ΄ μ§€λ‚¬λŠ”κ°€?.. 인 λ“―ν•˜λ‹€. 햐 μˆ˜λ£ŒκΉŒμ§€ λ”± ν•œ 달 정도 λ‚¨μ•˜λ‹€ ^^... πŸ‘€ Fact μ΅œμ’… ν”„λ‘œμ νŠΈκ°€ μ‹œμž‘λ˜μ—ˆλ‹€. λ””μžμ΄λ„ˆλ‹˜κ³Όμ˜ ν˜‘μ—…!.. 뢀리더λ₯Ό 맑겠닀고 μžμ›ν–ˆλ‹€.. λ§ˆμ΄νŽ˜μ΄μ§€ κΈ°λŠ₯을 λ§‘μ•˜λ‹€. νŒ€μ›λ“€κ³Ό νšŒμ‹μ„ ν–ˆλ‹€. UIλ₯Ό 일차적으둜 마치고 κΈ°λŠ₯ κ΅¬ν˜„ μ€‘μ΄μ§€λ§Œ UIλ₯Ό λ‹€μ‹œ μˆ˜μ •ν•  λ“―ν•˜λ‹€. πŸ™‚ Feeling μ΅œμ’… ν”„λ‘œμ νŠΈκ³  μ•„λ¬΄λž˜λ„ μ±Œλ¦°μ§€νŒ€μ΄λ‹€ λ³΄λ‹ˆ μ•½κ°„μ˜ 압박감(?) 같은 것도 μžˆλŠ” 것 κ°™λ‹€. 뢀리더.. νŒ€μ„ μΌ€μ–΄ν•˜λ € ν•˜κ³ , λ””μžμ΄λ„ˆμ™€μ˜ μ†Œν†΅μ„ μœ„ν•œ λ¬Έμ„œν™”λ₯Ό ν•˜κ³ .. 이런 일듀을 ν•˜κ³  μžˆλŠ”λ° μž˜ν•˜κ³  μžˆλŠ” 것인가? μ§€κΈˆκΉŒμ§€ 맑은 적이 μ—†μ—ˆλ˜ λ§ˆμ΄νŽ˜μ΄μ§€λ₯Ό 맑아 μ’‹λ‹€. 멋진 νŒ€μ›λ“€μ„ λ§Œλ‚˜μ„œ..

[Project Detto] 기술 μŠ€νƒ 쀑볡 μ²˜λ¦¬μ— λŒ€ν•œ κ³ μ°°
πŸ“” Studying/πŸ’Œ TIL 2023. 2. 10. 23:29

Today, What I learned? λ§ˆμ΄νŽ˜μ΄μ§€ κ΅¬ν˜„ 쀑!.. λ§ˆμ΄νŽ˜μ΄μ§€ 접속 μ‹œ κ°€μ Έμ˜€λŠ” μœ μ € 정보λ₯Ό λ Œλ”λ§ ν•΄μ£ΌλŠ” κ³Όμ •μ—μ„œ 기술 μŠ€νƒ 데이터λ₯Ό ν•Έλ“€λ§ν•˜λ˜ 쀑에 λ§‰νžˆκ³  λ§μ•˜λ‹€. 개발 κΈ°μˆ μŠ€νƒμ€ 잘 λ‚˜μ˜€κ³  μžˆμ§€λ§Œ ν¬μ§€μ…˜κ³Ό 상관 없이 기획, λ””μžμΈ 뢀뢄이 μ€‘λ³΅λ˜μ–΄ λ‚˜νƒ€λ‚¬κΈ° λ•Œλ¬Έ..😨😨😨 (NOOOOOooo...) μœ„ μ‚¬μ§„μ—μ„œλŠ” μž˜λ Έμ§€λ§Œ λ””μžμΈ, ν”„λ‘ νŠΈμ—”λ“œκ°€ μ„ νƒλ˜μ–΄ μžˆλŠ” μƒνƒœμ˜€λ‹€. μ›ν•˜λŠ” λŒ€λ‘œ 되렀면 μœ μ €μ˜ μ„ νƒλœ ν¬μ§€μ…˜μ— λ”°λΌμ„œ ꡬ뢄될 ν•„μš”κ°€ 있고, μœ μ €κ°€ κΈ°νšμ΄λ‚˜ λ””μžμΈ λ‘˜ 쀑 ν•˜λ‚˜λ₯Ό μ„ νƒν–ˆλ‹€λ©΄ ν•΄λ‹Ή ν¬μ§€μ…˜μ˜ μŠ€νƒμ΄ ν™œμ„±ν™”λ˜λ„λ‘ ν•΄μ•Ό ν•œλ‹€!.. κΈ°μ‘΄ μ½”λ“œλŠ” λ‹€μŒκ³Ό κ°™μ•˜λ‹€. {skills.map((skill: string) \=> { const isChecked \= checkedSkills?.inc..