π 2020. 7 - 2020. 12 κ°μΈ νλ‘μ νΈ
<aside>
ποΈ λ§μμ λλ μ±
μ κΈκ·λ₯Ό μ΄λ―Έμ§ μμ κΈ°λ‘, νΈμ§νμ¬ μ
λ‘λν μ μλ μμ
μΉ μ΄ν리μΌμ΄μ
</aside>


π© κΈ°ν λͺ©ν λ° μλ
- μ²μλΆν° λκΉμ§ 100% κΈ°μ¬ν μ μλ νλ‘μ νΈλ₯Ό κΌ νλλ μ μνκ³ μΆμμ΅λλ€.
- μμ΄λμ΄λ μ¬ν΄λΆν° μμν λ
μλͺ¨μμμ μ»μμ΅λλ€. κ°μ μ½μ μ±
μμ κ°μ₯ μΈμ κΉμλ ꡬμ λ€μ λ μ€λ κΈ°μ΅ν μ μλλ‘ μ΄λ―Έμ§ μΉ΄λλ‘ λ§λ€κ³ μλ‘ κ³΅μ ν μ μλ μμ
μΉ μ΄ν리μΌμ΄μ
μ λ§λ€κΈ°λ‘ νμ΅λλ€. κ°μ μ±
μ μ½λλΌλ λ
μλ§λ€ μ λΆ λ€λ₯Έ λλͺ©κ³Ό λ¬Έμ₯μμ λ§μμ μΈλ¦Όμ μ»κΈ° λλ¬Έμ
λλ€.
- κ°νΌμ μ¬λΌμ€λ ν¬μ€νΈλ μκ°μ λ¬Έμ₯μΌλ‘ μ±μμ§μ§λ§, λμμ κ·Έ λ¬Έμ₯μ κ³ λ₯Έ 'λ'λ₯Ό μμν λλ¬λΌ μ μλ μμ
μΉ μ΄ν리μΌμ΄μ
μ
λλ€.
π μ€ν
FE
ReactJS / Redux / Javascript(ES6) / HTML5 / CSS3 / Axios
BE
NodeJS / Express / MongoDB(mongoose) / Redis(RedisLab) / AWS S3
π· ννμ΄μ§
π§° κΉνλΈ
β¨ νΉμ§
<aside>
ποΈ μΈμ©ν ꡬμ μ μ΄λ―Έμ§ μΉ΄λλ‘ λ§λ€μ΄ ν¬μ€ν
</aside>

text ( quotes )
- μ μ κ° μ§μ μ
λ ₯
- CSS property( ν°νΈ, ν¬κΈ°, μμ, μ λ ¬, μ€κ°κ²©, μμΉ λ± ) κ°μ μ‘°μ
+
background image
- μ μ κ° μ§μ μ΄λ―Έμ§ νμΌμ μ
λ‘λ
- νΉμ color pickerλ‘ μμμ μ ν
β
DOM to image File
- μ μ κ° μ
λ‘λ νλ©΄ useRefλ‘ μ νλ μΊλ²μ€ DOMμ΄ μ΄λ―Έμ§λ‘ μΊ‘μ³(dom-to-image)
- λ°±μλμμ multerλ₯Ό ν΅ν΄ AWS S3λ‘ μ
λ‘λ
𧱠ꡬ쑰 λ° κΈ°λ₯
FE
- ν΄λΌμ΄μΈνΈ κ°λ³ μΉ νμ΄μ§λ₯Ό React Hooksλ₯Ό ν¬ν¨νλ μ»΄ν¬λνΈλ€λ‘ ꡬμ±
- λ‘κ·ΈμΈ, νμκ°μ
λ±μ μ
λ ₯ νΌ λ° validation
- Infinite Scroll(pagenation)λ‘ λͺ¨μ보기 ꡬν, κ° View νμ
( Card / Thumbnail )μ 컨ν
μ΄λν
- κ²μκΈ μμ , μ’μμ, μ½λ©νΈλ₯Ό κ°λ³ μ»΄ν¬λνΈλ‘ κ΄λ¦¬
- Reduxμ Axiosλ‘ μλ²μμ λ°μ΄ν° κ΅νκ³Ό νλ¦μ μ μ΄
- useDispatch λ° useSelector λ±μ Redux HookμΌλ‘ κ°λ³ μ»΄ν¬λνΈ( μ: λ€λΉκ²μ΄μ
λ° ) λ΄μμ μ μ λ‘κ·ΈμΈ μ 보λ₯Ό μ
λ°μ΄νΈ
- μλ²λ‘λΆν°μ μλ¬λ€μ λͺ¨λ¬μ°½κ³Ό μ°κ²°νμ¬ νΈλ€λ§