πŸ’πŸ»β€β™€οΈ μ†Œκ°œ

μ§€λ‚œ μ£ΌλŠ” 둜그인 κΈ°λŠ₯의 λ°±μ—”λ“œ κ΅¬ν˜„μ΄ μ™„λ£Œλ˜μ–΄ APIλ₯Ό μ—°λ™ν•˜κ³  둜그인 κΈ°λŠ₯을 μ™„μ„±μ‹œμΌ°λ‹€.😊
μ²˜μŒμ—λŠ” λ°±μ—”λ“œ νŒ€μ›κ³Όμ˜ μ†Œν†΅μ— λŒ€ν•΄ 걱정이 μžˆμ—ˆμ§€λ§Œ, λ°±μ—”λ“œ νŒ€μ›μ΄ ν”„λ‘ νŠΈμ—”λ“œ 지식이 μžˆμ–΄ μ„€λͺ…을 μž˜ν•΄μ£Όμ…¨λ‹€. πŸ‘πŸ»
κ·ΈλŸ¬λ‚˜ 둜그인 κΈ°λŠ₯을 κ΅¬ν˜„ν•˜λŠ” 쀑에 휴먼 μ—λŸ¬κ°€ λ°œμƒν•˜μ—¬ κ·Έ 해결에 μ‹œκ°„μ΄ μ†Œμš”λ˜μ—ˆλ‹€.(μžμ„Έν•œ 사항은 μ•„λž˜μ—μ„œ.. πŸ₯²)

βœ… 2μ£Όμ°¨ κ°œμš”

1μ£Όμ°¨μ—λŠ” UI λ ˆμ΄μ•„μ›ƒμ„ κ΅¬μ„±ν•˜λŠ”λ° μ‹œκ°„μ„ 많이 μŸμ•˜λ‹€.πŸ’¦
ν”Όκ·Έλ§ˆλ‘œ μ™€μ΄μ–΄ν”„λ ˆμž„μ„ 미리 ꡬ성해둔 덕뢄에 이 μž‘μ—…μ€ 순쑰둭게 μ§„ν–‰λ˜μ—ˆλ‹€.
1μ£Όμ°¨ λͺ©ν‘œμΈ 둜그인 κΈ°λŠ₯ κ΅¬ν˜„μ„ μ™„λ£Œν•˜μ˜€κ³ , λ¦¬λ•μŠ€ μ‚¬μš© 방법에 λŒ€ν•΄ κ³΅λΆ€ν•˜μ—¬ μ μš©ν•˜μ˜€λ‹€.
UI μ œμž‘ κ³Όμ •μ—μ„œλŠ” 와이어 ν”„λ ˆμž„κ³Ό 쑰금 λ‹€λ₯Έ λ””μžμΈμ΄ λ‚˜μ˜€κΈ°λ„ ν–ˆλ‹€.

βœ… μ„±κ³Ό

API 연동 κ³Όμ •μ—μ„œ κΉƒν—ˆλΈŒ 레포λ₯Ό λ‚˜λˆ μ„œ ν…ŒμŠ€νŠΈλ₯Ό μ§„ν–‰ν–ˆμ§€λ§Œ, CORS μ—λŸ¬ λ“± μ—¬λŸ¬ λ¬Έμ œκ°€ λ°œμƒν–ˆλ‹€.
μ„œλ²„μ—μ„œ λ³΄λ‚΄λŠ” 데이터와 ν΄λΌμ΄μ–ΈνŠΈμ—μ„œ 데이터λ₯Ό νŒŒμ‹±ν•˜λŠ” κ³Όμ •μ—μ„œλ„ λ¬Έμ œκ°€ λ°œμƒν•˜μ˜€λ‹€.
envλ₯Ό 톡해 APIλ₯Ό λΆˆλŸ¬μ˜€λŠ” κ³Όμ •μ—μ„œ API URL이 μ œλŒ€λ‘œ λΆˆλŸ¬μ™€μ§€μ§€ μ•ŠλŠ” λ¬Έμ œλ„ μžˆμ—ˆλ‹€.πŸ₯²
μ΄ν›„μ—λŠ” 크둬 μΏ ν‚€λ₯Ό μ‚­μ œν•˜μ—¬ 토큰을 λ°›μ•„μ˜€μ§€ λͺ»ν•˜λŠ” 문제λ₯Ό ν•΄κ²°ν–ˆκ³ , 둜그인 λ²„νŠΌ 클릭 ν›„ 둜그인이 μ„±κ³΅μ μœΌλ‘œ μ™„λ£Œλ˜μ—ˆμŒμ—λ„ λ©”μΈνŽ˜μ΄μ§€λ‘œ μ΄λ™ν•˜λŠ”λ° λ¬Έμ œκ°€ μžˆμ–΄ 이λ₯Ό μˆ˜μ •ν–ˆλ‹€.

