λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
Catbow Project

Catbow 이미지 λ³€ν™˜ μ‚¬μ΄νŠΈ κ΅¬ν˜„

by 은지:) 2022. 12. 16.
728x90
λ°˜μ‘ν˜•

 

 

 

 

 

 

 

 

 

Catbow-photo-converter

πŸ‘‰ 배포 링크 Video Converter Site

 

 

🌈😺Catbow

 

 

총 4λͺ…μœΌλ‘œ κ΅¬μ„±λœ 🌈😺Catbow ( FE : 3, BE : 1 ) Project

 

 

CatBow LibraryλŠ” ν”„λ ˆμž„ λ‹¨μœ„λ‘œ μΆ”μΆœν•œ 이미지 νŒŒμΌλ“€μ„ μ΄μš©ν•΄ ν™”λ©΄ μŠ€ν¬λ‘€μ‹œ λ™μ˜μƒ μž¬μƒ 효과λ₯Ό μ£ΌλŠ” μΈν„°λž™ν‹°λΈŒ UI λΌμ΄λΈŒλŸ¬λ¦¬μž…λ‹ˆλ‹€.

 

이에 ν•„μš”ν•œ λ™μ˜μƒμ„ ν”„λ ˆμž„ λ‹¨μœ„λ‘œ μž˜λΌμ£ΌλŠ” μ‚¬μ΄νŠΈλ₯Ό κ΅¬ν˜„ν•˜λŠ” μ˜μƒνŒ€( FE : 1,  BE : 1)μ—μ„œ

ν”„λ‘ νŠΈ μ—”λ“œ κ°œλ°œμ„ λ§‘μ•„μ„œ μž‘μ—…ν–ˆκ³  이λ₯Ό κΈ°λ‘ν•©λ‹ˆλ‹€.

 

 


 

 

 

κ΅¬ν˜„ν•œ κΈ°λŠ₯

 

 

βœ… 이미지 μ—…λ‘œλ“œ μ‹œ 미리보기, 미리보기 μ‚­μ œ κΈ°λŠ₯

βœ… λ³€ν™˜ν•˜κΈ° μ „, 미리보기 μ‚­μ œ μ „ λ‹€μ‹œ λ˜λ¬»λŠ” λͺ¨λ‹¬ κ΅¬ν˜„

βœ…  S3둜 μ—…λ‘œλ“œ

βœ…  파일 μžλ™μ €μž₯

βœ… μ—λŸ¬ νŽ˜μ΄μ§€ κ΅¬ν˜„

 

 

 


 

 

 

πŸ—‚ 폴더 ꡬ쑰

 

└─ src
   β”œβ”€ Api
   β”‚  └─ axiosApi.js
   β”œβ”€ App.js
   β”œβ”€ components
   β”‚  β”œβ”€ common
   β”‚  β”‚  β”œβ”€ Header.jsx
   β”‚  β”‚  β”œβ”€ adContainer
   β”‚  β”‚  β”‚  β”œβ”€ SiderLeft.jsx
   β”‚  β”‚  β”‚  └─ SiderRight.jsx
   β”‚  β”‚  β”œβ”€ modal
   β”‚  β”‚  β”‚  β”œβ”€ Modal.jsx
   β”‚  β”‚  β”‚  └─ useModal.js
   β”‚  β”‚  └─ page
   β”‚  β”‚     β”œβ”€ Error.jsx
   β”‚  β”‚     └─ Loading.jsx
   β”‚  β”œβ”€ contexts
   β”‚  β”‚  └─ ContextWrapper.js
   β”‚  └─ main
   β”‚     β”œβ”€ MainContainer.jsx
   β”‚     β”œβ”€ fileContainer
   β”‚     β”‚  β”œβ”€ FileContainer.jsx
   β”‚     β”‚  └─ button
   β”‚     β”‚     β”œβ”€ DeleteButton.jsx
   β”‚     β”‚     └─ UploadButton.jsx
   β”‚     └─ hooks
   β”‚        β”œβ”€ useLoadFile.js
   β”‚        └─ useS3Download.jsx
   β”œβ”€ index.js
   β”œβ”€ pages
   β”‚  └─ Home.jsx
   └─ styles
      β”œβ”€ GlobalStyle.js
      β”œβ”€ theme.js
      └─ variable.js

 

 

 

 

 

