Skip to content

SpartaPhotoGet/SparataPhotoGet

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

49 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🎯 λ―Έλ‹ˆν”„λ‘œμ νŠΈ_(HangHaeBox) FrontEnd 🎯 πŸ—Ί

πŸš€ 1. ν”„λ‘œμ νŠΈ μ„€λͺ…

λ‚˜λ§Œμ΄ λ³Ό 수 μžˆλŠ”, λ‚΄κ°€ λ‹€λ…€μ˜¨ 여행기둝 및 κ²½ν—˜, 좔얡듀을 μ‚¬μ§„μœΌλ‘œ λ‚¨κ²¨λ³΄μžλΌλŠ” μƒκ°μ—μ„œ μ‹œμž‘λœ ν”„λ‘œμ νŠΈμž…λ‹ˆλ‹€.


πŸš€ 2. νŽ˜μ΄μ§€ ꡬ성 및 μ„€λͺ…

✈ 2-1) 둜그인 νŽ˜μ΄μ§€

  • λ‚˜λ§Œμ˜ 여행기둝 및 좔얡을 사진을 λ³΄κ΄€ν•˜λŠ” 개인 μž₯μ†Œμ΄κΈ° λ•Œλ¬Έμ— λ‘œκ·ΈμΈμ„ ν•΄μ•Ό μ ‘κ·Ό ν•  수 μžˆμŠ΅λ‹ˆλ‹€.


✈ 2-2) 둜그인 νŽ˜μ΄μ§€

  • μ‚¬μ΄νŠΈ 접근을 μœ„ν•˜μ—¬ νšŒμ›κ°€μž…μ΄ ν•„μš”ν•©λ‹ˆλ‹€. 이에 λ”°λ₯Έ νšŒμ›κ°€μž… νŽ˜μ΄μ§€ μž…λ‹ˆλ‹€.


✈ 2-3) λ©”μΈνŽ˜μ΄μ§€

  • λ‘œκ·ΈμΈμ„ ν•˜κ²Œλ˜λ©΄ λ‚˜λ§Œμ˜ κ³΅κ°„μœΌλ‘œ λ“€μ–΄μ˜€κ²Œ λ©λ‹ˆλ‹€. μ΄κ³³μ—μ„œ 여행기둝, κ²½ν—˜μ— κ΄€ν•œ 폴더λ₯Ό 생성할 수 μžˆμŠ΅λ‹ˆλ‹€.

  • 폴더λ₯Ό 생성할 λ•Œμ—λŠ” κ΄€λ ¨ ν•΄μ‹œνƒœκ·Έλ₯Ό μΆ”κ°€ν•  수 μžˆλŠ”λ°, κ·Έ νƒœκ·Έλ“€μ΄ λͺ¨μ—¬μ„œ μš°μΈ‘μ— μ‚¬μš©μžλ₯Ό ν†΅ν‹€μ–΄μ„œ 많이 쓰인 νƒœκ·Έ Top5와 λ‚΄κ°€ 많이 μ“΄ νƒœκ·Έ Top5λ₯Ό 확인 ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

  • λ‚΄κ°€ 많이 μ“΄ νƒœκ·ΈλŠ” μ–Όλ§ˆλ‚˜ νƒœκ·Έλ₯Ό μ‚¬μš©ν–ˆλŠ”μ§€ μˆ«μžλ‘œλ„ λ‚˜νƒ€λ‚˜λŠ” 것을 확인할 수 μžˆμŠ΅λ‹ˆλ‹€.