⛔️ CORS μ—λŸ¬
Reason - κΉƒν—™ 레포λ₯Ό λ‚˜λˆ„μ–΄μ„œ 연동 ν…ŒμŠ€νŠΈν•  방법 κ³ λ―Ό. (λ°±μ—”λ“œ μž„μ‹œ 배포/Ngrok) β†’ λ°±μ—”λ“œ μž„μ‹œ λ°°ν¬μ‹œ μ½”λ“œκ°€ μˆ˜μ •λ  λ•Œλ§ˆλ‹€ build ν•΄μ•Όν•˜λŠ” 상황 λ°œμƒ β†’ Ngrok μ‚¬μš©. ν•˜μ§€λ§Œ CORS μ—λŸ¬ λ°œμƒ
βœ… ν•΄κ²°
1. 포트 ν¬μ›Œλ”©
2. GET λ©”μ„œλ“œ μ‚¬μš©μ‹œ header에 μ•„λž˜ μ½”λ“œ μΆ”κ°€

headers: new Headers({
            "ngrok-skip-browser-warning": "69420",
          }),

⛔️ response μ—λŸ¬
response λ₯Ό κ²€μ¦ν•˜λŠ” κ³Όμ •μ—μ„œ email 값이 undefinedκ°€ 좜λ ₯λ˜μ—ˆλ‹€.
이 λΆ€λΆ„μ—μ„œλŠ” μ„œλ²„μ—μ„œ λ³΄λ‚΄λŠ” 데이터 λŠ” email : κ°’ 으둜 λ³΄λ‚΄μ§€λ§Œ client λΆ€λΆ„μ—μ„œ 데이터λ₯Ό νŒŒμ‹±ν• λ•Œ Email μ—λŒ€ν•œ 데이터λ₯Ό νŒŒμ‹±ν•˜λ €λ‹ˆ undefined μ—λŸ¬λ₯Ό λ°˜ν™˜ν–ˆλ‹€.
βœ… ν•΄κ²°
form IDκ°€ λŒ€λ¬Έμž E둜 λ˜μ–΄ μžˆμ–΄ μ†Œλ¬Έμž e둜 μˆ˜μ •ν–ˆλ‹€.

⛔️ env μ—λŸ¬
envλ₯Ό 톡해 APIλ₯Ό λΆˆλŸ¬μ˜€λŠ” κ³Όμ •μ—μ„œ API URL이 undefined둜 λΆˆλŸ¬μ™€μ‘Œλ‹€.
βœ… ν•΄κ²°
env파일의 μœ„μΉ˜κ°€ μ˜¬λ°”λ₯΄μ§€ λͺ»ν•΄ 생긴 μ΄μŠˆμ˜€λ‹€. env 파일 μœ„μΉ˜ μˆ˜μ •

⛔️ 둜그인 μ—λŸ¬
λ‚˜λ₯Ό μ œμ™Έν•œ λ‚˜λ¨Έμ§€ ν”„λ‘ νŠΈμ—”λ“œ 뢄듀이 둜그인 μ‹œ 토큰을 λ°›μ•„μ˜€μ§€ λͺ»ν•˜λŠ” λ¬Έμ œκ°€ 생겼닀.
βœ… ν•΄κ²°
크둬 μΏ ν‚€ μ‚­μ œ

⛔️ navigate μž‘λ™ μ—λŸ¬
둜그인 λ²„νŠΌ 클릭 ν›„ 둜그인이 μ„±κ³΅μ μœΌλ‘œ μ™„λ£Œ λ˜μ—ˆλ‹€λ©΄ navigateκ°€ μž‘λ™ν•˜μ—¬ λ©”μΈνŽ˜μ΄μ§€λ‘œ 이동이 λ°”λ‘œ λ˜μ–΄μ•Όν•˜μ§€λ§Œ, 둜그인 μƒνƒœκ°’μ΄ μ—…λ°μ΄νŠΈ 되고 ν•œλ²ˆ 더 λˆŒλŸ¬μ•Ό μž‘λ™ν•˜λŠ” 버그λ₯Ό λ°œκ²¬ν–ˆλ‹€.
βœ… ν•΄κ²°
await λ₯Ό μ‚¬μš©ν•˜μ—¬ 둜그인 데이터λ₯Ό λΆˆλŸ¬μ˜€λŠ” 과정이 μ™„λ£Œ 된 ν›„, ν•¨μˆ˜κ°€ μ‹€ν–‰λ˜λ„λ‘ μˆ˜μ •ν–ˆλ‹€.

πŸ“ 2μ£Όμ°¨μ—μ„œ λ°°μš΄κ²ƒ

