λ§μ΄ν¬λ‘μλΉμ€ μν€ν μ²λ 무μμΈκ°?
λ§μ΄ν¬λ‘μλΉμ€ μν€ν
μ²λ μ΅κ·Ό μννΈμ¨μ΄ κ°λ° λ° λ°°ν¬μ ν¨λ¬λ€μμΌλ‘ λΆκ°λκ³ μμ΅λλ€. μ ν΅μ μΈ λͺ¨λ리μ μν€ν
μ²μ λΉκ΅νμ λ, λ§μ΄ν¬λ‘μλΉμ€λ μ¬λ¬ κ°μ μμ μλΉμ€λ‘ ꡬμ±λμ΄ κ°κ°μ μλΉμ€κ° νΉμ κΈ°λ₯μ μνν©λλ€. μ΄λ¬ν μ κ·Ό λ°©μμ κ° μλΉμ€λ₯Ό λ
립μ μΌλ‘ λ°°ν¬νκ³ νμ₯ν μ μλ μ μ°μ±μ μ 곡ν©λλ€. μ΄κ²μ κ°λ°μλ€μ΄ λ λΉ λ₯΄κ³ ν¨μ¨μ μΌλ‘ λ³ννλ λΉμ¦λμ€ μꡬμ λ§μΆ° μ ν리μΌμ΄μ
μ μ
λ°μ΄νΈ ν μ μκ² λμ΅λλ€. λ§μ΄ν¬λ‘μλΉμ€ μν€ν
μ²μ μ£Όμ μ₯μ μ λΉ λ₯Έ λ°°ν¬μ μλΉμ€ κ°μ λμ¨ν κ²°ν©μ
λλ€. κ° μλΉμ€λ λ
립μ μΌλ‘ λΆλ¦¬λμ΄ μκΈ° λλ¬Έμ νλμ μλΉμ€μμ λ°μνλ μ€λ₯κ° μ 체 μμ€ν
μ λ―ΈμΉλ μν₯μ μ΅μνν μ μμ΅λλ€.
λ§μ΄ν¬λ‘μλΉμ€ μν€ν
μ²μ λμ
μ λν κ°λ° νμ νμ
ν₯μμ μ΄μ§ν©λλ€. κ° νμ νΉμ μλΉμ€μ λν μ±
μμ μ§κ³ , μ΄λ‘ μΈν΄ νμλ€μ λ³΄λ€ μ λ¬Ένλ κΈ°μ μ κ°λ°ν μ μλ κΈ°νλ₯Ό κ°μ§κ² λ©λλ€. μ΄λ₯Ό ν΅ν΄ κ° νμ λ
립μ μΌλ‘ κΈ°λ₯μ ν₯μμν€κ³ λ¬Έμννλ©°, ν
μ€νΈ λ° λ°°ν¬ κ³Όμ μ μμ¨μ μΌλ‘ μ§νν μ μμ΅λλ€. μ΄λ¬ν ꡬ쑰λ κ°λ° μλλ₯Ό ν₯μμν€κ³ , λ κ³΅κ³ ν μννΈμ¨μ΄ νμ§μ 보μ₯ν©λλ€.
λν, λ§μ΄ν¬λ‘μλΉμ€ μν€ν
μ²λ λΉμ¦λμ€ λλ©μΈμ λ§μΆ° μλΉμ€λ₯Ό μ‘°μ ν μ μλ μ μ°μ±μ μ 곡ν©λλ€. μ΄λ κΈ°μ
μ΄ λ€μν νλ‘μ νΈ λ° μ ν λΌμΈμ κ΄λ¦¬νλ λ° μ 리νκ² μμ©ν©λλ€. μ½κ² μλΉμ€μ μΆκ° λ° λ³κ²½μ΄ κ°λ₯νμ¬, λΉμ¦λμ€ νκ²½μ κΈμν λ³νμ μ¦κ°μ μΌλ‘ λ°μν μ μμ΅λλ€. λ°λΌμ λ§μ κΈ°μ
λ€μ΄ λ§μ΄ν¬λ‘μλΉμ€ μν€ν
μ²λ₯Ό μ±ννμ¬ κ²½μλ ₯μ μ μ§νκ³ λͺ©νλ₯Ό λ¬μ±νλ €λ λ
Έλ ₯μ κΈ°μΈμ΄κ³ μμ΅λλ€.
λ§μ΄ν¬λ‘μλΉμ€ μν€ν μ² κ΅¬μΆμ 5λ¨κ³
λ§μ΄ν¬λ‘μλΉμ€ μν€ν
μ²λ₯Ό ꡬμΆνκΈ° μν΄μλ λ€μν λ¨κ³λ€μ 체κ³μ μΌλ‘ λ°μμΌ ν©λλ€. 첫 λ²μ§Έ λ¨κ³λ μλΉμ€μ λΆλ¦¬λ₯Ό ν΅ν λλ©μΈ λͺ¨λΈ μ μμ
λλ€. μ΄ κ³Όμ μμ μ 체 μμ€ν
μ΄ μνν΄μΌ ν κΈ°λ₯κ³Ό λΉμ¦λμ€ μꡬ μ¬νμ λΆμν©λλ€. μ¬κΈ°μλ μλΉμ€μ κ²½κ³λ₯Ό μ νκ³ , κ° μλΉμ€κ° λ΄λΉν νΉμ λλ©μΈμ λͺ
νν νλ κ²μ΄ μ€μν©λλ€. μ΄ μμ
μ μ΄νμ λͺ¨λ κ°λ° κ³Όμ μ μν₯μ λ―ΈμΉκΈ° λλ¬Έμ μ΄κΈ° λ¨κ³μμ μ μ€νκ² μ§νν΄μΌ ν©λλ€.
λ λ²μ§Έ λ¨κ³λ API μ€κ³μ
λλ€. μλΉμ€ κ°μ ν΅μ (μ£Όλ‘ REST λλ gRPCμ κ°μ νλ‘ν μ½μ ν΅ν΄)μ ꡬννκΈ° μν APIλ₯Ό μ€κ³ν΄μΌ ν©λλ€. μ΄λ, APIμ μ μλ μλΉμ€μ μ¬μ©μ± λ° νμ₯μ±μ ν° μν₯μ λ―ΈμΉλ―λ‘ λͺ
ννκ³ μΌκ΄λ λ°©μμΌλ‘ μ μνλ κ²μ΄ μ€μν©λλ€. λν, API λ¬Έμν μμ
μ λ€λ₯Έ κ°λ°μλ€μ΄ APIλ₯Ό μ΄ν΄νκ³ νμ©ν μ μλλ‘ λμμ€λλ€. μ΄ κ³Όμ μμ Swaggerμ κ°μ λꡬλ₯Ό νμ©νλ©΄ λμμ΄ λ μ μμ΅λλ€.
μΈ λ²μ§Έ λ¨κ³λ λ°μ΄ν° κ΄λ¦¬μ
λλ€. κ° λ§μ΄ν¬λ‘μλΉμ€λ λ
립μ μΈ λ°μ΄ν° μ μ₯μλ₯Ό κ°μ ΈμΌ νλ©°, μ΄λ λ°μ΄ν° μΌκ΄μ±μ μ μ§νλ©΄μλ κ° μλΉμ€μ λ
립μ±μ 보μ₯ν©λλ€. λ°μ΄ν° μ μ₯μμ μ νμ λΉμ¦λμ€ μꡬ μ¬ν λ° κΈ°μ μ€νμ λ°λΌ λ¬λΌμ§ μ μμΌλ©°, NoSQLμ΄λ κ΄κ³ν λ°μ΄ν°λ² μ΄μ€ λͺ¨λ κ³ λ €λ μ μμ΅λλ€. μ΄ λ¨κ³μμ λ°μ΄ν° λͺ¨λΈλ§κ³Ό μ κ·Ό λ°©μμ μ μ€νκ² κ³νν΄μΌ νλ©°, μ€ν μ μλλ¦¬μ€ λΆμμ΄ νμν©λλ€.
μ±λ₯ μ΅μ νμ λͺ¨λν°λ§ μμ€ν ꡬμΆ
λ€ λ²μ§Έ λ¨κ³λ μ±λ₯ μ΅μ νμ λͺ¨λν°λ§ μμ€ν
ꡬμΆμ
λλ€. λ§μ΄ν¬λ‘μλΉμ€ μν€ν
μ²λ μλΉμ€κ° λΆμ°λμ΄ μμ΄ κ° μλΉμ€μ μ±λ₯μ λͺ¨λν°λ§νκ³ κ΄λ¦¬νλ κ²μ΄ νμμ μ
λλ€. μ΄λ₯Ό μν΄ ELK μ€ν(Elasticsearch, Logstash, Kibana)μ΄λ Prometheusμ κ°μ λͺ¨λν°λ§ ν΄μ νμ©ν΄ μ±λ₯ λ°μ΄ν°λ₯Ό λΆμνκ³ , μμ€ν
λ¬Έμ λ₯Ό λΉ λ₯΄κ² μλ³ν μ μλλ‘ ν΄μΌ ν©λλ€.
λ§μ§λ§ λ¨κ³λ μ§μμ μΈ ν΅ν©κ³Ό μ§μμ μΈ λ°°ν¬(CI/CD)μ
λλ€. κ°λ°λ μλΉμ€λ μλνλ ν
μ€νΈ νλ‘μΈμ€λ₯Ό κ±°μ³ μ§μμ μΌλ‘ λ°°ν¬λμ΄μΌ ν©λλ€. μ΄λ μ 체 ꡬ쑰μ μΌκ΄μ±κ³Ό μμ μ±μ μ μ§νλ λ° ν° μν μ νλ©°, μ¬μ©μμ νΌλλ°±μ μ μνκ² λ°μν μ μλ κΈ°νλ₯Ό μ 곡ν©λλ€. Jenkins, GitLab CI/CDμ κ°μ λꡬλ₯Ό νμ©νμ¬ μ΄λ₯Ό ꡬνν μ μμ΅λλ€.
λ¨κ³ | μ€λͺ |
---|---|
1λ¨κ³ | λλ©μΈ λͺ¨λΈ μ μ λ° μλΉμ€ λΆλ¦¬ |
2λ¨κ³ | API μ€κ³ λ° λ¬Έμν |
3λ¨κ³ | λ°μ΄ν° κ΄λ¦¬ λ° μ μ₯μ μ μ |
4λ¨κ³ | μ±λ₯ μ΅μ ν λ° λͺ¨λν°λ§ |
5λ¨κ³ | μ§μμ μΈ ν΅ν©κ³Ό μ§μμ μΈ λ°°ν¬ |
κ΄μ¬ μλ λ
μ μ¬λ¬λΆ, λ§μ΄ν¬λ‘μλΉμ€ μν€ν
μ² κ΅¬μΆμ λ¨μν κΈ°μ μ μ κ·Όμ λμ΄μ, κΈ°μ
μ λ¬Ένμ μ΄μ λ°©μμλ ν° λ³νλ₯Ό μ΄λμ΄ λ
λλ€. κ΄λ¦¬μμλΆν° κΈ°μ μ λμ κΉμ§ μ¬λ¬ λΆλΆμ μμ΄ μ±μ°°μ΄ μꡬλλ©°, μ±κ³΅μ μΈ λ§μ΄ν¬λ‘μλΉμ€ μν€ν
μ²λ₯Ό ν΅ν΄ κΈ°μ
μ λΉμ¦λμ€ λͺ©νλ₯Ό λ³΄λ€ λͺ
ννκ² λ¬μ±ν μ μμ΅λλ€.
κ²°λ‘ λ° FAQ
λ§μ΄ν¬λ‘μλΉμ€ μν€ν
μ²μ μ΄ν΄μ κ΅¬μΆ λ°©λ²μ λν μ 보λ μμ¦ μ μ λ λ§μ κ΄μ¬μ λ°κ³ μμ΅λλ€. κ° λ¨κ³μμμ κ³ λ € μ¬νμ λͺ
νν μ΄ν΄νκ³ μ μ©νκ² λλ€λ©΄, λΉμ¦λμ€ λμ¦μ λ§μΆ μ μ°ν μννΈμ¨μ΄ νκ²½μ΄ κ΅¬μΆλλ¦¬λΌ νμ ν©λλ€. λ§μ΄ν¬λ‘μλΉμ€μ λμ
μ λ¨μ§ κΈ°μ μ μ νλ§ μλλΌ, κΈ°μ
μ κ°μΉ μ²΄κ³ λ° μ΄μ νλ‘μΈμ€λ₯Ό ν¬ν¨ν μ’
ν©μ μΈ μ κ·Όμ΄ νμν¨μ μμ§ λ§μμΌ ν©λλ€. μ΄λ¬ν μ μμ λ§μ΄ν¬λ‘μλΉμ€ μν€ν
μ²λ₯Ό ꡬμΆνλ κ³Όμ μ λ§€μ° μ€μν μ¬μ μ΄ λ κ²μ
λλ€.
μμ£Ό 묻λ μ§λ¬Έ
Q1: λ§μ΄ν¬λ‘μλΉμ€ μν€ν
μ²μ μ₯μ μ 무μμΈκ°μ?
λ§μ΄ν¬λ‘μλΉμ€ μν€ν
μ²μ μ£Όμ μ₯μ μ λ
립μ μΈ μλΉμ€λ‘ μ΄λ£¨μ΄μ Έ μμ΄ λ°°ν¬μ νμ₯μ΄ μ©μ΄νλ€λ κ²μ
λλ€. μ€λ₯κ° λ°μν κ²½μ°μλ μμ€ν
μ 체μ λ―ΈμΉλ μν₯μ μ΅μνν μ μμ΅λλ€. λν, κ° νμ νΉμ μλΉμ€μ λν μ±
μμ μ§λ―λ‘ νμ
κ³Ό μ λ¬Έμ±μ΄ ν₯μλ©λλ€.
Q2: λ§μ΄ν¬λ‘μλΉμ€λ₯Ό λμ
νκΈ° μν΄ νμν κΈ°μ μ€νμ 무μμΈκ°μ?
λ§μ΄ν¬λ‘μλΉμ€λ₯Ό ꡬννκΈ° μν΄μλ RESTful API, λ컀μ κ°μ 컨ν
μ΄λization κΈ°μ , λ€μν λ°μ΄ν°λ² μ΄μ€ κΈ°μ , CI/CD λκ΅¬κ° νμν©λλ€. λν, λͺ¨λν°λ§ μμ€ν
μ μ€κ³νμ¬ κ° μλΉμ€μ μνλ₯Ό μ§μμ μΌλ‘ 체ν¬ν΄μΌ ν©λλ€.
Q3: λ§μ΄ν¬λ‘μλΉμ€ μν€ν
μ²λ₯Ό μ μ©ν μμ μν μμλ 무μμΈκ°μ?
μ£Όμ μν μμλ‘λ μλΉμ€ κ°μ μμ‘΄μ± κ΄λ¦¬μ λ°μ΄ν° μΌκ΄μ±μ μ μ§νλ λ° μ΄λ €μμ΄ μμ μ μμ΅λλ€. λν, μλΉμ€κ° λ§μμ§μλ‘ λͺ¨λν°λ§ λ° μ±λ₯ μ΅μ νκ° λ³΅μ‘ν΄μ§ μ μμ΅λλ€. λ°λΌμ μ΄κΈ° μ€κ³μ λͺ
νν λ¬Έμνκ° μ€μν©λλ€.
λ§μ΄ν¬λ‘μλΉμ€, μν€ν μ², μννΈμ¨μ΄κ°λ°, μμ€ν ꡬμΆ, λ°μ΄ν°κ΄λ¦¬, CI/CD, λͺ¨λν°λ§, μλΉμ€μ€κ³, κ°λ°λ¬Έν, κΈ°μ μ€ν