✈ 2-4) 폴더 μΆ”κ°€νŽ˜μ΄μ§€

  • 폴더 μΆ”κ°€ν•  λ•Œ μ—¬ν–‰ ν˜Ήμ€ κ²½ν—˜ λ‚ μ§œ, 제λͺ©, νƒœκ·Έλ₯Ό μž…λ ₯ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

  • λ‚ μ§œλ₯Ό 달λ ₯ν˜•νƒœλ‘œ 선택할 수 있게 κ΅¬ν˜„ν•˜μ˜€κ³ , 제λͺ©μ€ μž…λ ₯만 ν•˜λ©΄ λ©λ‹ˆλ‹€.

  • νƒœκ·Έμ˜ 경우 "#" 을 뢙이지 μ•Šκ³  뢙이고 싢은 νƒœκ·Έλ₯Ό μž…λ ₯ν•˜κ³  Enterν‚€λ₯Ό λˆ„λ₯΄λ©΄ μžλ™μœΌλ‘œ "#" 이 λΆ™μ–΄ νƒœκ·Έ μž…λ ₯μΉΈ 밑에 ν˜„μž¬κΉŒμ§€ μž…λ ₯ν•œ νƒœκ·Έ 내역이 λ³΄μž…λ‹ˆλ‹€.


✈ 2-5) 폴더 μΆ”κ°€ν›„ λ©”μΈνŽ˜μ΄μ§€

  • 폴더 μΆ”κ°€ ν›„ λ©”μΈνŽ˜μ΄μ§€λ‘œ λŒμ•„μ™”μŠ΅λ‹ˆλ‹€. λ©”μΈνŽ˜μ΄μ§€μ—λŠ” μ „μ—λŠ” μ—†λ˜ μΆ”κ°€ν•œ 폴더가 μƒμ„±λœ 것을 확인 ν•  수 μžˆμŠ΅λ‹ˆλ‹€.


✈ 2-6) μƒμ„±ν•œ 폴더 νŽ˜μ΄μ§€

  • μƒμ„±ν•œ ν΄λ”νŽ˜μ΄μ§€μ— λ“€μ–΄μ˜€κ²Œ 되면 폴더 νŽ˜μ΄μ§€κ°€ λ³΄μž…λ‹ˆλ‹€. μ΄κ³³μ—μ„œλŠ” 사진좔가 및 μ‚­μ œ, ν΄λ”μ‚­μ œ, νƒœκ·Έμˆ˜μ •μ˜ κΈ°λŠ₯을 μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

  • 사진을 μΆ”κ°€ν•˜κ³ μž ν•˜λ©΄ λ‹€μŒκ³Ό 같은 사진좔가창이 뜨게 λ©λ‹ˆλ‹€. νŒŒμΌμ„ νƒμ„ 눌러 μ›ν•˜λŠ” μ‚¬μ§„νŒŒμΌμ„ μΆ”κ°€ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

  • 사진을 μΆ”κ°€ν•˜κ²Œ 되면 λ‹€μŒκ³Ό 같이 μΆ”κ°€ν•œ 사진이 보이고, ν™•μΈλ²„νŠΌμ„ λˆ„λ₯΄λ©΄ 사진이 μΆ”κ°€λ©λ‹ˆλ‹€.

  • λ‹€μŒκ³Ό 같이 사진이 μΆ”κ°€λœ 것을 확인할 수 μžˆμŠ΅λ‹ˆλ‹€. μ²΄ν¬λ°•μŠ€κ°€ μžˆλŠ” μ΄μœ λŠ” 사진 μ‚­μ œν•˜κΈ° κΈ°λŠ₯을 μ‚¬μš©ν•  λ•Œ, ν•΄λ‹Ήν•˜λŠ” μ‚¬μ§„μ˜ μ²΄ν¬λ°•μŠ€λ₯Ό 체크 ν•œ ν›„ μ‚­μ œν•˜κΈ°λ₯Ό λˆ„λ₯΄λ©΄ μ‚­μ œκ°€ λ˜κ²Œλ” ν•˜κΈ° μœ„ν•¨μž…λ‹ˆλ‹€.

  • μƒμ„±ν•œ 폴더 νŽ˜μ΄μ§€ ν•˜λ‹¨μ˜ νƒœκ·Έμˆ˜μ • λ²„νŠΌμ„ λˆ„λ₯΄λ©΄ 처음 폴더 μΆ”κ°€ν•  λ•Œ μž…λ ₯ν–ˆλ˜ νƒœκ·Έλ₯Ό μˆ˜μ •ν•  μˆ˜λ„ 있고, μƒˆλ‘œ μΆ”κ°€ν•  μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€.

  • μ˜ˆμ‹œλ‘œ #ν•­ν•΄99 νƒœκ·Έλ₯Ό λ„£μ–΄μ„œ μˆ˜μ •μ™„λ£Œλ²„νŠΌμ„ λˆ„λ₯΄λ©΄ λ‹€μŒ λ‚˜μ˜€λŠ” 사진과 같이 μ™„λ£Œκ°€ λ©λ‹ˆλ‹€.


