March 19, 2019 β’ βοΈ 7 min read
κ°μκΈ° 2018λ νκ³ λ₯Ό μ°κ³ μΆμ΄μ μλλ€. μ§κΈ μμ°λ©΄ 2018λ μ κΈ°μ΅ν μ μμ κ² κ°μμ. κΈ°μ΅μμ λ²λ¦¬κΈ°μ λ무 μμ€ν μκ°λ€μ΄μμ΅λλ€.
λνκ΅λ₯Ό μ‘Έμ νκΈ° μ μ νμ¬μ λ€λλ λ§μ λ©μλ κ°λ°μ μΉκ΅¬λ€μ 보면μ λλ νμ¬μ λ€λ 보면μ μ§μ κ°λ°μ νκ³ λ§μ κ²λ€μ κ²½ννκ³ λ°°μλ³΄κ³ μΆμλ€. λ΄ μ₯μ μ μΆμ§λ ₯μ΄μλ€. GOPμ 근무ν λ μ¬μ§λ°©(μ¬μ΄λ²μ§μμ 보방)μμ λ‘μΌνμΉλ₯Ό νμ΄λ³΄λ©΄μ κ°λ§ν νμ¬κ° μλ μ΄ν΄λ³΄κ³ λ§μ΄ λ½λ κ°λ°μ ν¬μ§μ κ³Ό μ격 μ건 λ±μ μ°κ΅¬νλ€. ν«νκ² λ¨κ³ μλ Reactκ° κ°μ₯ λμ λμκ³ React κ΄λ ¨ μλ£λ€μ μ°Ύμ μΈμν΄μ 곡λΆνλ€. κ·Έλ¦¬κ³ ννμ΄ ν΄κ° λμμ μ€μ΅μ ν΄λ³΄λ©΄μ React κ΄λ ¨ κΈ°μ μ μ΅νλ€. κ·Έ ν, μμ μ λ§λ€μ΄λμλ κ°μΈ νλ‘μ νΈλ€μ κΈμ΄λͺ¨μμ 보μκ²μλ ν¬νΈν΄λ¦¬μ€λ₯Ό λ§λ€μ΄μ μμ κ΅°λ°μ μ€ννΈμ μ μ§μ μ΄λ©μΌμ λλ Έλ€. μμ κ΅°λ° μ€ λ€ κ΅°λ°μμ λ©΄μ μ°λ½μ΄ μμ λ§λ ν΄κ°λ, μνμλͺ© 4μΌ λΉ‘λΉ‘νκ² λ©΄μ μΌμ μ μ‘μλ€. κ·Έ μ€ νμ¬ λ€λκ³ μλ νμ¬, νλ€κ° κ°μ₯ λ°°μΈ μ μ΄ λ§μ 보μκ³ μ²΄κ³κ° μ‘ν보μλ€. κ·Έλμ 2017λ 11μμ μ‘κ΅° λ³μ₯μΌλ‘ λ§κΈ° μ μν ν, νμ¬ λ€λκ³ μλ νμ¬μ μννΈμ¨μ΄ μμ§λμ΄λ‘ ν©λ₯νκ² λμλ€.
μ²μμλ μΉ νλ‘ νΈμλ κ°λ° (React, TypeScript) ν¬μ§μ
μΌλ‘ μΌμ μμνλ€. μ무λλ κ°λ°μλ‘μ¨μ 첫 μ§μ₯μνμ΄λ€λ³΄λ GitμΌλ‘ νμ
νλ κ²λ μ΅μνμ§ μμκ³ μ΄λ κ² λ§€μΌλ§€μΌ ννμμΌλ‘ μ½λ©μ νλ κ²½νμ λ§μ΄ μμ΄ νμ¬μ λ κ±°μ μ½λλ€μ 보면μ ꡬ쑰μ λ΄μ©λ€μ νμ
νλ κ²μ΄ λ¬΄μ² μ΄λ €μ λ€. νμ§λ§ CTOλκ³Ό κ°μ κ°λ°μ μ λ°°λ λλ£λΆλ€μ΄ λ§μ λμμ μ£Όμ
¨κ³ μ½λλ₯Ό κ³μ λ³΄κ² λλκΉ λ§μ΄ μ΅μν΄μ‘λ€. κ·Έλ κ² 1~2κ°μ μΉ νλ‘ νΈμλ κ΄λ ¨ μ΄μλ€μ μ²λ¦¬νλ©΄μ μ
무μ μ μνκ³ μμλ€. λ§μ μ€ννΈμ
μ΄ κ·Έλ λ―μ΄ λ¦¬μμ€ λΆμ‘±μ λ¬Έμ λ‘ νμ¬μμ κ°λ°νκ³ μλ μλλ‘μ΄λ μ ν리μΌμ΄μ
λ§λ°μ§ κ°λ° μμ
μ νκ² λμλ€. μΉλ·° κΈ°λ°μ μ±μ΄μ΄μ λ€μ΄ν°λΈ μμ€μ½λλ κ·Έλ κ² λ§μ§λ μμμ§λ§ μλ‘μ΄ νλ‘μ νΈμ λ€μ μ μν΄μΌνλ λΉν©νμλ€. νμ§λ§ μλ°λ‘ μλλ‘μ΄λ κ°μΈ νλ‘μ νΈλ₯Ό ν κ²½νλ μμκ³ λλ μ΄μ§κ°λ°μμκΈ° λλ¬Έμ μ΅λν λ§μ λΆμΌμ μ
무λ€μ λκ² ν΄λ³΄κ³ μΆμλ€. κ·Έλμ μ¦κ±°μ΄ λ§μμΌλ‘ μλλ‘μ΄λ μ± νλ‘μ νΈ μ΄μλ€μ μ¬λ°κ² μ²λ¦¬νκ³ μ§μ κ΅¬κΈ νλ μ΄μ λ² νλ²μ μ μΆμνλ κ°μ§ κ²½νμ νκ² λμλ€.
μλλ‘μ΄λ μ±μ μΆμνκ³ λμλ μΉ νλ‘ νΈμλ μ΄μλ₯Ό μ£Όλ‘ μ²λ¦¬νλ©΄μ λ°±μλλ¨μΈ node.js(express)λ 맑겨주μ μ κ°κ°ν μ²λ¦¬νλ€. 2018λ 4μ μ λ νμ¬μνμ΄ λ§μ΄ μ μνμ λ μ―€ λ νλμ μλ‘μ΄ νλ‘μ νΈλ₯Ό νκ² λμλ€. λν ν¬νΈκ³Ό μ ν΄λ₯Ό λ§Ίκ² λμ΄ κ΄λ ¨ν΄μ κ²μ ν€μλλ₯Ό μ²λ¦¬νλ API κ°λ° λΆλΆμ λ§‘κ²¨μ£Όμ ¨λ€. μ΄κ²μ κ² λ§μ΄ λκ² νλ λλμ μμμ§λ§ λ§μ κ²½νμ ν΄λ³΄κ³ μΆμκΈ° λλ¬Έμ μ’μ κΈ°νλΌκ³ μκ°ν΄μ μ΄μ¬ν νλ€. ν΄λΉ νλ‘μ νΈλ₯Ό νλ©΄μ μꡬμ¬νμ΄ μ μ 볡μ‘ν΄μ§κ³ κ²μ ν€μλκ° μ μ λ§μμ§λ©΄μ 머리λ μν μ§λ§ λ°μΉνκ³ λ ν, λ΄κ° κ°λ°ν APIκ° λν ν¬νΈμμ λμκ°λ κ²μ λ³΄κ³ λ³΄λμ λ§μ΄ λκΌλ€.
μλλ‘μ΄λ μ±μ μΆμνμΌλ iOS μ±λ λ§λ€μ΄μΌλμ§ μκ² λκ°. 2018λ 6μ μ¦μ ν©λ₯ν μμΉ΄κ³ λνμμ μ¬νμ€μΈ κ°λ°μ νκ³Ό ν¨κ» iOS μ±μ λ°±μ§μμ μμνκ² λμλ€. μΉλ·° κΈ°λ°μ μ±μ΄κ³ κΈ°μ‘΄ μλλ‘μ΄λ μ±μ μ°Έκ³ ν΄μ κ°λ°νλ©΄ λμ΄μ λ§μ΄ μ΄λ ΅μ§λ μμ νλ‘μ νΈμμ§λ§ iOS νλ«νΌμ μ²μμ΄μκ³ Swift μΈμ΄λ μμν΄μ λ§λ§νλ€. νμ§λ§ μ΄μ¬ν μ€ν°λν΄κ°λ©΄μ μνΌμ κ°μλ£μ΄ 2κ°μ μ λ λ§μ μΆμνλ€.
iOS μ±μ μΆμν ν, λ°±μλ μ΄μλ₯Ό μ²λ¦¬νλ©° μ¦κ²κ² νμ¬λ₯Ό λ€λλ λμ€ λ νλμ νλ‘μ νΈλ₯Ό νκ² λλ€. μλλ‘μ΄λμμ μ°¨λ³νλ κΈ°λ₯μ κ°λ°νκΈ° μν΄ μ€ν¬λν μ 체μ μ ν΄ν΄μ νΉμ λ°μ΄ν°λ₯Ό κ°μ Έμ€λ κ²κ³Ό 곡μΈμΈμ¦μ, 보μν€ν¨λ κ΄λ ¨ λͺ¨λμ μ°λνλ κ²μ΄μλ€. κ°μΈ νλ‘μ νΈλ‘λ μ½κ² ν μ μλ κ²λ€μ΄λΌ μ§μ μ΄λ° κ²λ€μ ν μ μμλ κ²μ λν΄μ μ λ§ κ°μ¬νλ€. μ¦κ²κ² μΈλΆ μ 체μ λ―Έν λ νκ³ κ΄λ ¨ λ¬Έμλ μ΄μ¬ν μ½μΌλ©΄μ μ½μ§μ νλ€. νμ¬λ μ€λ‘μ§ λ°±μλ μ΄μλ§ λ΄λΉνκ³ μμ§λ§ μλλ‘μ΄λ κ°λ°μ λ§μ΄ ν μ μμλ κ²μ λν΄μ κ°μ¬νκ² μκ°νκ³ μλ€.
νμ¬κ° μ½μμ€ κ·Όμ²μ μμ΄μ κ°λ° κ΄λ ¨ 컨νΌλ°μ€λ€μ μ½κ² μ°Έμ¬ν μ μμ΄μ μ’μλ€. 4μμλ λλ£λΆλ€κ³Ό κ°μ΄ AWS SUMMIT 2018μ μ°Έμ¬ν΄μ DevOpsμ κ΄λ ¨ν΄μ κΆκΈνκ±°λ μκ³ μΆμλ μΈμ μ λν΄ μμ λ‘κ² μ°Έμ¬νκ³ 10μμλ λ€μ΄λ² κ°λ°μ 컨νΌλ°μ€ DEVIEWμ μ°Έμ¬ν΄μ μλ°μ€ν¬λ¦½νΈ κ΄λ ¨ μΈμ λ€μ λ€μλ€. νκ΅μ μ λ§ λ©μλ κ°λ°μλΆλ€μ΄ λ§λ€λ κ²μ λͺΈμ λλ μ μμλ 컨νΌλ°μ€μλ€. λκΈ°λΆμ¬μ μκ·Ήλ μΆ©λΆν λμ΄μ 컨νΌλ°μ€μ κ° κΈ°νκ° μμΌλ©΄ μμ£Ό κ°κ³ μΆλ€.
λλ μ½λ©μ μ λ§ μ’μνλ€. κ·Έλμ νμ¬ μ 무λ‘μ¨μ κ°λ° λ§κ³ λ κ°μΈ νλ‘μ νΈλ‘ λκ°λ₯Ό λ§μ΄ νμλ€.
λ€λ·Έλ¬μ€λ μ€κ΅μ νΌλΈλ¦ λΈλ‘체μΈμ΄λ€. 2017λ λ§, 2018λ μ΄μ λΈλ‘체μΈ(μνΈνν) μ΄νμ λ§μμ λΈλ‘체μΈμ νμ°½ κ΄μ¬μ΄ μμ λ μ―€μ λ€λ·Έλ¬μ€λ₯Ό μκ² λμλ€. μ΄λ리μ, EOSμ λ§μ°¬κ°μ§λ‘ DApp(νμ€μν μ ν리μΌμ΄μ )μ κ°λ°ν μ μλ νλ«νΌ μ’ λ₯μ λΈλ‘체μΈμ΄λ€. λ§μ νλ«νΌ λΈλ‘μ²΄μΈ μ€μμ λ€λ·Έλ¬μ€κ° κ΄μ¬ μμλ κ²μ μ°μ λ‘κ³ κ° μ΄λ»€κ³ μλ°μ€ν¬λ¦½νΈ, νμ μ€ν¬λ¦½νΈλ₯Ό μ¬μ©ν΄μ DAppμ κ°λ°ν μ μλ μ μ΄μλ€. λν, Developer Incentive Programμ΄λΌκ³ ν΄μ λ€λ·Έλ¬μ€λ‘ DAppμ κ°λ°νκΈ°λ§ νλ©΄ μκΈμ μ€λ€λ κ²μ μ΄λλ Έλ€. (λΉμ κΈμ‘μΌλ‘λ 100λ§μ μ΄μμ΄μλ€. νμ¬λ λ§μ΄ λ¨μ΄μ‘μ§λ§) κ·Έλμ DIP κΈ°κ°λμ Votestagram, Fortune Cookie, AddressBook μΈ κ°μ DAppμ κ°λ°νλ€. DApp κ°λ°μ κ³κΈ°λ‘ 3κ°μλμ λ€λ·Έλ¬μ€ λμ¬λ‘ νλνλ©΄μ λ€λ·Έλ¬μ€ κΉνμμ νλλ νκ³ , λ°±μ κ²μ νλλ νλ λ± λ»κΉμ κ²½νμ νλ€. λΈλ‘체μΈμ μ’ μ¬νλ μ’μ μ¬λλ€λ λ§μ΄ μκ²λ κ²λ μ’μλ€.
λ€μ΄λ²λ κ΅¬κΈ κ°μ κ²μμμ§μ μ¬μ©ν λ, νκΈλ‘ μ³μΌν κ²μμ΄λ₯Ό μμ΄λ‘ μλͺ» μΉ κ²½νμ λꡬλ μμ κ²μ΄λ€. κ·Έλ¦¬κ³ μλͺ» μΉ μνλ₯Ό λ°λ‘ νκΈλ‘ μ‘μ쀬λ κΈ°μ΅λ κ°μ΄ μμ κ²μ΄λ€. λ°λ‘ μ΄ κΈ°λ₯μ μλ°μ€ν¬λ¦½νΈ μ€νμμ€λ‘ κ°λ°νκ³ μΆμλ€. μλ°μ€ν¬λ¦½νΈλ‘ μνλ₯Ό νκΈλ‘, ννλ₯Ό μμ΄λ‘ λ³ννλ ν¨μ λ κ°μ§λ₯Ό λ§λ€κ³ NPMμ inkoλΌλ μ΄λ¦μ κ°μ§κ³ λ°°ν¬λ₯Ό νλ€. (μ΄λ¦μ μ λλ βenglish to koreaβ -> βinkoβ μ΄λ€.) λ΄ μ²« μ€νμμ€ νλ‘μ νΈμ΄κΈ°λ νκ³ λ€λ₯Έ λΆλ€λ ν리νμ€νΈλ₯Ό ν΅ν΄ νλ‘μ νΈμ μ°Έμ¬ν΄μ£Όμκ³ κ·Έλμ λμκ² μ λ§ μλ―Έμλ νλ‘μ νΈκ° λμλ€.
μ΄μ ν¬μ€νΈκΈμμ μΌλ―μ΄ λ΄κ° κ°μΈνλ‘μ νΈλ‘ μ²μ μΆμν μ±μ΄λ€. React Nativeλ‘ λΉλνκ³ λ§μ μ μ λ€μ΄ μ¬μ©νκ³ μμ΄μ κ°μ₯ μ κ²½μ λ§μ΄ μ°κ³ μλ νλ‘μ νΈμ΄λ€. μμΌλ‘λ κ³μ κΈ°λ₯ μΆκ°, κ΄λ¦¬λ₯Ό μ΄μ΄κ° κ²μ΄κ³ κ³μ μλμμΌλ©΄ μ’κ² λ€.
2018λ 4μ 29μΌλΆν° 1μΌ 1컀λ°μ ν΄μ€κ³ μλ€. (λͺ¨λ λ€ μ±μ΄κ±΄ μλμ§λ§ κ±°μ λ€ μ±μ λ€.) μ΄μ μ΅κ΄μ μΌλ‘ λλΌλ κΉνμ 컀λ°νκ³ μλ€. μ€νμμ€ νλ‘μ νΈμ μ΄μλ ν리νμ€νΈλ₯Ό νκ±°λ BOJ νμ΄, μ¬μν κ°μΈ νλ‘μ νΈ λ±μ μ£Όλ‘ μ»€λ°νκ³ μλ€.
μ§λ 1λ λμ κ°λ°μλ‘μ¨μ 첫 νμ¬ μνμ ν΅ν΄ μ λ§ λ§μ κ²λ€μ νλ©΄μ Jiraλ Confluence κ°μ νμ ν΄μ΄λΌλμ§ MVC ν¨ν΄μ΄λΌλμ§ μ£Όλ³ λλ£λΆλ€μκ² νκ΅μμ λ°°μΈ μ μλ κ²λ€μ λ°°μ λ€. κ·Έλ¦¬κ³ μ΄λ²€νΈ νΈλνΉ, νΌλ, 리ν μ λ± μ€ννΈμ μμ λ°μ΄ν° λΆμμ μ΄λ»κ² νλμ§μ λν΄μλ μ μ μμλ€. λ§μ½ νκ΅μ 3νλ μΌλ‘ 볡νν΄μ 곡λΆλ§ νλλΌλ©΄ μ΄λ§νΌ μ±μ₯νμ§ λͺ»νμκ²μ΄λ€. λν, νμ¬μ λ€λλ©΄μ μ£Όλ§ νΉμ ν΄κ·Ό νμ μκ°μ κ°μΈ νλ‘μ νΈλ₯Ό νλ©΄μλ νμ¬μμ μ¬μ©νμ§ μλ κΈ°μ λ€μ μ€ν°λνκ³ μ§μ ν΄λ³΄λ©΄μ μ€λ ₯μ μ±μ₯μν¬ μ μμκ³ κ²°κ³Όλ¬Όμ΄ λμ€λ©΄ 보λμ λλ μ μμλ€. 2018λ μ°Έ μμ°¨κ² λ³΄λΈ κ² κ°μ κΈ°λΆμ΄ μ’λ€.
μ¬ν΄λ 3νλ μΌλ‘ 볡νμ νκ³ 1νκΈ°λμμλ νμ¬μ λ³νμ νκΈ°λ‘ νλ€. μλλ νκ΅λ§ μ΄μ¬ν λ€λλ €κ³ νμ§λ§ μ§κΈ λ€λκ³ μλ νμ¬μ μ’μ μ¬λλ€κ³Ό κ³μ μΌνκ³ μΆμ΄μ κ·Έλ§λκΈ°κ° λκ° μμ¬μ λ€. κ·Έλμ 1νκΈ°λ§ λ μΌνκ³ λλ¨Έμ§ νκΈ°μ λ νμ μ μ΄μ€νλ €κ³ νλ€. μ¬ν΄ λͺ©νλ μλ°μ€ν¬λ¦½νΈλ₯Ό κΉμ΄ νλ κ²μ΄λ€. μ§λ 1λ λμ μ¬λ¬ ν¬μ§μ μ μ 무λ₯Ό ν΄λ³΄λ©΄μ λͺ¨λ°μΌ λ€μ΄ν°λΈλ³΄λ€λ μλ°μ€ν¬λ¦½νΈκ° λ λμκ² λ§λ κ²μ λκΌλ€. κ·Έλμ JSλ₯Ό λ νλ³΄λ €κ³ νλ€. λ React Native μ±μ μ¬λ¬κ°μ§ λ§λ€κ³ μΆκ³ κ΅°λμ΄λ κ³μ μ μ§/보μ, κΈ°λ₯ μΆκ°ν κ²μ΄λ€. κ²°λ‘ , νμ λ μλ°κ³ μΆκ³ κ°μΈ νλ‘μ νΈλ λ§μ΄ νκ³ μΆκ³ λ€ μνκ³ μΆλ€. μ¬ν΄λ μ΄μ¬ν μ΄μμΌμ§. π₯
Personal blog by Jon Jee.
I hope to explain with words and code.