๋ถ‰์€๊ฑฐ์œ„ / GoOSe

redgoose file uploader

์•„ํ‹ฐํด ์ •๋ณด

๋‘ฅ์ง€
Tool & Service
๋ถ„๋ฅ˜
Extra
๋“ฑ๋ก์ผ
2019-06-24 01:58:12

rg-uploader-001.png

์ด๊ฒƒ์€ ํŒŒ์ผ์„ ์„œ๋ฒ„์— ์—…๋กœ๋“œ ํ•˜์ง€๋งŒ ํŒŒ์ผ ๊ด€๋ฆฌ๋‚˜ ์ปจํŠธ๋กค, ๊ธฐ๋Šฅํ™•์žฅ์„ ํ†ตํ•˜์—ฌ ์„œ๋ฒ„์— ์˜ฌ๋ผ๊ฐ€๋Š” ์ฒจ๋ถ€ํŒŒ์ผ๋“ค์„ ์ข€๋” ๋‚˜์€ ๋ชจ์Šต์œผ๋กœ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•˜์—ฌ ๋งŒ๋“  ์ปดํฌ๋„ŒํŠธ๋‹ค.

๋ฏธ๋ฆฌ ์„œ๋ฒ„์— ํŒŒ์ผ๋“ค์„ ์—…๋กœ๋“œํ•˜๊ณ , ๊ทธ๊ฒƒ๋“ค์„ ์—๋””ํ„ฐ์— ๋„ฃ๊ฑฐ๋‚˜ ์กฐ์ž‘ํ•  ์ˆ˜ ์žˆ๊ณ , ์‚ญ์ œํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์„ ๊ฐ€์ง„ ์ปดํฌ๋„ŒํŠธ๋ฅผ ์ƒ์ƒํ•˜๋ฉฐ ๋งŒ๋“ค๊ฒŒ ๋˜์—ˆ๋‹ค.
1๊ฐœ์›” 10์ผ์— ๊ฑฐ์ณ ์ œ์ž‘์„ ์™„๋ฃŒํ•˜์—ฌ ์ด๋ ‡๊ฒŒ ํ›„๊ธฐ๋ฅผ ์ž‘์„ฑํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค.

Plan

๋ฌด์–ธ๊ฐ€๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๋ฐ์—๋Š” ํŒŒ์ผ ์—…๋กœ๋“œํ•˜๋Š” ์žฅ์น˜๊ฐ€ ํ•„์š”ํ•œ๋ฐ ๊ทธ๊ฒƒ์„ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด ๋”์šฑ ํŽธ๋ฆฌํ•ด์งˆ ์ˆ˜ ์žˆ์„๊ฑฐ๋ผ๋Š” ์ƒ๊ฐ์„ ๋งŽ์ด ํ•ด์™”๋‹ค.

ํŠนํžˆ ๊ฐœ์ธํ™ˆํŽ˜์ด์ง€๋กœ ์‚ฌ์ง„์„ ๋Œ€๋‹จํžˆ ๋งŽ์ด ์—…๋กœ๋“œํ•˜๊ณ  ๊ด€๋ฆฌํ•œ๋‹ค๋ฉด ๊ทธ๋งŒํผ ์ข‹์€ ๋„๊ตฌ๊ฐ€ ํ•„์š”ํ•  ๊ฒƒ์ด๋‹ค. ๊ทธ๋ž˜์„œ ์ด๋Ÿฐ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋งŒ๋“ค์—ˆ๋‹ค.
์•„๋‹ˆ ๋งŒ๋“ค์—ˆ์—ˆ๋‹ค. Goose cms์—์„œ ํŒŒ์ผ ์—…๋กœ๋“œํ• ๋•Œ ์—…๋กœ๋“œ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋งŒ๋“ค์–ด ์‚ฌ์šฉํ•ด์™”๋‹ค. ํ•˜์ง€๋งŒ ์ฒ˜์Œ ๋งŒ๋“ค๋‹ค๋ณด๋‹ˆ ๊ตฌ์กฐํ™” ๋˜์–ด์žˆ์ง€์•Š๊ณ , ํ™•์žฅ์ด ์‰ฝ์ง€์•Š์€ ํ˜•ํƒœ์—ฌ์„œ ๋ญ”๊ฐ€ ๋‹ค๋ฅธ ๊ธฐ๋Šฅ์„ ํ™•์žฅ์‹œํ‚ค๋Š”๊ฒŒ ์–ด๋ ค์›Œ์„œ ์ด ๊ธฐํšŒ์— ์ปดํฌ๋„ŒํŠธ๋กœ ๊น”๋”ํ•˜๊ฒŒ ๋งŒ๋“ค์–ด๋ณด์ž๋Š” ์ƒ๊ฐ์— ์ด์ œ์„œ์•ผ ์‹คํ–‰์— ์˜ฎ๊ธฐ๊ฒŒ ๋˜์—ˆ๋‹ค.