Pages 폴더엔 ν•΄λ‹Ή μž‘μ—…λ¬Όμ— νŽ˜μ΄μ§€κ°€ μ–΄λ–€ 게 μžˆλŠ”μ§€ 보여주고 μ‹Άμ–΄μ„œ μ»΄ν¬λ„ŒνŠΈλ§Œ 넣어진 Home.jsx λ₯Ό λ„£μ–΄λ†“μ•˜λ‹€. ν˜„μž¬λŠ” ν•œ νŽ˜μ΄μ§€λΏμ΄μ§€λ§Œ μ΄ν›„μ˜ ν™•μž₯성을 μƒκ°ν–ˆλ‹€.

 

λ‚˜λ¨Έμ§€ μ»΄ν¬λ„ŒνŠΈλŠ” src/components 폴더에 μ •λ¦¬ν–ˆλŠ”λ° 곡용으둜 μ“°μ΄λŠ” μ»΄ν¬λ„ŒνŠΈλ“€μ€ common 폴더에, 메인 νŽ˜μ΄μ§€ μ»΄ν¬λ„ŒνŠΈλŠ” main, contextAPI λ‘œμ§μ€ contexts에 λ„£μ—ˆλ‹€. main 폴더 μ•ˆμ—λŠ” 전체 ꡬ쑰λ₯Ό λ³΄μ—¬μ£ΌλŠ” MainContainer.jsx 와 본격적으둜 둜직이 μ—°κ²°λ˜μ–΄μžˆλŠ” fileContanier, hook 으둜 λ‚˜λˆ„μ—ˆκ³  κ·Έ μ•ˆμ— 각각 성격에 λ§žλŠ” μ»΄ν¬λ„ŒνŠΈλ“€μ„ λ„£μ—ˆλ‹€.

 

λ²„νŠΌμ„ λ”°λ‘œ μ»΄ν¬λ„ŒνŠΈλ‘œ λΊ€ 건 μ‚­μ œ κΈ°λŠ₯ λ²„νŠΌμ€ 미리보기 사진이 μ˜¬λΌκ°€ μžˆμ„ λ•Œλ§Œ λ‚˜νƒ€λ‚˜μ•Ό ν•˜κΈ° λ•Œλ¬Έμ— ν•΄λ‹Ή 둜직 λ•Œλ¬Έμ— 뺐고 μ—…λ‘œλ“œ λ²„νŠΌμ€ 사진을 μ˜¬λ¦¬λŠ” κΈ°λŠ₯ / μ—…λ‘œλ“œ κΈ°λŠ₯을 ν•¨κ»˜ ν•΄μ•Όν–ˆκΈ° λ•Œλ¬Έμ— ν•„μˆ˜λ‘œ μ»΄ν¬λ„ŒνŠΈλ₯Ό λ‚˜λˆ„μ—ˆλ‹€. ν•΄λ‹Ή μ»΄ν¬λ„ŒνŠΈ μ•ˆμ—λŠ” λ²„νŠΌμ„ λ‚˜λˆ„λŠ” 둜직만 λ„£μ–΄ 이 λ²„νŠΌμ΄ μ–΄λ–€ κΈ°λŠ₯을 ν•˜λŠ”μ§€λ§Œ 보여주렀고 ν–ˆκ³  μ„ΈλΆ€ λ‘œμ§μ€ hook으둜 λΆ„λ¦¬ν–ˆλ‹€.

 

