ππ€ Check these sites and try them out
Video Converter Site
Catbow Doc
CatBow ScrollView Tutorial
NPM Library Site
YARN Library Site
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 κΈ°λ₯μ λ£μ΄ λΆλ¦¬νλλ° μ΄λ₯Ό λ κ°μ μν μ νλ νλμ λͺ¨λ¬κ³Ό μ°κ²°νλ €νλ λ‘μ§μ΄ λ무 볡μ‘ν΄μ Έ μ°¨λΌλ¦¬ λ κ°μ λͺ¨λ¬μ λ§λ€μ΄ μ¬μ©νλκ² λ λ«μ§ μμλνλ ννκ° λ€μλ€. νμ λͺ¨λ¬μ μ¬μ¬μ©μ± λ κ°λ₯ν μ»΄ν¬λνΈλ‘ λ€μ μ½λλ₯Ό μμ±ν΄λ³΄λ €νλ€.
π κ΄λ ¨ ν¬μ€ν
π μ 체 λ‘μ§ λ³Ό μ μλ κΉ
https://github.com/catbow/catbow-photo-converter
'Catbow Project' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
2023.03.10(κΈ) κΈ°λ‘μ© (0) | 2023.03.10 |
---|---|
CatBow Project νκ³ λ‘ (0) | 2022.12.16 |
λκΈ