✈ 2-7) 폴더 μ‚­μ œ ν›„ λ©”μΈνŽ˜μ΄μ§€

  • μƒμ„±ν•œ ν΄λ”νŽ˜μ΄μ§€μ— 있던 ν΄λ”μ‚­μ œλ²„νŠΌμ„ λˆŒλ €μ„λ•Œ, 폴더 μ‚­μ œκ°€ μ§„ν–‰λ˜μ–΄ λ©”μΈνŽ˜μ΄μ§€λ‘œ λŒμ•„μ˜€κ³ , μΌμ „μ˜ 생성과 λ‹€λ₯΄κ²Œ μ‚­μ œκ°€ λœκ²ƒμ„ 확인할 수 μžˆμŠ΅λ‹ˆλ‹€.

πŸš€ 3. νŽ˜μ΄μ§€ μ™€μ΄μ–΄ν”„λ ˆμž„

✈ 3-1) 둜그인 νŽ˜μ΄μ§€


✈ 3-2) νšŒμ›κ°€μž… νŽ˜μ΄μ§€


✈ 3-3) λ©”μΈνŽ˜μ΄μ§€


✈ 3-4) λ©”μΈνŽ˜μ΄μ§€_ 폴더 μΆ”κ°€ν•˜κΈ°


✈ 3-5) ν΄λ”νŽ˜μ΄μ§€


✈ 3-6) ν΄λ”νŽ˜μ΄μ§€_ μ‚¬μ§„μΆ”κ°€ν•˜κΈ°


πŸš€ 4. API 섀계

πŸš€ 5. νŠΈλŸ¬λΈ” μŠˆνŒ…

✈ 5-1) 이미지 μ‚­μ œμ‹œ reducer에도 λ°˜μ˜ν•΄μ£ΌκΈ°

이미지λ₯Ό μ‚­μ œν• λ•Œ reducer에 반영이 λ˜μ§€ μ•ŠλŠ” ν˜„μƒμ΄ 발견 λμŠ΅λ‹ˆλ‹€. reducer에 배열을받아 μ²˜λ¦¬ν•΄μ£ΌλŠ” λ‘œμ§μ„ μž‘μ„±ν•΄ ν•΄κ²°ν–ˆμŠ΅λ‹ˆλ‹€.

μ½”λ“œ 보기
const targetArr = action.payload;
      for (let i = 0; i < state.photos.length; ++) {
        if (targetArr.includes(state.photos[i].id + "")) {
          state.photos.splice(i, 1);
          i--;
        }

✈ 5-2) λ‘œκ·ΈμΈμ‹œ 토큰을 받기전에 화면이 μ „ν™˜λ λ•Œ

λ‘œκ·ΈμΈμ„ 성곡할 μ‹œ μ„œλ²„μ—μ„œ 토큰을 λ°›κ³  home νŽ˜μ΄μ§€λ‘œ μ΄λ™ν•΄μ£ΌλŠ” μ½”λ“œλ₯Ό μž‘μ„±ν–ˆμŠ΅λ‹ˆλ‹€. 토큰을 λ°›μ•„μ˜€λŠ” 뢀뢄은 λΉ„λ™κΈ°λ‘œ λ™μž‘ν•˜κΈ° λ•Œλ¬Έμ— 토큰을 λ°›μ•„μ˜€κΈ°μ „μ— ν™ˆν™”λ©΄μœΌλ‘œ 이동이 λ˜λ²„λ¦¬λŠ” λ¬Έμ œκ°€ λ°œμƒ ν–ˆμŠ΅λ‹ˆλ‹€. μ΄λ•Œ dispatch의 리턴값이 promiseλž€κ±Έ ν™•μΈν•˜κ³  then을 μ΄μš©ν•΄ 비동기 λ™μž‘μ΄ λλ‚ λ•Œ 화면을 μ΄λ™ν•˜λŠ” μ½”λ“œκ°€ λ™μž‘ν•˜λ„λ‘ μˆ˜μ • ν–ˆμŠ΅λ‹ˆλ‹€.