κ°€μž₯ μ‹ κ²½ 많이 μ“΄ μ»΄ν¬λ„ŒνŠΈλŠ” useS3DownLoad.jsx 인데 S3 κ΄€λ ¨ 섀정도 ν•„μš”ν–ˆκ³  S3 λ²„ν‚·μ˜ 폴더 μ•ˆμ˜ λ™μ˜μƒ 이름이 κ²ΉμΉ˜μ§€ μ•Šμ•„μ•Όν–ˆκΈ° λ•Œλ¬Έμ— uuid 라이브러리λ₯Ό μ‚¬μš©ν–ˆλ‹€. S3둜 μ˜μƒμ„ μ˜¬λ¦¬λŠ” κΈ°λŠ₯은 'aws-sdk' 라이브러리λ₯Ό μ‚¬μš©ν–ˆκ³  S3 계정은 λ…ΈμΆœλ˜μ§€ μ•Šμ•„μ•Όν•˜κΈ°μ— env νŒŒμΌμ„ λ§Œλ“€μ–΄ 깃에 μ˜¬λΌκ°€μ§€ μ•Šκ²Œ κ΅¬ν˜„ν–ˆλ‹€.

 

 

μžλ™μ €μž₯ κΈ°λŠ₯은 'file-saver' 라이브러리λ₯Ό μ‚¬μš©ν–ˆλŠ”λ°

 

  .then(blob => {
    saveAs(blob, 'catbow.zip');

 

μ„œλ²„μ—μ„œ 받은 νŒŒμΌμ„ blob ν˜•νƒœλ‘œ λ°”κΎΈμ–΄ saveAs λ©”μ„œλ“œλ₯Ό μ‚¬μš©ν•΄ 이름을 지정해쀀 ν›„ λ‘œμ»¬μ— λ°”λ‘œ μ €μž₯ν•  수 μžˆκ²Œλ” κ΅¬ν˜„ν–ˆλ‹€.

 

 

 

 

 

 

 


 

 

 

λŠλ‚€μ 

 

 

 

이번 μž‘μ—…μ€ μ•žμœΌλ‘œμ˜ ν™•μž₯성을 κ³ λ €ν•΄μ„œ 폴더ꡬ쑰λ₯Ό 짜고 μ½”λ“œλ₯Ό μž‘μ„±ν–ˆλ‹€. UI 와 κΈ°λŠ₯의 λ‘œμ§μ„ μ΅œλŒ€ν•œ λΆ„λ¦¬ν•˜κ³  ν•œ μ»΄ν¬λ„ŒνŠΈμ— μ½”λ“œ 150쀄 이상 λ„˜μ§€ μ•Šκ²Œλ”, 남이 봀을 λ•Œ λ‹¨λ²ˆμ— μ•Œμ•„λ³Ό 수 μžˆλŠ” μ½”λ“œλ₯Ό μž‘μ„±ν•˜λ €κ³  λ…Έλ ₯ν–ˆλŠ”λ° κΈ°λŒ€μΉ˜μ— μ™„λ²½ν•˜μ§€ μ•Šμ§€λ§Œ μ „ ν”„λ‘œμ νŠΈμ— λΉ„ν•΄ 많이 λ°œμ „ν•˜κ³  μ„±μž₯ν–ˆλ‹€ λŠλ‚€λ‹€.

 

react-components의 μž₯점을 μ‚΄λ¦¬κ³ μž μŠ€νƒ€μΌμ„ μž¬μ‚¬μš©ν•˜κ³  themeμ΄λ‚˜ global νŒŒμΌμ„ μ΅œλŒ€ν•œ ν™œμš©ν•˜κ³ μž ν–ˆκ³  μ΄λŠ” μ‹ κ²½ μ“΄ 만큼 잘 κ΅¬ν˜„λœ κ±° κ°™μ•„ κΈ°μ˜λ‹€. contextAPI 도 μ΅œλŒ€ν•œ 남이 잘 μ•Œμ•„λ³Ό 수 μžˆλ„λ‘ λ‚˜λˆ„κ³ μž μ‹ κ²½μΌλŠ”λ° κ°€λ…μ„±λ©΄μœΌλ‘  예쁘게 κ΅¬ν˜„ν–ˆλ‹€ μƒκ°ν•œλ‹€.

 

κΈ°λŠ₯면에선 λ™μ˜μƒμ„ S3둜 μ—°κ²°ν•˜λŠ” λ‘œμ§μ—μ„œ κ°€μž₯ λ§Žμ€ μ‹œκ°„μ„ μ†Œμš”ν–ˆλŠ”λ° 생각보닀 λŒμ•„κ°€μ§€ μ•ŠλŠ” μ˜ˆμ œλ“€μ΄ λ§Žμ•„ μ μž–μ΄ λ‹Ήν™©ν–ˆμ—ˆλ‹€. κΈ°λŠ₯ κ΄€λ ¨ λΌμ΄λΈŒλŸ¬λ¦¬λ“€μ€ λ§Žμ•˜λŠ”λ° μ΄μƒν•˜κ²Œ λŒμ•„κ°€μ§€ μ•Šμ•˜λ‹€. κ²°κ΅­ 돌고 λŒμ•„ λ‹€μ‹œ κ³΅μ‹λ¬Έμ„œμ˜ putObject λ©”μ„œλ“œλ₯Ό μ‚¬μš©ν•΄ 성곡을 ν–ˆκ³ , κ³΅μ‹λ¬Έμ„œμ˜ μ€‘μš”μ„±μ„ λ‹€μ‹œλ” 느꼈던 κ²½ν—˜μ΄μ—ˆλ‹€.

 

μ•„μ‰¬μš΄ 점은 λ²„νŠΌ, λͺ¨λ‹¬ κ΄€λ ¨ μž¬μ‚¬μš©κ³Ό λ™μ˜μƒ μœ νš¨μ„± λ‘œμ§μ΄λ‹€. μ»΄ν¬λ„ŒνŠΈλ₯Ό λŠ˜λ¦¬μ§€ μ•Šκ² λ‹¨ μƒκ°μœΌλ‘œ ν•˜λ‚˜μ˜ λ²„νŠΌμ— toogle κΈ°λŠ₯을 λ„£μ–΄ λΆ„λ¦¬ν–ˆλŠ”λ° 이λ₯Ό 두 개의 역할을 ν•˜λŠ” ν•˜λ‚˜μ˜ λͺ¨λ‹¬κ³Ό μ—°κ²°ν•˜λ €ν•˜λ‹ˆ 둜직이 λ„ˆλ¬΄ λ³΅μž‘ν•΄μ Έ 차라리 두 개의 λͺ¨λ‹¬μ„ λ§Œλ“€μ–΄ μ‚¬μš©ν•˜λŠ”κ²Œ 더 낫지 μ•Šμ•˜λ‚˜ν•˜λŠ” ν›„νšŒκ°€ λ“€μ—ˆλ‹€. 후에 λͺ¨λ‹¬μ€ μž¬μ‚¬μš©μ„± 더 κ°€λŠ₯ν•œ μ»΄ν¬λ„ŒνŠΈλ‘œ λ‹€μ‹œ μ½”λ“œλ₯Ό μž‘μ„±ν•΄λ³΄λ €ν•œλ‹€.

 

 

 

 

πŸ‘‡ κ΄€λ ¨ ν¬μŠ€νŒ…

 

 

CatBow Project 회고둝

CatBow Project λž€? πŸ‘‡ CatBow-Library κ³΅μ‹λ¬Έμ„œ Catbow scrollview | Catbow Tutorial Scrollview is `easy to use` and an `useful app` that helps moving images by scrolling the webpage. catbow.github.io πŸ‘‡ CatBow Git catbow catbow has 4 repositories av

0119eunji.tistory.com

 

 

πŸ‘‡ 전체 둜직 λ³Ό 수 μžˆλŠ” κΉƒ

 

https://github.com/catbow/catbow-photo-converter

 

GitHub - catbow/catbow-photo-converter

Contribute to catbow/catbow-photo-converter development by creating an account on GitHub.

github.com

 

728x90
λ°˜μ‘ν˜•

'Catbow Project' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

2023.03.10(금) 기둝용  (0) 2023.03.10
CatBow Project 회고둝  (0) 2022.12.16

λŒ“κΈ€