BBuzzArt manager
μν°ν΄ μ 보
- λ₯μ§
- Tool & Service
- λΆλ₯
- External
- λ±λ‘μΌ
- 2019-05-23 05:43:47
- date: 2019-02-24
- position: design, front and develop
- tool: phpstorm, sketchapp, balsamiq mockup
νμ¬ κ°λ°μκ° μλΉμ€λ₯Ό μ΄μνκΈ° μνμ¬ λ§λ κ΄λ¦¬μ νλ‘κ·Έλ¨μ μ¬μ©νκ³ μμλ€. μκ°μ΄ μ μ°¨ μ§λκ°κ³ μ μ κ΄λ¦¬ν΄μΌ ν κ²λ€μ΄ λ§μμ§λ©΄μ μ¬μ©νλλ° λΆλ§μ΄ λ§μμ§κΈ° μμνλ€.
무μλ³΄λ€ UIκ° μμ² λΆνΈν΄μ μ¬μ©νλλ° μ§μ₯μ΄ μκΈ°λ κ²λ€μ΄ νλμ΄ μλμκ³ , κ°λ©΄ κ°μλ‘ λ³΅μ‘ν΄μ§κΈ°λ§ νλ λͺ¨μ΅μ λ³΄κ³ λ¨Όμ λμμ κ΄λ¦¬μλ₯Ό λ€μ λ§λ€ κ³νμ νκ² λμλ€.
μμμ 짬λλ μκ°μ μ‘°κΈμ© ꡬμμ νκ³ μ΄λ€ νλ‘κ·Έλ¨μ λ² μ΄μ€λ‘ ν κ²μΈμ§μ μ΄λ€ UI νλ μμν¬λ₯Ό μ¬μ© ν κ²μΈμ§λ₯Ό κ³ λ―Όνλλ° κ½€ μκ°μ΄ κ±Έλ Έλ€.
μ΅μ’
μ μΌλ‘λ vue.jsμ element-uiλ₯Ό μ¬μ©νκ² λμλ€.
νΈνκ³ λΉ λ₯΄κ² κ°λ°μ ν΄μ μ¬μ©ν μ μλ€λ κ²μ μ€μνκ² μ¬κΈ°λ€λ³΄λ μ½κ³ λΉ λ₯΄κ² κ°λ° κ°λ₯ν vue.jsλ‘ μ¬μ©νκΈ°λ‘ λ§μλ¨Ήκ³ , vue.jsμμ μ¬μ©ν μ μκ³ , λ§μ κΈ°λ₯μ κ°μ§ UI νλ μμν¬λ€μ μ°Ύμ보λ element-ui κ° κ°μ₯ λμ 보μλ€.
κ·Έλμ μ΅μ’ μ μΌλ‘ μ ν΄μ§ μ€νλ€μ λ€μκ³Ό κ°λ€.
- vue.js
- elements-ui
- scss
μν λͺ©λ‘μ λν ꡬμ
κ΄λ¦¬μλ‘ λ¬΄μμ ν κ²μΈμ§μ λνμ¬ μν μ 미리 μ ν΄λλ κ²μ΄ κ°μ₯ μ€μνλ€κ³ μκ°νλ€.
μ²μ ꡬμνκΈ° μμν λ μ μ΄λ μν κ²μμ΄ νΈνμΌλ©΄ νλ λ°λ¨μ΄ κ°μ₯μ»·λ€. κ·Έλ¦¬κ³ κ²μν μνμΌλ‘ λλ€λ₯Έ κΈ°λ₯μ νμ©νλ μ¬λ£λ‘ μ¬μ©νμΌλ©΄ μ’κ² λ€κ³ μκ°νλ€.
μνμ΄λΌλ κ²μ λͺ
ννκ² ν€μλλ‘ μ λͺ©μ΄λ λ΄μ©μ κ²μνκΈ°μ μ λ§€ν μ£Όμ λ€.
μΌνλͺ°μ μνκ°μ΄ μ¬μ§μ κ°κ΄μ μΌλ‘ μ€λͺ
ν μ μλ κ²λ€μ΄ λλΆλΆμ΄λ€. κ·Έλμ λλμ ννμ λν λ¨μλ€μ ν΅νμ¬ νν°λ§ ν΄λ΄λκ²μ΄ μ΄μμ μ΄λΌκ³ μκ°νλ€. ν€μλ, μκΉ, λ¨μ΄, μ₯λ₯΄ κ°μ κ²λ€μ μλ‘ κ΅μ§ν©μ ν΅νμ¬ μνλ μ·¨ν₯μΌλ‘ μνμ λ½μλ΄λκ²μ λͺ©νλ‘ μ‘κ³ μμλ€.
Design
λν
μΌν UI λμμΈμ element-uiκ° ν΄κ²°ν΄ μ£Όμ§λ§ λ μ΄μμ λμμΈμ μ§μ λ§λ€κΈ°λ‘ νκ³ λ μ΄μμ λ€λΉκ²μ΄μ
λΆλΆλ§ sketchApp ν΄μ μ΄μ©νμ¬ λ§λ€μλ€.
μμκ° λ§κ³ , λ¬΄κ±°μ΄ μμ μ¬μ©νκ² λλ€λ©΄ μ¬μ©νλλ° λΆλ΄κ°μ΄ λκ»΄μ§κ±°λΌλ μκ°μ κ°λ³κ³ λ¨μν λ μ΄μμμΌλ‘ λ§λ€μ΄ λ³΄κΈ°λ‘ νλ€.
λ΄λΆ 컨ν
μΈ μμμμλ element-uiλ₯Ό ν΅ν΄μ UIλ₯Ό λ§λ€ μμ μ΄μ΄μ balsamiq mockupν΄μ μ΄μ©νμ¬ μμ΄μ΄νλ μ ννλ‘ UI ννλ§ λΉ λ₯΄κ² κ·Έλ¦¬κ³ , λ°λ‘ λ§ν¬μ
νκ³ , κ°λ°νμλ€.
UI νλ μμν¬λ μ€μ§μ μΌλ‘ μ¬μ©ν΄λ³Έκ²μ μ²μμ΄λΌμ μ²μ μ¬μ©ν λλ κ½€ νΈν΄λ³΄μλ€.
Development
본격μ μΌλ‘ κ°λ°μ μμνκΈ°μ μ λ¨Όμ vue.js λ₯Ό μ΄μ©νμ¬ νκ²½μ€μ μ μμνλ€.
λλΆλΆ nuxt.js λ‘ μμ
μ νλ€κ° vue-cliλ₯Ό ν΅νμ¬ κ°λ°νκ²½μ λ§λ€μ΄λ³΄λ μλμ μΌλ‘ μ§μ 컀μ€ν°λ§μ΄μ¦λ₯Ό λ§μ΄ ν μ μμ΄λ³΄μλ€. λ€λ₯΄κ² λ§νμλ©΄ νκ²½μ λ§λλλ° μμ΄ λ§μ΄ κ°λ€κ³ ν μ μλ€.
λν
μΌνκ² view, store, assets, router λΆλΆλ€μ μμμ λ°°λΆνλλ° κ½€ κ³ λ―Όμ νλ€. μ΄λ°κ²λ€μ μ μ€κ³λ₯Ό ν΄λ¬μΌμ§ κΈ°λ₯μ΄ κ³μ μΆκ°λ λ μ½κ² λ§λ€ μ μκ±°λ κ΅¬μ‘°κ° κΌ¬μ΄μ§ μμ κ²μ΄λ€.
νΉν router λΆλΆμμ μ§μ mapμ λ§λ€μ΄ μ»΄ν¬λνΈλ‘ μ°κ²°ν΄μ€μΌ νλ λ°©μμ΄ κ½€ λ²κ±°λ‘κ² λκ»΄μ‘λ€. (κ³μ nuxt.jsλ§ μ¬μ©ν΄ μμΌλ―λ‘..)
Markup & Styling
λ μ΄μμ λΆλΆμ κ΅¬μ‘°κ° λ¨μνκ³ , ui νλ μμν¬λ₯Ό μ¬μ©νκΈ°μ μ λ§€ν λΆλΆμ΄ λ§μμ μ§μ λ§λ€μλ€.
λμ 컨ν
μΈ λΆλΆμμμ λ§ν¬μ
κ³Ό μ»΄ν¬λνΈ μ μ λΆλΆμ κ΄ν΄μλ μλΉν μ½κ² λ§λ€μ΄λκ° μ μμλ€.
μμ λ¨μμ μ»΄ν¬λνΈλ λλΆλΆ element-ui νλ μμν¬κ° λ΄λΉνμκ³ (button, text-input, checkbox, switch..), μ΄κ²λ€μ μ‘°ν©νμ¬ λ μ΄μμμ λΌλκ° λλ μ»΄ν¬λνΈλ₯Ό λ§λλκ²λΆν° μμνμ¬ νμ΄μ§κ° λλ view μμμ μ»΄ν¬λνΈλ€μ λ§λ€μ΄κ°λ€.
κ°μΈμ μΌλ‘ λλΌκΈ°μ element-ui μ grid μμ€ν
μ κ½€ λΆνΈνλ€.
κΈ°μ΄μ μΈ λ² μ΄μ€λ flexκ° μλ floating λ°©μμΌλ‘ λ§λ€μ΄μ Έ μμ§λ§ μμ±κ°μΌλ‘ flex λ°©μμΌλ‘ λ°κΎΈμ΄μ€ μ μλ€.
μμ¦μλ flex νμμΌλ‘ λ§λ€κ³ μλ€λ³΄λ μΌμΌν μμ±κ°μ λ£μ΄μ€μΌ νλ€λ μ κ³Ό flex μ μμ±κ°λ€μ΄ μ λλ‘ μ§μν΄μ£Όμ§ μλλ€λ μΈμμ λ§μ΄ κ°μ§κ³ μλ€. κ·Έλ¦¬κ³ κΈ°λ³Έ μ리먼νΈλ‘ μ¬μ©ν΄λ λλλ°λ 그리λ λ μ΄μμμ μνμ¬ μ»€μ€ν
μ»΄ν¬λνΈλ₯Ό μ¬μ©ν΄μΌ νλ€λμ λ λ³λ‘ λ§μμ λ€μ§ μλλ€.
κ·Έλμ νΉμν λ μ΄μμμ λͺ¨μ΅μ κ°μ§ μ»΄ν¬λνΈλ κΈ°λ³Έ μ리먼νΈλ‘ λ§ν¬μ
νκ³ μ»΄ν¬λνΈ λ 벨μμ μ€νμΌμνΈλ₯Ό λ°λ‘ μμ±νλ€.
List view
κ°μΈμ μΌλ‘ κ°μ₯ μ€μνκ² μκ°νκ³ κ°μ₯ λ§μ΄ μ κ²½μ μ΄ λΆλΆμ΄ λͺ©λ‘ λΆλΆμ΄λΌκ³ ν μ μλ€.
λͺ©λ‘μμμ μμλ μν, νμ, 컨ν
μΈ λ±.. λ€μν μμλ‘ μ΄λ£¨μ΄μ§λ€.
λμ€μ κΉ¨λ«κ² λμμ§λ§ μ±κ²©μ΄ λ€λ₯Έ μμλ€μ λͺ©λ‘ν μν€λ λΆλΆμμ μ΄λ €μ λ μ μ ν΅μΌμ±μ΄λΌκ³ λ³Ό μ μλ€. λͺ©λ‘μ μμ λΆλΆμ μ»΄ν¬λνΈν μμΌ λ€μνκ² μ¬μ©ν μ μμΌλ©΄μ μμ보기 μ½κ² λ§λλλ° λ
Έλ ₯νλ€.
νλμ ν¬κ² μνμ°©μ€λ₯Ό κ²ͺμ λΆλΆμ κ²μμ κ΄λ ¨λ μΈν°νμ΄μ€ λΆλΆμ΄μλλ°, μ²μ μκ°μΌλ‘λ νν°λ§ 2,3κ°μ ν€μλ κ²μλΆλΆλ§ λ£κ³ λλ¨Έμ§λ νμ₯νν°λΌλ ννλ‘ λ³λμ νλ©΄μΌλ‘ νν°λ§ μΈν°νμ΄μ€λ₯Ό λ§λ€ κ³νμΌλ‘ νν°λ§ μμμ κ°λ‘λ‘ λ°°μΉμμΌ°λ€.
λμ€μ μ‘°κΈμ© λ§λ€μ΄λ³΄λ κ°λ‘λ‘ λ°°μΉλμ΄μλ νν°λ§μ΄ νλ©΄ μ€ν¬λ‘€λ‘ λ΄λ¦¬λ€λ³΄λ©΄ μ보μ΄κ² λμ΄ μ¬μ©μ λΆνΈνλ€λκ²μ κΉ¨λ«κ² λμλ€.
μ΄λ―Έ 컨ν
μΈ λͺκ°λ λ§λ€μ΄μ Έ μλ μνμμ λ€μ λλμκ°μ κ³ μΉλ건 μκ°μ μΈ μλͺ¨κ° λ§μμ μλ‘ λ§λ€μ΄μ§λ λΆλΆμμ λ¨Όμ μ¬μ©νκ³ λμ€μ μκ°λ λ νλμ© λ€μ 리ν©ν λ§μ νκ² λμλ€.
μ΅μ’ μ μΌλ‘λ λͺ©λ‘ μ€λ₯Έμͺ½ μ¬μ΄λ μμμΌλ‘ λ°°μΉνκ³ λͺ©λ‘μ΄ μ€ν¬λ‘€μ΄ λλλΌλ μμΉκ° κ·Έλλ‘ μ μ§ν μ μλλ‘ κ³ μ μμΌ°λ€. μ΄λ κ² κ³ μ μμΌλ³΄λ νν°μ κ°μ λ³κ²½νκ³ μ λ°μ΄νΈλ λͺ©λ‘μ νμΈνκ³ λ€μ νν°λ₯Ό λ°κΎΈκΈ°κ° κ΅μ₯ν μ¬μμ‘λ€.
Connect with API
API μ°λμ λν΄μλ κΈ°μ μ μΌλ‘ κ·Έλ€μ§ μ΄λ ΅κ² λ§λ€μ§λ μμλ€.
μ μν λ λ‘κ·ΈμΈν ν ν°κ°μΌλ‘ κ²μ¬νκ³ ν ν°κ°μ ν€λμ μ§μ΄λ£μ΄μ μμ²ν λ κ°μ΄ 보λΈλ€. API μ£Όμμ κ·Έμλν μ€λͺ , νλΌλ©ν°μ κ²°κ³Όκ° μ 보λ μλ² κ°λ°μκ° swagger λꡬλ₯Ό μ΄μ©νμ¬ νμκ² κ³΅μ ν΄ μ£Όμλ€.
μλ² κ°λ°μκ° κ΄λ¦¬μ κΈ°λ₯ μΆκ° μμ²μ ν λλ μκ³ , κΈ°νμ΄λ λμμΈμ ν λ€μμ μλ² κ°λ°μμκ² κΈ°λ₯ μΆκ° μμ²μ ν λκ° μλλ° κ·Έλ΄λλ μλ‘ λνλ₯Ό νλ©΄μ λλ΅μ μΌλ‘ μμ΄μ΄νλ μμ κ·Έλ¦°λ€.
λ°±μλμ νλ‘ νΈμλμ λλ΅μ μΈ μμ κ³Όμ μ λ€μκ³Ό κ°λ€.
- μ΄λ€ ννμ νλ¦μΌλ‘ ꡬμ±ν μ§μ λνμ¬ νμ μ μ§λλ€.
- νλ©΄μ λ§λλ νλ‘ νΈμλ κ°λ°κ³Ό API κ°λ°μ νλ λ°±μλ κ°λ°μ΄ λμμ μ΄λ£¨μ΄μ§λ€.
- API μ μμ΄ λλλ©΄ νλ‘ νΈμλμμ API μμ²μ νμ¬ κ²°κ³Όκ°μ νμΈνλ€.
- API μμ²μ νμ¬ λ°μ κ°λ€μ νλ©΄μ λ§λ κ³³μλ€ λ£μ΄μ£Όλ©΄μ 컨νΈλ‘€ λΆλΆλ€μ λν μΌνκ² λ§λ€λ©΄μ λ§λ¬΄λ¦¬ μ§λλ€.
κΈ°λ₯ νλνλμ λ§λ¬΄λ¦¬λ API μ°λ ν λ΄λΆ ν μ€νΈλ₯Ό λλ΄λ©΄ μ€μ μλ²λ‘ μ λ°μ΄νΈλ₯Ό νκ²λλ€.
End
μ²μ μλΉμ€ κ΄λ¦¬μλ₯Ό λ§λ€κ² λ κ³κΈ°λ κΈ°μ‘΄μ μ¬μ©νλ κ΄λ¦¬μκ° λ무λλ λΆνΈν΄ 보μκ³ , μμ±λκ° λ¨μ΄μ Έ 보μ¬μ λ΄μμΌλ‘ λ§λ€μ΄λ³΄κ³ μΆμ μμμ΄ μ겨μ μμνκ² λμλ€.
μ£Όμ κΈ°λ₯λ€μ λ€ λ§λ€μ΄μ§ μνκ³ , κ·Έ μ΄νλ‘ μ΄λ»κ² κΈ°λ₯μ΄ λ λμ΄λκ² λλμ§λ λͺ¨λ₯΄κ² μ§λ§ μ μ°μμΌλ©΄ μ’κ² λ€.
νΉν UIμ κ΄ν΄μλ UI νλ μμν¬λ₯Ό μ¬μ©νμ§λ§ κ·Έκ²μ νμ©νλ λΆλΆμλ κ²°κ΅ λ§μ κ³ λ―Όκ³Ό λ Έλ ₯μ΄ νμνλ€.
λ³΄ν΅ μ¬λ―Έμλ μμ μ΄λΌκ³ μκ°νμ§λ§ λλ¦λλ‘ νΌμ ꡬμλΆν° λμμΈ, νλ‘ νΈμλ μ μκΉμ§ λͺ¨λ λ§λ€μ΄λΌ μ μμ΄μ μ¬λ―Έμκ² μμ νλ€.