์ด์ „์— ๋งŒ๋“ค์–ด๋ณธ๊ฒŒ ์žˆ์–ด์„œ ๊ตฌ์ƒ์€ ์‰ฌ์› ๋‹ค. ๊ทธ๋Œ€๋กœ ๋”ฐ๋ผ๊ฐ€๋ฉด ๊ทธ๋งŒ์ด๊ณ  ๊ฑฐ๊ธฐ์—์„œ ์กฐ๊ธˆ๋งŒ ๋” ๊ฐœ์„ ํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ๋˜์—ˆ๋‹ค.

์šฐ์„  ์ƒ๊ฐ๋‚˜๋Š”๊ฒƒ๋“ค์„ ๋„์ ์ด๊ณ  ๊ธฐ๋กํ–ˆ๋‹ค.

rg-uploader-005.jpg

๊ตฌ์ƒ์„ ํ•˜๋ฉด์„œ ์ค‘์š”ํ•˜๊ฒŒ ์ƒ๊ฐํ•œ์ ์€ ์—…๋กœ๋“œํ•œ ํŒŒ์ผ๋ชฉ๋ก์˜ ์Šคํƒ€์ผ์„ ์œ ์—ฐํ•˜๊ฒŒ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ๋Š”๊ฒƒ๊ณผ, ์›ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์‰ฝ๊ฒŒ ๋”ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ด๋‹ค.
๊ทธ์ •๋„๋งŒ์œผ๋กœ๋„ ๋‹ค๋ฅธ ์—…๋กœ๋“œ ์ปดํฌ๋„ŒํŠธ๋ณด๋‹ค ์ถฉ๋ถ„ํžˆ ์ข‹์•„์งˆ ์ˆ˜ ์žˆ๋‹ค๋Š” ๋ฏฟ์Œ์ด ์žˆ์—ˆ๋‹ค.
๋‚˜ ์ž์‹ ์ด๋‚˜ ๋‹ค๋ฅธ์‚ฌ๋žŒ๋“ค์ด ์ด ์ปดํฌ๋„ŒํŠธ๋ฅผ ํ†ตํ•˜์—ฌ ์–ด๋А์ •๋„๋กœ ๊ธฐ๋Šฅ์„ ํ™•์žฅ์„ ํ• ์ง€๋Š” ์•Œ ์ˆ˜ ์—†์ง€๋งŒ ํ™•์žฅ์„ ํ•˜๋Š”๋ฐ ๊ฑธ๋ฆผ๋Œ์ด ๋˜์ง€ ์•Š๊ธฐ๋ฅผ ๋ฐ”๋žฌ๋‹ค.

์ •๋ฆฌ๊ฐ€ ์•ˆ๋œ ์ƒํƒœ์—์„œ ๋ง‰ ์ ์€๊ฑฐ๋ผ์„œ ์ •๋ฆฌ๊ฐ€ ํ•„์š”ํ•ด์„œ ๋ชฉ์—…์œผ๋กœ ๋‚ด์šฉ์„ ์ •๋ฆฌํ–ˆ๋‹ค.

์ด์ œ ๋ฐœ์‚ฌ๋ฏน ๋ชฉ์—…์œผ๋กœ ์™€์ด์–ด ํ”„๋ ˆ์ž„์„ ๊ทธ๋ฆฌ๋Š”๊ฒŒ ๋” ์ต์ˆ™ํ•ด์ ธ ๋ฒ„๋ฆฐ๊ฑฐ ๊ฐ™๋‹ค.

rg-uploader-002.jpg

์ด๋ ‡๊ฒŒ ํ•„์š”ํ•œ๊ฒƒ๋“ค์„ ์ •๋ฆฌํ–ˆ๋‹ค. ํ•ด์•ผํ•  ์ผ๋“ค์€ Trello ์„œ๋น„์Šค๋ฅผ ์ด์šฉํ•˜๊ณ , ํ•„์š”ํ•œ ์ž๋ฃŒ์™€ ๊ฐœ๋ฐœํ•ด์•ผํ•˜๋Š” ์š”์†Œ๋“ค์€ github ์ด์Šˆ์— ๊ธฐ๋กํ•ด ๋‘์—ˆ๋‹ค.