2μ£Όμ°¨μ—λŠ” λ¦¬λ•μŠ€μ˜ 기본적인 κΈ°λŠ₯κ³Ό μ•‘μ…˜, νˆ΄ν‚· λ“± μ‚¬μš©λ²•μ„ μ΅ν˜”λ‹€.
λ˜ν•œ, νŽ˜μ΄μ§€κ°€ λ Œλ”λ§ 될 λ•Œ μ„œλ²„μ— λ„ˆλ¬΄ λ§Žμ€ μš”μ²­μ„ 보내면 뢀담이 λœλ‹€λŠ” 것을 깨달아 λ Œλ”λ§ μ΅œμ ν™”μ— λŒ€ν•΄ κ³΅λΆ€ν•˜κ³ , λ‹€μŒ 주에 μ μš©ν•  μ˜ˆμ •μ΄λ‹€.
곡톡 ν•¨μˆ˜λ₯Ό λ”°λ‘œ λΆ„λ¦¬ν•˜μ—¬ κ΄€λ¦¬ν•˜λŠ” 것이 νš¨κ³Όμ μ΄λΌλŠ” ν”Όλ“œλ°±μ„ λ°›μ•˜κ³  이λ₯Ό μ μš©ν•  μ˜ˆμ •μ΄λ‹€.
그리고 토큰이 만료되면 μžλ™μœΌλ‘œ λ‘œκ·ΈμΈμ„ μ—°μž₯ν•˜λŠ” κΈ°λŠ₯을 μΆ”κ°€ν•  κ³„νšμ΄λ‹€.

πŸ‘¨β€πŸ‘©β€πŸ‘§β€πŸ‘¦ νŒ€μ›Œν¬

2μ£Όμ°¨μ—λŠ” λ°±μ—”λ“œμ™€ ν”„λ‘ νŠΈμ—”λ“œμ˜ νƒ€ν˜‘μ μ„ μ°ΎλŠ” κ³Όμ •μ—μ„œ νŒ€ 사이가 더 μ’‹μ•„μ‘Œλ‹€.
우리 νŒ€μ›λ“€μ€ λ¬Έμ œκ°€ μžˆμ„ μ‹œ, ν™”λ©΄ 곡유λ₯Ό ν•˜μ—¬ ν”„λ‘ νŠΈ, λ°± 상관없이 해결을 돕기 μœ„ν•΄ 열띀 검색을 ν•˜λ©°
ν•΄κ²° λ°©μ•ˆμ— λŒ€ν•΄ ν•¨κ»˜ ν† λ‘ ν•˜λ©° ν•΄κ²°ν•˜κ³  μžˆλ‹€.πŸ‘πŸ»
이λ₯Ό 톡해 μ„œλ‘œλ₯Ό μ΄ν•΄ν•˜κ³ , νƒ€ν˜‘μ μ„ μ°ΎλŠ” κ³Όμ •μ—μ„œ νŒ€μ›Œν¬κ°€ λ”μš± λˆλ…ν•΄μ§„ 것 κ°™λ‹€.

πŸ“ˆ λ°˜μ„± 및 개인적 μ„±μž₯

λ°±μ—”λ“œμ™€ API 연동이 처음이라 휴먼 μ—λŸ¬λ₯Ό 많이 λ°œμƒμ‹œμΌ°λ‹€.
ν•˜μ§€λ§Œ 이런 λ¬Έμ œλ“€μ„ ν•΄κ²°ν•˜λŠ” κ³Όμ •μ—μ„œ νŠΈλŸ¬λΈ” μŠˆνŒ… 기둝을 λ°”νƒ•μœΌλ‘œ μ‹€μˆ˜λ₯Ό 쀄일 수 μžˆμ—ˆλ‹€.
μ•žμœΌλ‘œ 기술적 뢀채λ₯Ό 쀄이기 μœ„ν•΄ λ”μš± λ…Έλ ₯ν•΄μ•Όκ² λ‹€.

⛳️ 3μ£Όμ°¨ λͺ©ν‘œ

3μ£Όμ°¨μ—λŠ” μΉ΄μΉ΄μ˜€μ™€ ꡬ글 μ†Œμ…œ 둜그인 연동을 μ™„λ£Œν•˜κ³ , λ°±μ—”λ“œμ—μ„œ μ•Œλ¦Ό API 개발이 μ™„λ£Œλ˜λ©΄ 이λ₯Ό μ—°λ™ν•˜λŠ” 것을 λͺ©ν‘œλ‘œ ν•˜κ³  μžˆλ‹€.
배포 ν›„ Performance insights둜 μ„±λŠ₯ κ°œμ„ μ„ ν•  것이닀.
그리고 μ‹œκ°„μ΄ λ‚œλ‹€λ©΄ μŠ€ν† λ¦¬λΆλ„ μž‘μ„±ν•  μ˜ˆμ •μ΄λ‹€.

profile
#UXUI #코린이

0개의 λŒ“κΈ€