9μ 17μΌμ μ΄λ¦° μ€νλΌμΈ λ°μ΄λ₯Ό λ§μ§λ§μΌλ‘ μ¬λ¦ λ°©νμ μ½ ν λ¬ λμμ DevCampμ νλμ΄ λ§λ¬΄λ¦¬λμλ€. SSU DevCampλ λ°©νλμ μμ€ ITλ μ¬νμμκ² νμ νλ‘μ νΈ κ²½νλ₯Ό μ 곡νκΈ° μν΄ ITλ νμνμμ μ£Όμ΅ν νμ¬λ€. μ΄ νμ¬μ νΉλ³ν μ μ€ νλλ νμ§μ μ‘Έμ μ λΆλ€μ΄ μ°λ¦¬λ€μ νλ‘μ νΈμ κ΄ν΄ λ©ν λ§μ ν΄μ€λ€λ κ²μ΄λ€. λλ¬Έμ νμ μμ νμ©νλ κ°λ° κ³΅λΆ λ°©μ, κ°λ° λ¬Έν λ± μ μ΅ν κ²½νμ μ΄λ² μΊ νλ₯Ό ν΅ν΄ μ»μ΄κ° μ μμλ€. μ΄ νμ¬λ μ΄λ²μ μ²μ μ΄λ¦¬λ κ²μ΄κ³ μΊ νκ° λλ ν μ°Έμ¬μλ€μ μ±κ³Όκ° μ’μΌλ©΄ λ΄λ μλ κ°μ΅λ μ μλλ‘ λ Έλ ₯ν κ²μ΄λΌκ³ νμ ¨λ€.
μ΄ ν¬μ€ν μλ λ΄κ° κ²ͺμλ DevCampμ μ§νκ³Όμ , κ·Έλ¦¬κ³ λ§‘μλ νλ‘μ νΈμ λν΄ κΈ°λ‘ν μμ μ΄λ€.
νλ‘μ νΈ μ ν λ° λ°°μ
λ¨Όμ κΉνλΈ μ΄μμ λ©ν λλ€μ΄ νλ‘μ νΈ μ£Όμ λ₯Ό μ μν κ²μ λ°νμΌλ‘ νκ³ μΆμ μ£Όμ λ₯Ό 1μ§λ§λΆν° 3μ§λ§κΉμ§ κ³¨λΌ μ μ²νλ€. μ΄μμλ λ€μν λΆμΌμ νλ‘μ νΈ μ£Όμ λ€μ΄ μκ³ , λ³΄ν΅ κ±°μ νλμ νλ‘λνΈ, μλΉμ€λ₯Ό λ§λλ κ²μ λͺ©νλ‘ νλ€λ³΄λ AI λΆμΌλ₯Ό μ μΈνκ³ λ κ±°μ λλΆλΆμ νλ‘μ νΈκ° νλ‘ νΈμλμ λ°±μλλ₯Ό λμμ νμλ‘ νκ³ μμλ€. λλ λΉμμ μΉμ΄λ λ°±μλλ μ λͺ¨λ₯΄κ² κ³ , μΌλ¨ κ·Έλλ§ λ§μ΄ ν΄λ³Έ μλλ‘μ΄λλ₯Ό λ λ€λ£¨κ³ 곡λΆν΄λ³΄μ νλ μκ°μ΄μμ΄μ μλλ‘μ΄λ νλ‘μ νΈλ§ κ³ λ €λμμΌλ‘ μΌμλ€. κ·Έλ κ² κ³ μ¬ λμ λμ¨ κ²°λ‘ μ 1μ§λ§ βStreak μκ°ν (ex. GitHub μλ) μ€νμμ€ λ§λ€κΈ°β, 2μ§λ§ βμ λ³΄κ΄ ν λΌμ€ μ¬μ© λ° μμ½ μ ν리μΌμ΄μ β, 3μ§λ§ βYDS UI μ»΄ν¬λνΈλ₯Ό μ μΈν UIλ‘ μ¬κ΅¬μ±νκΈ°βμλ€. 1μ§λ§κ³Ό 2μ§λ§μ ν₯λ―Έλ‘μ΄ μ£Όμ μκ³ μ¬λ―Έλ μμ κ² κ°μμ μ μ²νκ³ , 3μ§λ§μ Jetpack Composeμ κ΄μ¬μ μμ§λ§ ν΄λ³Έ μ μ μκ³ .. μ΄μ°¨νΌ λ κ°λ₯μ±μ΄ μλ€κ³ μκ°ν΄μ λλ©΄ μ’κ³ μλ λ§κ³ νλ μκ°μΌλ‘ μ§μνλ κ² κ°λ€.
νλ‘μ νΈ λ§€μΉ κ²°κ³Όλ?
3μ§λ§ λΉμ²¨μ΄μλ€. 맀μΉλμ§ μκ³ λ¨μ΄μ§ μλ μκ² λ€κ³ κ±±μ νκ³ μλ ν°λΌ μλνλ€. νμ§λ§ λ©€λ²λ ν λͺ μΈλ°λ€ μ»΄ν¬μ¦λ μ λλ‘ λͺ¨λ₯΄λλ° μ΄ νλ‘μ νΈλ₯Ό νΌμ μ μνν μ μμμ§ νλ λΆλ΄κ³Ό κ±±μ μ΄ λ€μλ€.
κ·Έλ¦¬κ³ λ©ν λ νμ¬ μ μ΄μ μλλ‘μ΄λ 리λλ₯Ό λ§‘κ³ κ²μλ λ°°νλΉλμΌλ‘ λ°°μ λ°μλλ°, μ΄λΆμ 1νκΈ° μ μ΄μ λ©΄μ λ λ©΄μ κ΄μΌλ‘ κ³μ ¨λ λΆμ΄μλ€! μ΄λΆ μ μ΄μ λλ€μμ΄ κ³΅κ΅λ‘κ²λ λ΄ μμ΄ λλ€μ harryμ κ°μμ λ©΄μ κ΄μΌλ‘ λ€μ΄μ€μ ¨λ λΆμ΄λΌλ κ±Έ λ°λ‘ μμ차릴 μ μμλ€.
λμ€μ λ£κ² λ μ¬μ€μΈλ°, μ¬μ€ μ΄ YDS νλ‘μ νΈμ μ§μ μΈμμ΄ λ무 μ μ΄μ νκΈ°λ μκΈ°μ λμ¬μμλ€κ³ νλ€. κ·Έλ°λ° λ°°νλΉ λ©ν λμ΄ λ΄κ° μ΄ νλ‘μ νΈμ μ§μν κ²μ λ³΄κ³ λ ν λͺ μ΄μ΄λ κ°μ΄ μ§νν΄λ³Όν λκΉ νκΈ°νμ§ λ§μ λ¬λΌκ³ μ£Όμ΅μκ» λ§μλλ Έκ³ , κ·Έλμ μ΄λ κ² λ΄κ° μ΄ νλ‘μ νΈμ λ°°μ λ κ²μ΄λΌκ³ νμ ¨λ€. λλ₯Ό κΈ°μ΅ν΄μ£Όμκ³ (κ°λ₯μ±μ 보μ κ±Έμλ μκ³ , λ©΄μ λ κΈ΄μ₯μ λ무 λ§μ΄ ν΄μγ γ .. μνκΉμ΄ λ§μμ λ κΈ°μ΅λμλ κ²μΌ μλ μκ³ ) λ νλ‘μ νΈμ μ°Έμ¬ν μ μκ² λμμ£Όμ κ² μ°Έ κ°μ¬νλ€.
νλ§λ€ λ 립μ μΌλ‘ μ§νλμκΈ° λλ¬Έμ λ§μ§λ§ ννΈμΈ μ€νλΌμΈ λ°μ΄λ₯Ό μ μΈνλ©΄ νλ‘μ νΈ μ£Όμ λ§λ€, λ©ν λ§λ€ μ°¨μ΄κ° ν΄ μ μλ€λ μ¬μ€μ μΌλμ λκΈΈ λ°λλ€.
λ΄κ° 맑μ νλ‘μ νΈ
μλ‘ μ΄ λ무 κΈΈμλ€. κ²°κ³Όμ μΌλ‘ λλ μμ μΈκΈνλ λλ‘ βYDS UI μ»΄ν¬λνΈλ₯Ό μ μΈν UIλ‘ μ¬κ΅¬μ±νκΈ°βλΌλ μ£Όμ μ νλ‘μ νΈλ₯Ό ν λ¬ λμ λ§‘κ² λμλ€. YDS(Yourssu Design System)λ μ μ΄μ λμ리 λ΄μμ μ¬μ©νλ λμμΈ μμ€ν μ μλ―Ένλ€. κ·Έλ¦¬κ³ λμμΈ μμ€ν μ΄λΌλ κ²μ κ°λ¨ν λ§ν΄μ λ²νΌ, ν μ€νΈ, μ±λ°μ κ°μ΄ λ€μν UIλ₯Ό κ° μμλ³λ‘ μκΉ, λͺ¨μ λ±μ λ°λΌ ν΅μΌλ κ·μΉμ μΈμ΄ κ²μ΄λ€. μ¦ λμμΈ μμ€ν μ ꡬμΆνλ©΄ ν λ¨μ²΄ λ΄μμ μ¬λ¬ μλΉμ€λ₯Ό κ°λ°νκ±°λ, μΉ, μλλ‘μ΄λ μ±, iOS μ± λ±μΌλ‘ νλ«νΌμ λ³κ²½νλλΌλ μ μ μκ² λμΌν λμμΈ κ²½νμ μ 곡ν μ μλ€. μ΄ μ€μμλ μλλ‘μ΄λμ YDSλ μλ xmlλ‘μ¨ UIλ₯Ό ꡬμ±ν μ μλλ‘ κ΅¬νλμ΄ μμλλ°, μ΄κ²μ μ΅κ·Ό μΆμλ μ μΈν UIμΈ Jetpack Composeλ‘ μ¬κ΅¬μ±νλ μμ μ μ§νν μμ μ΄λ€.
νλ‘μ νΈ μ§ν κ³Όμ
1μ£Όμ°¨ (μ»΄ν¬μ¦ μ€ν°λ)
μ°μ 첫 μΌμ£ΌμΌ λμμ μμ§ μμν μ»΄ν¬μ¦λ₯Ό νμ΅νκΈ° μν΄ μ¨, μ€νλΌμΈμΌλ‘ λ©ν λκ³Ό μλλ‘μ΄λ 곡μ λ¬Έμλ₯Ό ν λλ‘ μ»΄ν¬μ¦ μ€ν°λλ₯Ό μ§ννλ€. μ€ν°λ μ»΄ν¬μ¦μ κΈ°μ΄μ μΈ λΆλΆλΆν° λ νΌμ 곡λΆνλ€λ©΄ μμ§ λͺ»νμ κ³ κΈ μ 보λ μ»μ μ μμκ³ , 무μλ³΄λ€ μλ‘μ΄ κΈ°μ μ μ€μ€λ‘ νμ΅νλ λ°©λ²μ ν°λνκ² λ κ²μ΄ μ μ΅νλ κ² κ°λ€. μλ‘μ΄ κ°λ μ κ·Έλ₯ λ°μλ€μ΄λ λμ ν΄λΉ κ°λ μ΄ μ λμλμ§, λ€λ₯Έ κ²κ³Ό μ°¨μ΄μ μ λΉκ΅νλ©΄μ κΉμ΄ μκ°ν΄λ³΄λ νμ€ν μ΄ν΄κ° μ λλ€λ κ²μ λ©ν λκ³Όμ μ€ν°λλ₯Ό ν΅ν΄ 체κ°ν μ μμλ€.
μμΌλ‘ μ΄λ€ λ°©μμΌλ‘ μ§νν κ²μΈμ§λ 첫 λ μ λ¬ λ°μλλ°, μ°λ¦¬λ μ μμΌ μ€ν¬λΌμ΄λΌλ λ°©λ²λ‘ μ λ°λΌ μ§νν κ²μ΄λΌκ³ νλ€. μ€ν¬λΌμ μ μμΌ λ°©λ²λ‘ μ€ λνμ μΈ νλ‘μ νΈ κ΄λ¦¬ 체κ³λ‘, λΉκ΅μ 짧μ μ£ΌκΈ°λ‘ κ°λ° λ° κ²ν λ₯Ό νλ λ°©μμ λ§νλ€. μ°λ¦¬λ jiraλΌλ μλΉμ€λ₯Ό μ¬μ©νμ¬ ν° λ Έλ ₯ μμ΄ μ΄ λ°©λ²λ‘ μ μ μ©νκ³ κ΄λ¦¬ν μ μμλ€. 1μ£Όμ°¨ λμμ μ»΄ν¬μ¦ μ€ν°λκ° λλ λ€λΆν°λ ν루λ μ΄νμ ν λ²μ© κ΅¬κΈ λ―ΈνΈμμ λ©ν λκ³Ό μ¨λΌμΈμΌλ‘ λ§λ μ€λκΉμ§ ν μμ μ 곡μ νκ³ λ€μ λ΄κ° ν μΌμ ν λΉ λ°μΌλ©° μ§νν΄ λκ°λ€. νμμ΄ λλ°μ μμ΄μ 곡μ λΌκΈ°λ³΄λ€λ λ©ν λκ» λ³΄κ³ νλ€κ³ νλ κ² λ λ§μ κ² κ°κΈ΄ νλ€.
2 ~ 4μ£Όμ°¨ (Atom 리λ©μ΄ν¬)
Atomμ UI μ»΄ν¬λνΈ μ’ λ₯
YDSλ λμμΈ μμλ₯Ό Rule, Foundation, Atom, Component 4λ¨κ³λ‘ λΆλ₯νλ€. λλ μ 체 κΈ°κ°λμ Component λ¨κ³λ₯Ό μ μΈν μ μΈ λ¨κ³λ₯Ό ꡬννλλ°, κ·Έμ€μμλ Atom λ¨κ³λ₯Ό ꡬννλ κ²μ λλΆλΆμ μκ°μ ν μ νλ€.
μ΄ μ¬μ§μ Atom UI μ»΄ν¬λνΈ μ€ BoxButtonμ μνλ€μ λνλΈ νμ΄λ€. μ΄κ²μ λμ€μ λ€λ₯Έ κ°λ°μλ€μ΄ μ¬μ©ν λΌμ΄λΈλ¬λ¦¬λ‘ λ§λ€μ΄μΌ ν΄μ μ²μ μ€κ³ν λ μνλ κ²μ΄ μ€μνλ€. νμ§λ§ μ΄λ κ² κ°κ°μ μνμ λ°λ₯Έ κ²½μ°μ μκ° λ§λ€λ³΄λ μΈλΆμμ μ¬μ©νκΈ° μ½κ², κ·Έλ¦¬κ³ λ΄λΆ μ½λλ κ°λ μ± μ’κ² νλ λ λ§λ¦¬ ν λΌλ₯Ό λͺ¨λ μ‘λ κ²μ΄ λ§€μ° κΉλ€λ‘μ λ€. κ·Έλμ μ²μ UIμ μν μ€κ³λ₯Ό μμν λλ λ©ν λκ³Ό νμ΄ νλ‘κ·Έλλ°μ νμ¬ λμμ μ»μλ€.
νμ΄ νλ‘κ·Έλλ°μ λ©ν κ° μ§μ μμμ λ΄κ° μ½λ©νλ κ²μ λ³΄κ³ νμ(?)λ₯Ό λλ λ°©μμΌλ‘, μ΄κ²λ κ°λ° λ°©λ²λ‘ μ€ νλλΌκ³ νλ€.
νμ΄ νλ‘κ·Έλλ° μκ°μ λ΄κ° μ΄λ»κ² μμν΄μΌ ν μ§ λͺ°λΌ 머리λ₯Ό μΈλ§€κ³ μμ λ λ©ν λμ΄ μ§μ λ ΈνΈμ νλ₯Ό κ·Έλ € μ 리νλ κ²λ μ’μ λ°©λ²μ΄λΌκ³ νμ μ νλ² μλν΄λ³Έ κ²μ΄λ€. λ§μ νλ €λκΉ μ΄κ² μ‘°μ°¨ μ½κ² λμ§ μμλ€. 첫 λ²μ§Έ λ ΈνΈμλ κ°μ λͺ»μ‘μ μνμ¬μ κ±°μ μ΄ κ² μκ³ , λ€μλ²μ λ€μ μλν΄λ³Έ λ λ²μ§Έ λ ΈνΈμμλ κ·Έλλ§ μ€κ³½μ΄ λλ¬λλ κ²μ λ³Ό μ μλ€.
μ²μ μ»΄ν¬λνΈ νλλ₯Ό ꡬννκΈ°κΉμ§λ μκ°μ΄ λ§μ΄ κ±Έλ Έμ§λ§, λλΆλΆ κ΅¬μ‘°κ° λΉμ·ν΄μ λΉκ΅μ κΈλ°©κΈλ°© ꡬνν΄μ μ΄ Atomμμ ꡬνμ΄ κΉλ€λ‘μ΄ TextFieldλ₯Ό μ μΈν λλ¨Έμ§λ₯Ό μ»΄ν¬μ¦λ‘ 리λ©μ΄ν¬νκ³ νλ‘μ νΈ κΈ°κ°μ΄ λλ¬λ€. λ§μ§λ§ λ μλ YDS-Android λ ν¬μ μ§μ κΈ°μ¬νκ³ λ²μ μ μ λ°μ΄νΈνλ μκ΄κΉμ§ λ릴 μ μμλ€.
κ·Έλμ μ¬λ¦° YDS pull requestλ€
μ€νλΌμΈ λ°μ΄
νμ¬ κΈ°κ°μ λ§μ§λ§ λ μλ λͺ¨λ νλ€μ΄ ν μ리μ λͺ¨μ¬μ κ·Έλμ νλ κ²°κ³Όλ¬Ό, λ°°μ λ μ λ±μ λ°ννλ μ리λ₯Ό κ°μ‘λ€. λ€λ₯Έ νλΌλ¦¬λ μλ‘ λ§λ μΌμ΄ μμ΄μ μΌκ΅΄λ λͺ¨λ₯΄λ€κ° μ²μ μ€νλΌμΈμμ λ§λλ κ²μ΄λΌμ μ΄ λ μ μ€νλΌμΈ λ°μ΄λΌκ³ λΆλ₯Έλ€. μ€νλΌμΈ λ°μ΄μ λν μμΈν μ€λͺ μ μ¬κΈ°λ₯Ό μ°Έκ³ νλ©΄ λλ€.
λ°νλ§ νκ³ μ€λ κ²μ΄ μλλΌ λ°ν μ μλ λ©ν λμ λ°νλ₯Ό λ£λ μκ°λ μκ³ , μ λ°° κ°λ°μλΆλ€μκ² μ€νλ³λ‘ μ§μμλ΅ ν κΈ°νλ μ£Όμ΄μ§λ€. μ λ°°λλ€μ΄ κ°κ° μμ μ μ λ¬ΈλΆμΌμ λν΄ μ μ°½νκ² μ€λͺ νμλ λͺ¨μ΅μ 보면 μΌλ§λ κ²½νμ΄ λ§κ³ 곡λΆλ₯Ό λ§μ΄ νμ ¨λμ§ λλ μ μλ€. λλ λ©ν μ μ격μ λ°μ μ μμ μ λλ‘ λ λ§μ΄ 곡λΆν΄μΌκ² λ€. μλ μ΄λ―Έμ§λ λ΄κ° μ΄λ λ°νμλ£λ‘ μ¬μ©νλ μ¬λΌμ΄λλ€μ΄λ€.
β¦
μ΄κ±΄ μ¬λ΄μΈλ° νμ¬κ° λͺ¨λ λλκ³ DevCamp μ£Όμ΅μμ΄μμ μ μ΄μμμ μλλ‘μ΄λλ₯Ό λ΄λΉνμ ¨λ Aceλκ» μΈμ¬νλ¬ κ°λλ νλ‘μ νΈλ₯Ό μ μννλ€κ³ λνν μΉμ°¬μ ν΄μ£Όμλ©΄μ μ μ μ΄μμ μ§μνμ§ μμλκ³ νμ ¨λ€. κ·Έλμ 1νκΈ° λ μ§μνλλ° λ¨μ΄μ‘λ€κ³ λ§μλ리λκΉ λλΌμλ©΄μ 리ν¬λ£¨ν νμ λ¬Έμ κ° μκ΅¬λ§ νκ³ λλ΄μΌλ‘ λ§μνμ ¨λ€. κ·Έλ λλ λκ° λ΄ μλμ μΈμ μ λ°μ κ² κ°μμ κΈ°λΆμ΄ μ’μλ€. γ γ
νλ‘μ νΈλ₯Ό λμ보며
μ΄λ² νλ‘μ νΈλ μ£Όμ νΉμ±μ λ€λ₯Έ κ°λ°μλ€μ΄ μ¬μ©ν λΌμ΄λΈλ¬λ¦¬λ₯Ό μ μνλ κ²μ΄μλ€. κ·Έλμ ꡬννλ κ²λ³΄λ€ λ°μ΄ν°μ μν κ΄λ¦¬λ₯Ό μ€κ³νκ³ νμ₯μ± μ’μ μ½λλ₯Ό μ§κΈ°μν΄ λ Έλ ₯ν λΉμ€μ΄ ν¨μ¬ μ»Έλ€. λλ μ΄λ° μμ μ ν΄λ³Έ κ²μ μ΄λ²μ΄ μ²μμΈλ° μ΄λ κ² κ΅¬μ‘°λ₯Ό μ€κ³νλ μΌμ΄ μ΄μ©λ©΄ λ΄ μ μ±μ λ λ§λ κ² κ°λ€κ³ μ²μ λκΌλ€. μ μλ λ¨μν βνλ‘κ·Έλ¨μ κ°λ°νλ κ²βμ΄ λ΄ μ μ±μΈμ€ μμλλ°, λ μΈλΆμ μΌλ‘ λ€μ΄κ° λ΄ μ μ±μ μ°Ύμ κ² κ°μμ λ§€μ° κΈ°μλ€.
DevCampλ λλ¬μ§λ§ λ΄κ° 맑μλ νλ‘μ νΈλ κ³μ λ°μ μν€κ³ μ μ§λ³΄μν΄ λκ°κΈ°λ‘ λ§μλ¨Ήμλ€. μ΄λ° κ²½νμ κΈ°νλ₯Ό κ°μ§ μ μκ² ν΄μ£Όμ DevCamp μ£Όμ΅μλΆλ€, λ©ν λΆλ€κ» κ°μ¬λλ¦°λ€.