๊ธฐ์ˆ ์ ์ธ ๋ฆฌ์„œ์นญ๊ณผ ์–ด๋–ค ๋ฒค๋”๋ฅผ ์‚ฌ์šฉํ• ์ง€์— ๋Œ€ํ•œ ๊ณ ๋ฏผ๋„ ํ•˜๊ฒŒ ๋˜์—ˆ๋Š”๋ฐ ์ฒ˜์Œ์—๋Š” react.js๋ฅผ ์‚ฌ์šฉํ•˜๋Š”๊ฒƒ๋„ ์ƒ๊ฐํ•ด๋ดค์ง€๋งŒ ๋ณด๋‹ค๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ด ์‚ฌ์šฉํ•˜๋Š”๊ฒƒ์„ ์›ํ•˜๊ธฐ ๋•Œ๋ฌธ์— jQuery๋งŒ ์‚ฌ์šฉํ•˜๊ธฐ๋กœ ๋งˆ์Œ๋จน์—ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ƒํƒœ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•˜์—ฌ redux๋ฅผ ๋„์ž…ํ•ด๋ณด๋ ค๊ณ  ์ƒ๊ฐํ•ด ๋ณด์•˜๋‹ค.

์ด๋ ‡๊ฒŒ ๋จธ๋ฆฟ์†์— ๋“ค์–ด์žˆ๋Š” ๊ฒƒ๋“ค์„ ์ •๋ฆฌํ•˜๊ณ  ์ค€๋น„ํ•˜๊ณ ๋‚˜์„œ ๋‹ค์Œ ๋‹จ๊ณ„๋กœ ๋„˜์–ด๊ฐ”๋‹ค.

Design

Sketch 3๋กœ ์ „๋ถ€ ๋‹ค ๋งŒ๋“ค์–ด๋ณธ ์ฒซ ๊ฒฝํ—˜์ด ๋˜์—ˆ๋‹ค. ์ด๊ฒƒ์„ ์‚ฌ์šฉํ•˜๋ฉด์„œ UI ์ œ์ž‘์„ ํ•˜๋Š”๋ฐ ๋Œ€๋‹จํžˆ ์ ์ ˆํ•œ ํˆด์ด๋ผ๋Š”๊ฑธ ์ ์  ํ™•์‹ ํ•˜๊ฒŒ ๋œ๋‹ค.

๋ธ”๋ž™๊ณผ ๊ทธ๋ ˆ์ด ์ปฌ๋Ÿฌ๋ฅผ ๊ธฐ๋ณธ์œผ๋กœ ์‚ฌ์šฉํ•˜๋ฉด์„œ ํ‚ค ์ปฌ๋Ÿฌ๋Š” ๋ฐ์€ ํŒŒ๋ž€์ƒ‰์„ ์‚ฌ์šฉํ•˜๊ณ , ํ๊ฐ€ ์˜ค๋ฅ˜๋‚ฌ์„๋•Œ ๋นจ๊ฐ„์ƒ‰์„ ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค.
์ตœ๋Œ€ํ•œ ๊น”๋”ํ•˜๊ณ  ๋ฌด๋‚œํ•œ ํ˜•ํƒœ๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ๋ฅผ ์›ํ–ˆ๋‹ค.

์ปดํฌ๋„ŒํŠธ์— ๋“ค์–ด๊ฐ€๋Š” ์•„์ด์ฝ˜์€ Material design icons์„ ์‚ฌ์šฉํ–ˆ๋‹ค. ๋‚˜๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์ด ๋‹ค์–‘ํ•œ ์•„์ด์ฝ˜์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๊ธฐ ์œ„ํ•˜์—ฌ ์•„์ด์ฝ˜ ํฐํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๊ฒŒ ๋œ๊ฒƒ์ด๋‹ค.
ํ™•์žฅ์„ฑ์„ ์—ผ๋‘ํ•œ๋‹ค๋ฉด ์•„์ด์ฝ˜ ํฐํŠธ๋Š” ์ ์ ˆํ•œ ๋„๊ตฌ๊ฐ™์•„ ๋ณด์ธ๋‹ค. ๊ทธ๋ฆฌ๊ณ  Material design icons์€ ์ƒ๋‹นํžˆ ๋ชจ์–‘์ด ๊ดœ์ฐฎ์•„์„œ ๋งˆ์Œ์— ๋“ค์—ˆ๋‹ค.

rg-uploader-003.jpg

