
λΈλ‘κ·Έμ μ λ 첫 νκ³ μ λλ€. μ΄μ μ λΉμ·ν κΈμ Mediumμ λͺ κ° μμ±νλ€κ° νννλ μ λ ₯μ΄ μλλ°, μ무λλ Mediumμ΄ κΈμ λΉμ€μ΄ λκ³ κ³΅κ°μ μΈ λ©΄μ΄ κ°νλ€ λ³΄λ κΈμ μμμ μΌλ‘ μ μ°λ €νκ³ , μ μ μ°κ³ λμλ μΈμμ μΈ λλμ΄ λ€μ΄ μ¬λ¬ λͺ¨λ‘ λ§μμ λ€μ§ μμλ κ² κ°μ΅λλ€.
2023λ μ κΈ°νκ° λλ©΄ λ°λ‘ μ 리νλ κ²μΌλ‘ νκ³ , μ°μ 2021 ~ 22λ μ μμλ μΌλ€μ κ°λ΅νκ² μ μ΄ λ³΄λ €κ³ ν©λλ€. μ΄λ²μλ κ°μΈ λΈλ‘κ·Έλ‘ λλ§(?) μ³€μΌλ, μ¬μ‘±κ³Ό νν°λ§μ μ΅λν λ°°μ νλ €κ³ ν©λλ€.
λ°±μλ μμνκΈ°
μ λ μ μ¬ν λ ν¬νΈν΄λ¦¬μ€λ₯Ό Reactλ‘ μ μΆνμ΅λλ€. κ·Έλ°λ° λ§μ λ€μ΄κ° 보λ, βνλ‘ νΈλ λμμ§ μκΈ΄ νλ°, λ°±μλκ° λ 컀리μ΄μ μΌλ‘ λμμ΄ λ κ² κ°μΌλ μ΄ μͺ½μΌλ‘ ν΄ λ³΄μβ μ μμ λ°μμ΅λλ€. λΉμ°ν μ΄μ μΌ βμ½λ©μ΄λ 무μμΈκ°β νκ³ μλ μμ€μ μ§μλ₯Ό νλ¨ν μλ μμκ³ , λμ보면 νμ¬μ λ°±μλ κ°λ°μκ° λΆμ‘±ν΄μμλ κ² κ°κΈ°λ νλ° μλ¬΄νΌ λΉμμ λμ 건 μκ² λ€ μΆμ΄μ λ°μλ€μμ΅λλ€. κ²°κ³Όμ μΌλ‘λ νμ¬ λ°±μλ, Pythonμ΄ μ£Όλ ₯μ΄ λμκ³ νλ‘ νΈλ κ±°λλ λλμΌλ‘ μ μ§ν΄μ μ§κΈμ μνκ° λ κ² κ°μ΅λλ€.
2021λ , κ°λ°λ§ νλ 첫 νλ‘μ νΈ
μ
μ¬ ν 1~2λ¬ μ λ λ€ νλ‘μ νΈμ ν¬μ
μ΄ λμμ΅λλ€. μ΄λ°μλ Javaλ₯Ό μ¬μ©νλλ°, νΉμ κΈ°λ₯μμ μ²λ¦¬ μλκ° λ무 λλ Έμ΅λλ€. κ·Έλμ νμμμ μ΄ λΆλΆμ Java λμ FastAPI + gRPCλ‘ κ΅¬ννλ©΄ μλκ° κ°μ λμ§ μκ² λλλ μ΄μΌκΈ°κ° λμκ³ κ·Έμͺ½ κ°λ°μ μ κ° λ΄λΉνκ² λμμ΅λλ€.
FastAPIλ‘ μ±μ ꡬμΆνκ³ , ν
μ€νΈνκ³ Docker μ΄λ―Έμ§κΉμ§ μ μν΄μ μ λ¬νλ κ²κΉμ§κ° μ μν μ΄μμ΅λλ€. μꡬμ¬ν μλ ΄ λ± μ
무μ μΈ λΆλΆμ μμμ λ€ μ²λ¦¬ν΄ μ£Όμ
¨κ³ , μ΄ν CI/CD λ±μ νλ‘μΈμ€λ ꡬ경μ νμ§λ§ κ²°κ΅ μ λ΄λΉμ μλμμ΅λλ€. λ§ κ·Έλλ‘ κ°λ°λ§ μ λκ² νμ΅λλ€. λλΆμ κ²½νμΉ μκΈ°λ μ’μμ μ΄ μκΈ°μ μ½λ©μ΄ μ λ§ λ§μ΄ λκΈ°λ νμ΅λλ€. λΉμμ μ¬μ©νλ gRPCλ λΌμ΄λΈλ¬λ¦¬λ μ΄νμ μ ν μΌμ΄ μμμ§λ§ FastAPI κ²½νμ λ§μ΄ μμ μ μμκ³ λ°±κ·ΈλΌμ΄λ μμ
μ΄λ Gunicornμ Server hookκ³Ό κ°μ μ μ©ν κΈ°λ₯λ μ€μ λ‘ νμ©ν΄ λ³Ό μ μμ΄ μ’μμ΅λλ€.
λ²μΈλ‘ μ κ° λΉμ 곡μμ΄κΈ°λ νκ³ , κ·Έ μΈ μ¬λ¬ μ΄μ λ‘ 1λ
μ°¨μ μλΉν μμΆλμ΄ μμλλ°, μ£Όλ³μμ λ§μ΄ μ±κ²¨ μ£Όμ
μ μ λ₯Ό λ λ―Ώμ μ μκ² λμμ΅λλ€. κ°μΈμ μΌλ‘ μ λ§ μ’κ² μ²« ν΄λ₯Ό λκ²Όλ€κ³ μκ°νκ³ μμ΅λλ€.
2022λ , λ°°μ΄ κ² μμλ λ° μμμ΅λλ€
2021λ
μ΄ λλλ©΄μ 첫 νλ‘μ νΈκ° λλκ³ μλ‘μ΄ νλ‘μ νΈμ ν¬μ
λμμ΅λλ€. μμ½νλ©΄ Java + Reactλ‘ λ§λ€μ΄μ§ μλΉμ€λ₯Ό μ μ§νκ³ κ³ λννλ μμ
μ΄μλλ° μμ§ν κ°λ° λ©΄μμ λ°°μ΄ μ μ κ±°μ μμλ κ² κ°μ΅λλ€. μ΄λ―Έ μλΉμ€κ° μ΄μ μ€μΈ μνλΌ μ₯μ κ° μμ΄μΌ νκΈ° λλ¬Έμ 리ν©ν λ§μ ν¬ν¨ν ν° μμ
μ μ΅λν μμ νλ©΄μ 보μμ μΌλ‘ λμνκΈ°λ νκ³ , μΈκ³λ°μ μ½λλ κ²°ν¨μ΄ λ§μκΈ° λλ¬Έμβ¦ μ§κΈλ μ΄ νλ‘μ νΈλ μ¬λ¬ κ°μ§λ‘ λ¬Έμ κ° λ§μκ³ , μ λ§λ μ·μ κ°μ λ‘ Java + Oracleμ λΌμ λ£μΌλ €λ€κ° μ΄μ²΄μ λκ΅μ΄ λμλ€κ³ μκ°νκΈ΄ ν©λλ€. (νλ‘μ νΈλ₯Ό νλ©΄μ NoSQLμ μ‘°μκ° κΉμ§ μμμλ NoSQL μκ°μ΄ λ¬μ΅λλ€β¦) κ·Έλμ μ΄ μκΈ°μλ νλ‘μ νΈμμ μμ¬μ λ μ μ λ°νμΌλ‘ μ½λλ₯Ό μλ‘ κ΅¬μ±ν΄ 보거λ, κ°μΈ 곡λΆλ₯Ό νλ μμΌλ‘ ν΄μλ₯Ό νλ κ² κ°μ΅λλ€.
κ°λ° λ©΄μμλ λ°°μ΄ κ² κ±°μ μμμ§λ§ μ¬λμ λνλ κ², κ°λ°μλ‘μ μν΅β¦νμ
νλ κ²μ λν΄ λ§μ΄ λ°°μ°κ³ μκ°νκ² λ νλ‘μ νΈμ΄κΈ°λ νμ΅λλ€. λ¬Όλ‘ μ΄ λλ μ΄μ 2λ
μ°¨μκΈ° λλ¬Έμ μ¬μ λΆλ€μ΄ λλΆλΆ μ²λ¦¬λ₯Ό ν΄ μ£ΌμκΈ΄ νμ§λ§, νμλ₯Ό λ°λΌλ€λλ©΄μ μ΄κΉ¨λλ¨Έλ‘ λ³Έ κ²λ μμκ³ μ΄λμ λ μ μκ² μ§μ μ μΈ μν₯μ΄ μ€λ κ²½μ°λ λ§μμ ν λ²μ μ κ° κ°μ μ΅μ λ₯Ό λͺ»νκ³ νλ°νκΈ°λ νμ΅λλ€. (κ·Έλ μ’κ² μ’κ² λμ΄κ°μλλ° μ΄ κΈμ λΉμ΄ λ€μ κ°μ¬λ립λλ€β¦) κ·Έλμ μ΄ κΈ°μ μΌλ‘ λ¨μν κ°λ°μκ° κ°λ°λ§ μνλ€κ³ λμ μλλΌλ μκ°μ κ°μ§κ² λμκ³ , λ€λ₯Έ λ°©λ©΄μΌλ‘ λ°°μ΄ μ μ΄ λ§μλ μκ°μ΄μμ΅λλ€.
μ¬μ‘±μ΄μ§λ§ μ΄νμ λ€μ μ΄μΌκΈ°λ‘λ κ³ κ°μ΄ λ ννΈμλλ° μμͺ½μ΄ μλ‘ μ¬μ΄κ° μ’μ§ μμμ μμ
λ΄μ©μ΄ λ²λ³΅λκ³ κΈ°νμ΄ νμ΄μ§λ μΌμ΄ λ§μλ€κ³ ν©λλ€. μ΄ μ λ νλ‘μ νΈλ©΄ μλ°μ΄λΌλ μ΄μΌκΈ°λ ν¨κ»β¦
λ§μΉλ©°
κ°μΈμ μΌλ‘ λ€μ¬λ€λνμ§λ§ μ μ
μμ μ 무λνκ², μλ κ½€λ μ’μ νΈμΌλ‘ 보λλ€κ³ μκ°ν©λλ€. νμ¬μ λ€μ΄κ° λλ§ ν΄λ κ°μκΈ° λμ»₯ ν©κ²©νκΈ΄ νλλ° βμ΄κ² λ§λ κΈΈμΈ κ±ΈκΉ?βλΌλ μκ°μ μ λ§ λ§μ΄ νμ΅λλ€. νμ§λ§ 첫 2λ
λμ κ·Έλ° λΆλΆμ΄ μλΉ λΆλΆ ν΄μλμμ΅λλ€. μ μ μ§λΆλ μκ² μ§λ§ λ€λ₯Έ λΆλ€μ λμμ μμ£Ό λ§μ΄ λ°μμ΅λλ€. λ€μ νλ² κ°μ¬λ립λλ€.
μ΄νμλ 2023λ
μ ν¬ν¨ν΄μ νλ‘μ νΈκ° λλλ©΄ κ°λ¨νκ²λλ§ νκ³ λ₯Ό μ μΌλ € ν©λλ€. μ¬μ€ μ΄μ μ κΈμ ν°νΈλ¦° μ λ μκ³ μ§κΈ κΈλ λμκ° μμ΄ μ λλ‘ μ΄ κ±΄μ§ κ±±μ λμ§λ§β¦ κ³μ λ
Έλ ₯ν΄μΌ ν κ² κ°μ΅λλ€.