✈ 5-3) axios 인터셉터λ₯Ό μ΄μš©ν•΄ λΆˆν•„μš”ν•œ μ½”λ“œ 쀄이기

둜그인 μ΄ν›„μ˜ νŽ˜μ΄μ§€λ“€μ˜ apiλŠ” μ „λΆ€ μ„œλ²„μ™€ ν†΅μ‹ ν• λ•Œλ§ˆλ‹€ 토큰을 μ „μ†‘ν•˜λ„λ‘ λΌμžˆμŠ΅λ‹ˆλ‹€. 기쑴의 μ½”λ“œλŠ” apiμš”μ²­λ•Œλ§ˆλ‹€ 토큰을 λ‹΄μ•„ 보내주어 λ°˜λ³΅λ˜λŠ” μ½”λ“œκ°€ 많이 λ°œμƒ λμŠ΅λ‹ˆλ‹€. λ°˜λ³΅λ˜λŠ” μ½”λ“œκ°€ λ„ˆλ¬΄ λ§Žλ‹€κ³  μƒκ°ν•˜μ—¬ axios 인터셉터λ₯Ό 이용 ν–ˆμŠ΅λ‹ˆλ‹€. μ„œλ²„μ™€ 톡신 성곡 λ°”λ‘œμ§μ „ 토큰을 λ‹΄μ•„ 보내주도둝 μ½”λ“œλ₯Ό μž‘μ„±ν•΄ λ°˜λ³΅λ˜λŠ” μ½”λ“œ μ‚¬μš©μ„ μ€„μ˜€μŠ΅λ‹ˆλ‹€.

✈ 5-4) 둜그인, νšŒμ›κ°€μž… inputμ°½ μ—λŸ¬λ©”μ„Έμ§€

둜그인과 νšŒμ›κ°€μž…μ€ 같은 λ¦¬λ“€μ„œλ₯Ό κ³΅μœ ν•©λ‹ˆλ‹€. μ—λŸ¬κ°€ λ°œμƒν•  μ‹œ μ—λŸ¬λ©”μ„Έμ§€λ₯Ό λ„μ–΄μ£ΌλŠ” λ°©μ‹μ΄μ˜€λŠ”λ° 같은 λ¦¬λ“€μ„œλ₯Ό κ³΅μœ ν•˜λ‹€λ³΄λ‹ˆ νšŒμ›κ°€μž…μ—μ„œ μ—λŸ¬κ°€ λ°œμƒν•˜κ³  κ·ΈλŒ€λ‘œ 둜그인창으둜 μ΄λ™ν•˜λ©΄ μ—λŸ¬λ©”μ„Έμ§€κ°€ κ·ΈλŒ€λ‘œ λ‚¨μ•„μžˆλŠ” 버그가 λ°œμƒν–ˆμŠ΅λ‹ˆλ‹€. κ³΅μœ ν•˜κ³ μžˆλŠ” auth reducerμ—μ„œ μ—λŸ¬λ©”μ„Έμ§€λ₯Ό μ§€μ›Œμ£ΌλŠ” action을 λ§Œλ“€μ–΄ 둜그인과 νšŒμ›κ°€μž…μ΄ λ°”λ€”λ•Œλ§ˆλ‹€ κ·Έ action을 μ‹€ν–‰μ‹œμΌœ 문제λ₯Ό ν•΄κ²°ν–ˆμŠ΅λ‹ˆλ‹€.

πŸš€ νŒ€μ› μ†Œκ°œ

  • πŸ‘·β€β™‚ μœ€μƒλ―Ό πŸ‘·β€β™‚μ΄μ§„ν˜Έ

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published