ํ์˜ ์Šคํƒ€์ผ์„ ์ด๋ ‡๊ฒŒ 3๊ฐ€์ง€ ์Šคํƒ€์ผ๋กœ ๋งŒ๋“ค์—ˆ๋‹ค. ๋™์ผํ•œ ์—˜๋ฆฌ๋จผํŠธ์—์„œ css๋งŒ์œผ๋กœ ํ˜•ํƒœ๋ฅผ ๋ณ€๊ฒฝ์‹œํ‚ค๊ธฐ ์œ„ํ•˜์—ฌ ๋งŽ์€ ๊ณ ๋ฏผ์ด ํ•„์š”ํ–ˆ๋‹ค.
๋””์ž์ธ์„ ํ• ๋•Œ ์ƒ๊ฐ๋‚˜๋Š” ์ƒํ™ฉ๋“ค์„ ๋ชจ๋‘ ๊ทธ๋ ค๋„ฃ์—ˆ๋‹ค. ๊ฐ์ž ์ƒํ™ฉ์— ๋งž๊ฑฐ๋‚˜ ์›ํ•˜๋Š” ์Šคํƒ€์ผ์„ ์‰ฝ๊ฒŒ ๊ณจ๋ผ์„œ ์“ฐ๊ธฐ๋ฅผ ์›ํ–ˆ๋‹ค. ์ด ๋””์ž์ธ์„ ์›ํ•˜์ง€ ์•Š๋Š”๋‹ค๋ฉด ๋ถ„๋ช…ํžˆ css๋ฅผ ์ž…๋ง›์— ๋งž๊ฒŒ ํŽธ์ง‘ํ•ด์„œ ์‚ฌ์šฉํ• ๊ฒƒ์ด๋‹ค.

rg-uploader-004.jpg

ํ™•์žฅ๊ธฐ๋Šฅ์œผ๋กœ ๋งŒ๋“ค์–ด๋ณผ ์ด๋ฏธ์ง€ ํฌ๋กœํผ์™€ ํ”„๋ฆฌ๋ทฐ๋ฅผ ๋””์ž์ธ ํ–ˆ๋‹ค. ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ์„ค๋ช…์€ ๊ฐœ๋ฐœ ์„น์…˜์—์„œ..

ํฌ๋กœํผ๋Š” ๊ฐœ์ธ์ ์œผ๋กœ ์ •๋ง๋กœ ์ข‹์•„ํ•˜๋Š” ๊ธฐ๋Šฅ์ด๋ผ์„œ ๊ผญ ๊ดœ์ฐฎ์€ ๋ชจ์Šต์œผ๋กœ ๊ตฌํ˜„ํ•˜๊ณ  ์‹ถ์—ˆ๋‹ค. ๋ ˆ์ด์–ด ํŒ์—…์œผ๋กœ ๋œฌ ๋ชจ์Šต์œผ๋กœ ๋””์ž์ธ์„ ํ–ˆ๋‹ค.
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์— ํ•˜๋‚˜์”ฉ ์˜ฌ๋ผ๊ฐ€๋Š” ์˜คํ”ˆ์†Œ์Šค์˜ ๊ฐฏ์ˆ˜์— ๋ฟŒ๋“ฏํ•  ์ˆ˜ ์žˆ๊ฒ ์ง€๋งŒ ํ•˜๋‚˜ํ•˜๋‚˜ ๋งŒ๋“ค๋ฉด์„œ ๋ฉ‹์ง„ ์ฐฝ์ž‘์˜ ๊ฒฝํ—˜์„ ๋‚˜ ์ž์‹ ์—๊ฒŒ ๋А๋ผ๊ฒŒ ํ•ด์ค€ ์‹œ๊ฐ„์ด ๋”์šฑ ํŠน๋ณ„ํ•˜๊ฒŒ ๋А๊ปด์ง„๋‹ค.


๋‚ด๊ฐ€ ๋‹ค๋ฅธ๊ฒƒ๋“ค์—๊ฒŒ์„œ ๋„์›€ ๋ฐ›์•˜๋“ฏ์ด ์ด ์ปดํฌ๋„ŒํŠธ๋ฅผ ํ†ตํ•˜์—ฌ ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์ด ๋ฉ‹์ง„์ผ์„ ํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด ๋‚ด ๋ชฉ์ ์€ ๋‹ฌ์„ฑํ•˜๋Š” ๊ฒƒ์ด๋ผ๊ณ  ๋ณธ๋‹ค.

๊ทธ๊ฒƒ์ด ์˜คํ”ˆ์†Œ์Šค๋‹ˆ๊น..

๋ฉ”ํƒ€๋ฐ์ดํ„ฐ

์กฐํšŒ์ˆ˜
1435
์ข‹์•„์š”
1