redgoose file uploader
์ํฐํด ์ ๋ณด
- ๋ฅ์ง
- Tool & Service
- ๋ถ๋ฅ
- Extra
- ๋ฑ๋ก์ผ
- 2019-06-24 01:58:12
- date: 2016-08
- language: javascript, html, css
- tools: PHPStorm, Sketch 3, Balsamic Mockups
- demo: https://redgoose-dev.github.io/rg-uploader/
- GitHub: https://github.com/redgoose-dev/rg-uploader
์ด๊ฒ์ ํ์ผ์ ์๋ฒ์ ์ ๋ก๋ ํ์ง๋ง ํ์ผ ๊ด๋ฆฌ๋ ์ปจํธ๋กค, ๊ธฐ๋ฅํ์ฅ์ ํตํ์ฌ ์๋ฒ์ ์ฌ๋ผ๊ฐ๋ ์ฒจ๋ถํ์ผ๋ค์ ์ข๋ ๋์ ๋ชจ์ต์ผ๋ก ๊ด๋ฆฌํ๊ธฐ ์ํ์ฌ ๋ง๋ ์ปดํฌ๋ํธ๋ค.
๋ฏธ๋ฆฌ ์๋ฒ์ ํ์ผ๋ค์ ์
๋ก๋ํ๊ณ , ๊ทธ๊ฒ๋ค์ ์๋ํฐ์ ๋ฃ๊ฑฐ๋ ์กฐ์ํ ์ ์๊ณ , ์ญ์ ํ ์ ์๋ ๊ธฐ๋ฅ์ ๊ฐ์ง ์ปดํฌ๋ํธ๋ฅผ ์์ํ๋ฉฐ ๋ง๋ค๊ฒ ๋์๋ค.
1๊ฐ์ 10์ผ์ ๊ฑฐ์ณ ์ ์์ ์๋ฃํ์ฌ ์ด๋ ๊ฒ ํ๊ธฐ๋ฅผ ์์ฑํ๊ฒ ๋์๋ค.
Plan
๋ฌด์ธ๊ฐ๋ฅผ ๊ด๋ฆฌํ๋ ๋ฐ์๋ ํ์ผ ์ ๋ก๋ํ๋ ์ฅ์น๊ฐ ํ์ํ๋ฐ ๊ทธ๊ฒ์ ๊ด๋ฆฌํ ์ ์๋ค๋ฉด ๋์ฑ ํธ๋ฆฌํด์ง ์ ์์๊ฑฐ๋ผ๋ ์๊ฐ์ ๋ง์ด ํด์๋ค.
ํนํ ๊ฐ์ธํํ์ด์ง๋ก ์ฌ์ง์ ๋๋จํ ๋ง์ด ์
๋ก๋ํ๊ณ ๊ด๋ฆฌํ๋ค๋ฉด ๊ทธ๋งํผ ์ข์ ๋๊ตฌ๊ฐ ํ์ํ ๊ฒ์ด๋ค. ๊ทธ๋์ ์ด๋ฐ ์ปดํฌ๋ํธ๋ฅผ ๋ง๋ค์๋ค.
์๋ ๋ง๋ค์์๋ค. Goose cms์์ ํ์ผ ์
๋ก๋ํ ๋ ์
๋ก๋ ์ปดํฌ๋ํธ๋ฅผ ๋ง๋ค์ด ์ฌ์ฉํด์๋ค. ํ์ง๋ง ์ฒ์ ๋ง๋ค๋ค๋ณด๋ ๊ตฌ์กฐํ ๋์ด์์ง์๊ณ , ํ์ฅ์ด ์ฝ์ง์์ ํํ์ฌ์ ๋ญ๊ฐ ๋ค๋ฅธ ๊ธฐ๋ฅ์ ํ์ฅ์ํค๋๊ฒ ์ด๋ ค์์ ์ด ๊ธฐํ์ ์ปดํฌ๋ํธ๋ก ๊น๋ํ๊ฒ ๋ง๋ค์ด๋ณด์๋ ์๊ฐ์ ์ด์ ์์ผ ์คํ์ ์ฎ๊ธฐ๊ฒ ๋์๋ค.
์ด์ ์ ๋ง๋ค์ด๋ณธ๊ฒ ์์ด์ ๊ตฌ์์ ์ฌ์ ๋ค. ๊ทธ๋๋ก ๋ฐ๋ผ๊ฐ๋ฉด ๊ทธ๋ง์ด๊ณ ๊ฑฐ๊ธฐ์์ ์กฐ๊ธ๋ง ๋ ๊ฐ์ ํ๊ธฐ๋ง ํ๋ฉด ๋์๋ค.
์ฐ์ ์๊ฐ๋๋๊ฒ๋ค์ ๋์ ์ด๊ณ ๊ธฐ๋กํ๋ค.
๊ตฌ์์ ํ๋ฉด์ ์ค์ํ๊ฒ ์๊ฐํ์ ์ ์
๋ก๋ํ ํ์ผ๋ชฉ๋ก์ ์คํ์ผ์ ์ ์ฐํ๊ฒ ๋ฐ๊ฟ ์ ์๋๊ฒ๊ณผ, ์ํ๋ ๊ธฐ๋ฅ์ ์ฝ๊ฒ ๋ํ ์ ์๋ ๊ฒ์ด๋ค.
๊ทธ์ ๋๋ง์ผ๋ก๋ ๋ค๋ฅธ ์
๋ก๋ ์ปดํฌ๋ํธ๋ณด๋ค ์ถฉ๋ถํ ์ข์์ง ์ ์๋ค๋ ๋ฏฟ์์ด ์์๋ค.
๋ ์์ ์ด๋ ๋ค๋ฅธ์ฌ๋๋ค์ด ์ด ์ปดํฌ๋ํธ๋ฅผ ํตํ์ฌ ์ด๋์ ๋๋ก ๊ธฐ๋ฅ์ ํ์ฅ์ ํ ์ง๋ ์ ์ ์์ง๋ง ํ์ฅ์ ํ๋๋ฐ ๊ฑธ๋ฆผ๋์ด ๋์ง ์๊ธฐ๋ฅผ ๋ฐ๋ฌ๋ค.
์ ๋ฆฌ๊ฐ ์๋ ์ํ์์ ๋ง ์ ์๊ฑฐ๋ผ์ ์ ๋ฆฌ๊ฐ ํ์ํด์ ๋ชฉ์ ์ผ๋ก ๋ด์ฉ์ ์ ๋ฆฌํ๋ค.
์ด์ ๋ฐ์ฌ๋ฏน ๋ชฉ์ ์ผ๋ก ์์ด์ด ํ๋ ์์ ๊ทธ๋ฆฌ๋๊ฒ ๋ ์ต์ํด์ ธ ๋ฒ๋ฆฐ๊ฑฐ ๊ฐ๋ค.
์ด๋ ๊ฒ ํ์ํ๊ฒ๋ค์ ์ ๋ฆฌํ๋ค. ํด์ผํ ์ผ๋ค์ Trello ์๋น์ค๋ฅผ ์ด์ฉํ๊ณ , ํ์ํ ์๋ฃ์ ๊ฐ๋ฐํด์ผํ๋ ์์๋ค์ github ์ด์์ ๊ธฐ๋กํด ๋์๋ค.
๊ธฐ์ ์ ์ธ ๋ฆฌ์์นญ๊ณผ ์ด๋ค ๋ฒค๋๋ฅผ ์ฌ์ฉํ ์ง์ ๋ํ ๊ณ ๋ฏผ๋ ํ๊ฒ ๋์๋๋ฐ ์ฒ์์๋ react.js๋ฅผ ์ฌ์ฉํ๋๊ฒ๋ ์๊ฐํด๋ดค์ง๋ง ๋ณด๋ค๋ง์ ์ฌ๋๋ค์ด ์ฌ์ฉํ๋๊ฒ์ ์ํ๊ธฐ ๋๋ฌธ์ jQuery๋ง ์ฌ์ฉํ๊ธฐ๋ก ๋ง์๋จน์๋ค. ๊ทธ๋ฆฌ๊ณ ์ํ๊ด๋ฆฌ๋ฅผ ์ํ์ฌ redux๋ฅผ ๋์
ํด๋ณด๋ ค๊ณ ์๊ฐํด ๋ณด์๋ค.
์ด๋ ๊ฒ ๋จธ๋ฆฟ์์ ๋ค์ด์๋ ๊ฒ๋ค์ ์ ๋ฆฌํ๊ณ ์ค๋นํ๊ณ ๋์ ๋ค์ ๋จ๊ณ๋ก ๋์ด๊ฐ๋ค.
Design
Sketch 3๋ก ์ ๋ถ ๋ค ๋ง๋ค์ด๋ณธ ์ฒซ ๊ฒฝํ์ด ๋์๋ค. ์ด๊ฒ์ ์ฌ์ฉํ๋ฉด์ UI ์ ์์ ํ๋๋ฐ ๋๋จํ ์ ์ ํ ํด์ด๋ผ๋๊ฑธ ์ ์ ํ์ ํ๊ฒ ๋๋ค.
๋ธ๋๊ณผ ๊ทธ๋ ์ด ์ปฌ๋ฌ๋ฅผ ๊ธฐ๋ณธ์ผ๋ก ์ฌ์ฉํ๋ฉด์ ํค ์ปฌ๋ฌ๋ ๋ฐ์ ํ๋์์ ์ฌ์ฉํ๊ณ , ํ๊ฐ ์ค๋ฅ๋ฌ์๋ ๋นจ๊ฐ์์ ์ฌ์ฉํ๊ฒ ๋์๋ค.
์ต๋ํ ๊น๋ํ๊ณ ๋ฌด๋ํ ํํ๋ฅผ ์ฌ์ฉํ๊ธฐ๋ฅผ ์ํ๋ค.
์ปดํฌ๋ํธ์ ๋ค์ด๊ฐ๋ ์์ด์ฝ์ Material design icons์ ์ฌ์ฉํ๋ค. ๋๋ฟ๋ง ์๋๋ผ ๋ค๋ฅธ ์ฌ๋๋ค์ด ๋ค์ํ ์์ด์ฝ์ ์ฌ์ฉํ ์ ์๋๋ก ํ๊ธฐ ์ํ์ฌ ์์ด์ฝ ํฐํธ๋ฅผ ์ฌ์ฉํ๊ฒ ๋๊ฒ์ด๋ค.
ํ์ฅ์ฑ์ ์ผ๋ํ๋ค๋ฉด ์์ด์ฝ ํฐํธ๋ ์ ์ ํ ๋๊ตฌ๊ฐ์ ๋ณด์ธ๋ค. ๊ทธ๋ฆฌ๊ณ Material design icons์ ์๋นํ ๋ชจ์์ด ๊ด์ฐฎ์์ ๋ง์์ ๋ค์๋ค.
ํ์ ์คํ์ผ์ ์ด๋ ๊ฒ 3๊ฐ์ง ์คํ์ผ๋ก ๋ง๋ค์๋ค. ๋์ผํ ์๋ฆฌ๋จผํธ์์ css๋ง์ผ๋ก ํํ๋ฅผ ๋ณ๊ฒฝ์ํค๊ธฐ ์ํ์ฌ ๋ง์ ๊ณ ๋ฏผ์ด ํ์ํ๋ค.
๋์์ธ์ ํ ๋ ์๊ฐ๋๋ ์ํฉ๋ค์ ๋ชจ๋ ๊ทธ๋ ค๋ฃ์๋ค. ๊ฐ์ ์ํฉ์ ๋ง๊ฑฐ๋ ์ํ๋ ์คํ์ผ์ ์ฝ๊ฒ ๊ณจ๋ผ์ ์ฐ๊ธฐ๋ฅผ ์ํ๋ค. ์ด ๋์์ธ์ ์ํ์ง ์๋๋ค๋ฉด ๋ถ๋ช
ํ css๋ฅผ ์
๋ง์ ๋ง๊ฒ ํธ์งํด์ ์ฌ์ฉํ ๊ฒ์ด๋ค.
ํ์ฅ๊ธฐ๋ฅ์ผ๋ก ๋ง๋ค์ด๋ณผ ์ด๋ฏธ์ง ํฌ๋กํผ์ ํ๋ฆฌ๋ทฐ๋ฅผ ๋์์ธ ํ๋ค. ๊ธฐ๋ฅ์ ๋ํ ์ค๋ช ์ ๊ฐ๋ฐ ์น์ ์์..
ํฌ๋กํผ๋ ๊ฐ์ธ์ ์ผ๋ก ์ ๋ง๋ก ์ข์ํ๋ ๊ธฐ๋ฅ์ด๋ผ์ ๊ผญ ๊ด์ฐฎ์ ๋ชจ์ต์ผ๋ก ๊ตฌํํ๊ณ ์ถ์๋ค. ๋ ์ด์ด ํ์
์ผ๋ก ๋ฌ ๋ชจ์ต์ผ๋ก ๋์์ธ์ ํ๋ค.
Cropper ๋ฒค๋๋ฅผ ์ฐพ์ ์ฌ์ฉํ ๊ณํ์ด์ด์ ๋ํ
์ผํ ๋์์ธ์ ํ์ง ์์๋ค.
ํ๋ฆฌ๋ทฐ ๊ธฐ๋ฅ์ ์์ญ์ ๋ฐฐ์นํ๊ธฐ๊ฐ ๋๋ฌด๋๋ ์ ๋งคํ๋ค. ๊ทธ๋ฆฌ๊ณ ์ฌ์ด์ฆ์ ๋ํ ๊ณ ๋ฏผ๋ ๋ง์ด ์์๊ณ , ๋์์ธํ๊ฒ ์๋ฒฝํ์ง ์์๋ค. ํ์ฌ๋ก์จ ๋์์ธํ ํํ๊ฐ ์ต์ ์ด์ด์ ์ด ํํ๋ก ์งํํ๋ค.
๋งฅ์์ ํฌํ ์ต์ UI ๋์์ธ ์์ ์ ์ฌ์ฉํ๋ฉด ๋ต๋ตํ ๋๋์ ๋ง์ด ๋ฐ์๋๋ฐ Sketch 3 UI ๋์์ธ์ ๋ํ ๊ฐ์ฆ์ ๋ง์ด ํด์ํด์ฃผ์๊ณ , ๋์์ธํ ๊ฒฐ๊ณผ๋ฌผ์ด ๋๋จํ ๊น๋ํ๊ณ ๋ฉ์ ธ ๋ณด์ด๋ ์ฐฉ๊ฐ์ ์ผ์ผํค๋๊ฒ ๊ฐ๋ค.
Development
๋์์ธ์์ ์ ๋๋ด๊ณ ๋ณธ๊ฒฉ์ ์ผ๋ก ๋ณธ ๊ฒ์์ธ ๊ฐ๋ฐ์์ ์ ๋ค์ด๊ฐ๋ค. ์ด ๊ณผ์ ์ด ๋๋จํ ๋ชฐ๋ํ๋ ๋์๋๊ฑฐ ๊ฐ๋ค.
๋จผ์ html๊ณผ css๋ฅผ ์ฝ๋ฉํ๋ค. ์ต๋ํ ๋ง์ ์ํฉ์ ๋ํ ๋ชจ์ต๋ค์ ๋ง๋ค์ด๋์๋ค. ํ๋๊น์ ๋ชจ๋ฐ์ผ์์๋ ๋ฌธ์ ์์ด ํํํ๋๋ก media query ์ฝ๋๋ ์ถ๊ฐํ๋ค.
ํ ์คํ์ผ์์ ์กฐ๊ธ ์ ๋จน์์ง๋ง ์์กฐ๋กญ๊ฒ html/css ์์
์ ๋๋ด๊ณ javascript ์ฝ๋ฉ์ ์์ํ๊ฒ ๋์๋ค.
javascript๋ es2015๋ก ์์ฑํ๊ณ gulp, webpack์ ํตํด ๋น๋ํ ์ ์๋๋ก ํ๊ฒฝ์ ๊ตฌ์ฑํ๋ค.
์ปดํฌ๋ํธ ์ํ๋ฅผ ๊ด๋ฆฌํ๋ ค๊ณ redux์ ๋ํด์ ์์๋ณด๊ณ ์ฌ์ฉ๋ฐฉ๋ฒ์ ์ตํ๊ณ ์ ์ฉํด๋ณด๋๋ฐ ์๋ฌด๋ฆฌ ์๊ฐํด๋ redux๋ฅผ ์ฌ์ฉํ๋๊ฒ ์ ์ ํด ๋ณด์ด์ง ์์๋ค.
react.js๋ฅผ ์ฌ์ฉํ์ง ์์์ ํจ๊ณผ์ ์ผ๋ก ์ํ๋ฅผ ๋ ๋๋ง์ ํ ์ ์์ด์ redux๋ฅผ ์ ๊ฑฐํ๊ณ ๋ค์ ์ฝ๋ฉํ๊ธฐ๋ก ํ๋ค.
๋ง์นจ jQuery 3.0์ด ์ ์์ผ๋ก ์ฌ๋ผ์จ๊ฑธ ์๊ฒ๋์ด ๊ทธ๊ฒ๋ค๋ ๊ฐ์ด ์์๋ณด๋์ฐธ์ jQuery 3.0์ ๋ฃ๊ณ ๊ฐ๋ฐ์ ์์ํ๋ค.
ํ์ผ์
๋ก๋, ์
๋ก๋, ์
๋ก๋ํ ํ์ผ์ ๊ด๋ฆฌํ๋ ํ, ํ๋ฌ๊ทธ์ธ.. ๋ฑ๋ฑ ์ฉ๋์ ๋ฐ๋ผ ๋ชจ๋์ ๋ถ๋ฆฌํด์ ๊ด๋ฆฌํ๋ค. ๊ฐ์ฒด๋ฅผ ๊ตฌ์กฐํํ์ฌ ๊ด๋ฆฌํ๋๊ฒ์ ์ต์ฐ์ ์ ๋ชฉํ๋ก ์๊ฐํ๋ค.
์ฒ์์๋ ๋จ์ํ ๊ธฐ๋ฅ์ผ๋ก ๋ณด๊ณ ์์ํ์ง๋ง ์ค์ ๋ก ์๋ํ๋ ์ฅ์น๋ค์ ๊ตฌํํด๋ณด๋ ์ ์ ๋ง์ ๊ธฐ๋ฅ๋ค์ด ํ์ํ๊ณ ๋ณต์กํด์ง๋ค๋ ๊ฒ์ ์๊ฒ๋์๋ค.
๊ทธ๋ฐ๋ค๊ณ ๊ธฐ๋ฅ์ ๋นผ๋ฒ๋ฆด์๋ ์๋ ๋
ธ๋ฆ์ด๋ผ ๋ณต์กํ์ง๋ง ์๊ฒ ์ ์งํ๋๋ฐ ๋
ธ๋ ฅํ๋ค.
๋ค ๋ง๋ค๊ณ ๋ณด๋ ์์ง ๋ถ์กฑํ์ ์ด ์์์ง๋ง..
End
์๋ฌด๊ฒ๋ ๋ฐ๋ผ์ง ์๊ณ ์ํ๋ ๊ธฐ๋ฅ์ ์ ์ํ๋๊ฑด ์ ๋ง๋ก ๋ฉ์ง๊ณ ์ฌ๋ฏธ์๋ ๊ณผ์ ์ด๋ผ๊ณ ์๊ฐํ๋ค.
์ด๋ฒ ์์
์ ํตํด ๊ทธ๋ฐ ๊ฒฝํ์ ํ๊ณ ๋ง์๊ฒ์ ๊นจ๋ซ๊ฒ ๋ ์ข์ ๊ธฐํ๋ฅผ ๊ฐ์ง๊ฒ ๊ฐ๋ค.
์ด ์ปดํฌ๋ํธ๋ฅผ ์ด์ฉํ์ฌ ์ด์ ์ ๋ง๋ค์๋ photo layout editor ํ๋ก๊ทธ๋จ๊ณผ ํจ๊ป ๊ฒฐํฉํ์ฌ Goose์๋ค ์ฌ์ฉํ ์์ ์ด๋ค. ๊ฐ์ธ์ ์ผ๋ก ํ์ฉํ๋ฉด์ ๋ค๋ฅธ์ฌ๋๋ค์ด ์ด์ฉํ ์ ์๋๋ก ์คํ์์ค๋ก ๊ณต๊ฐํ ๊ฒ์ ๋ํ์ฌ ์คํ๋ ค ๊ฐ์ฌํจ์ ๋๋ผ๊ณ , ๋ค๋ฅธ ์ฌ๋๋ค์ ๋ฐ์์ ๋ํ์ฌ ๋ํ๋ฒ ๊ฐ์ฌํจ์ ๋๋๋ค.
์ฌ์ค 1๊ฐ์ 10์ผ์ ๊ฑฐ์ณ ๋ง๋ค๋ฉด์(์ค๊ฐ์ค๊ฐ ์๋จ๋ ์๊ฐ์ด ์์์ง๋ง..) ํ๋ฐ์ ์ข ์ง์น๋ ๊ฐ์ด ์์์ง๋ง ๊ต์ฅํ ๋ชฐ์
ํ๋๊ฒ ๊ฐ๋ค.
github์ ํ๋์ฉ ์ฌ๋ผ๊ฐ๋ ์คํ์์ค์ ๊ฐฏ์์ ๋ฟ๋ฏํ ์ ์๊ฒ ์ง๋ง ํ๋ํ๋ ๋ง๋ค๋ฉด์ ๋ฉ์ง ์ฐฝ์์ ๊ฒฝํ์ ๋ ์์ ์๊ฒ ๋๋ผ๊ฒ ํด์ค ์๊ฐ์ด ๋์ฑ ํน๋ณํ๊ฒ ๋๊ปด์ง๋ค.
๋ด๊ฐ ๋ค๋ฅธ๊ฒ๋ค์๊ฒ์ ๋์ ๋ฐ์๋ฏ์ด ์ด ์ปดํฌ๋ํธ๋ฅผ ํตํ์ฌ ๋ค๋ฅธ ์ฌ๋๋ค์ด ๋ฉ์ง์ผ์ ํ ์ ์๋ค๋ฉด ๋ด ๋ชฉ์ ์ ๋ฌ์ฑํ๋ ๊ฒ์ด๋ผ๊ณ ๋ณธ๋ค.
๊ทธ๊ฒ์ด ์คํ์์ค๋๊น..