KR_IT_Dev_Methods - somaz94/DevOps-Engineer GitHub Wiki

IT μš©μ–΄: 개발 방법둠

3. μ–΄ν”ŒλΌμ΄μ–ΈμŠ€(Appliance)

"μ–΄ν”ŒλΌμ΄μ–ΈμŠ€(Appliance)"λΌλŠ” μš©μ–΄λŠ” 일반적으둜 νŠΉμ • λͺ©μ μ΄λ‚˜ κΈ°λŠ₯을 μˆ˜ν–‰ν•˜κΈ° μœ„ν•΄ 사전에 κ΅¬μ„±λ˜κ³  μ΅œμ ν™”λœ 특수 ν•˜λ“œμ›¨μ–΄ λ˜λŠ” μ†Œν”„νŠΈμ›¨μ–΄ νŒ¨ν‚€μ§€λ₯Ό μ˜λ―Έν•œλ‹€. IT λΆ„μ•Όμ—μ„œ μ–΄ν”ŒλΌμ΄μ–ΈμŠ€λŠ” 주둜 λ„€νŠΈμ›Œν¬ μ–΄ν”ŒλΌμ΄μ–ΈμŠ€, μŠ€ν† λ¦¬μ§€ μ–΄ν”ŒλΌμ΄μ–ΈμŠ€, 가상 μ–΄ν”ŒλΌμ΄μ–ΈμŠ€ λ“±κ³Ό 같이 νŠΉμ • μž‘μ—…μ„ 효율적으둜 μˆ˜ν–‰ν•˜λ„λ‘ μ„€κ³„λœ μž₯μΉ˜λ‚˜ μ†Œν”„νŠΈμ›¨μ–΄λ₯Ό μ§€μΉ­ν•˜λŠ” 데 μ‚¬μš©λœλ‹€.

λ„€νŠΈμ›Œν¬ μ–΄ν”ŒλΌμ΄μ–ΈμŠ€

λ„€νŠΈμ›Œν¬ μ–΄ν”ŒλΌμ΄μ–ΈμŠ€λŠ” λ„€νŠΈμ›Œν¬ 관리, λ³΄μ•ˆ, 톡신 λ“±μ˜ κΈ°λŠ₯을 μ œκ³΅ν•˜κΈ° μœ„ν•΄ νŠΉλ³„νžˆ μ œμž‘λœ ν•˜λ“œμ›¨μ–΄ μž₯μΉ˜μ΄λ‹€. λ°©ν™”λ²½, λΌμš°ν„°, μŠ€μœ„μΉ˜, VPN μž₯λΉ„, λ‘œλ“œ λ°ΈλŸ°μ„œ 등이 여기에 ν•΄λ‹Ήν•©λ‹ˆλ‹€. μ΄λŸ¬ν•œ μž₯μΉ˜λ“€μ€ λ„€νŠΈμ›Œν¬ μ„±λŠ₯을 μ΅œμ ν™”ν•˜κ³ , λ³΄μ•ˆ μœ„ν˜‘μœΌλ‘œλΆ€ν„° λ„€νŠΈμ›Œν¬λ₯Ό λ³΄ν˜Έν•˜λŠ” 데 ν•„μˆ˜μ μΈ 역할을 ν•œλ‹€.

μŠ€ν† λ¦¬μ§€ μ–΄ν”ŒλΌμ΄μ–ΈμŠ€

μŠ€ν† λ¦¬μ§€ μ–΄ν”ŒλΌμ΄μ–ΈμŠ€λŠ” 데이터 μ €μž₯ 및 관리λ₯Ό λͺ©μ μœΌλ‘œ ν•˜λŠ” ν•˜λ“œμ›¨μ–΄ μž₯μΉ˜μ΄λ‹€. NAS(Network Attached Storage) λ˜λŠ” SAN(Storage Area Network) μž₯비와 같이 λŒ€λŸ‰μ˜ 데이터λ₯Ό 효과적으둜 μ €μž₯ν•˜κ³ , κ³΅μœ ν•˜λ©°, λ°±μ—…ν•  수 μžˆλ„λ‘ μ„€κ³„λ˜μ—ˆλ‹€.

가상 μ–΄ν”ŒλΌμ΄μ–ΈμŠ€

가상 μ–΄ν”ŒλΌμ΄μ–ΈμŠ€λŠ” μ†Œν”„νŠΈμ›¨μ–΄ μ–΄ν”ŒλΌμ΄μ–ΈμŠ€μ˜ ν•œ ν˜•νƒœλ‘œ, νŠΉμ • μ†Œν”„νŠΈμ›¨μ–΄ λ˜λŠ” μ„œλΉ„μŠ€λ₯Ό μ‹€ν–‰ν•˜κΈ° μœ„ν•΄ 사전에 κ΅¬μ„±λœ 가상 λ¨Έμ‹  이미지이닀. 이λ₯Ό 톡해 μ‚¬μš©μžλŠ” λ³΅μž‘ν•œ μ„€μΉ˜ κ³Όμ • 없이 μ†Œν”„νŠΈμ›¨μ–΄λ₯Ό μ‰½κ²Œ λ°°ν¬ν•˜κ³  μ‹€ν–‰ν•  수 μžˆλ‹€. 예λ₯Ό λ“€μ–΄, 가상화 ν™˜κ²½μ—μ„œμ˜ λ°±μ—… μ†”λ£¨μ…˜, λ³΄μ•ˆ μ‹œμŠ€ν…œ, λ„€νŠΈμ›Œν¬ 관리 도ꡬ 등이 μžˆλ‹€.

μ–΄ν”ŒλΌμ΄μ–ΈμŠ€μ˜ μž₯점

  • μ‚¬μš© νŽΈμ˜μ„±: μ–΄ν”ŒλΌμ΄μ–ΈμŠ€λŠ” νŠΉμ • μž‘μ—…μ„ μœ„ν•΄ μ΅œμ ν™”λ˜μ–΄ 있기 λ•Œλ¬Έμ—, μ„€μΉ˜μ™€ ꡬ성이 κ°„λ‹¨ν•˜κ³  μ‚¬μš©ν•˜κΈ° 쉽닀.
  • μ„±λŠ₯: μ–΄ν”ŒλΌμ΄μ–ΈμŠ€λŠ” νŠΉμ • κΈ°λŠ₯을 μˆ˜ν–‰ν•˜κΈ° μœ„ν•΄ μ΅œμ ν™”λ˜μ–΄ μžˆμ–΄, κ΄€λ ¨ μž‘μ—…μ„ μ²˜λ¦¬ν•˜λŠ” 데 μžˆμ–΄ 높은 μ„±λŠ₯을 λ°œνœ˜ν•œλ‹€.
  • 관리 μš©μ΄μ„±: 일반적으둜 ν†΅ν•©λœ 관리 μΈν„°νŽ˜μ΄μŠ€λ₯Ό μ œκ³΅ν•˜μ—¬, 관리가 μš©μ΄ν•˜λ‹€.
  • λ³΄μ•ˆ: λ§Žμ€ μ–΄ν”ŒλΌμ΄μ–ΈμŠ€λŠ” λ³΄μ•ˆ κΈ°λŠ₯을 λ‚΄μž₯ν•˜κ³  μžˆμ–΄, 데이터 λ³΄ν˜Έμ™€ λ„€νŠΈμ›Œν¬ λ³΄μ•ˆμ„ κ°•ν™”ν•œλ‹€.

4. μ• μžμΌ ν”„λ ˆμž„μ›Œν¬(Agile Framework)

μ• μžμΌ ν”„λ ˆμž„μ›Œν¬(Agile Framework) λŠ” ν”„λ‘œμ νŠΈ 관리와 μ†Œν”„νŠΈμ›¨μ–΄ κ°œλ°œμ—μ„œ 변화에 λΉ λ₯΄κ³  μœ μ—°ν•˜κ²Œ λŒ€μ‘ν•˜κΈ° μœ„ν•΄ κ³ μ•ˆλœ 방법둠이닀.

μ• μžμΌμ€ 전톡적인 μ›Œν„°ν΄ λͺ¨λΈκ³Ό 달리, κ³„νšκ³Ό 개발, 배포 과정이 반볡적이고 μ μ§„μ μœΌλ‘œ μ§„ν–‰λ˜μ–΄, 지속적인 고객 ν”Όλ“œλ°±κ³Ό μ œν’ˆμ˜ κ°œμ„ μ„ μΆ”κ΅¬ν•œλ‹€. μ΄λŠ” 고객의 μš”κ΅¬μ‚¬ν•­ 변화에 λŠ₯λ™μ μœΌλ‘œ λŒ€μ‘ν•˜κ³ , μ‹œμž₯의 변화에 λΉ λ₯΄κ²Œ μ μ‘ν•˜λ©°, 더 λ‚˜μ€ μ œν’ˆμ„ μ œκ³΅ν•˜κΈ° μœ„ν•œ λͺ©μ μœΌλ‘œ μ‚¬μš©λœλ‹€.

μ• μžμΌμ˜ 핡심 κ°€μΉ˜ (Agile Manifesto)

μ• μžμΌ 방법둠은 λ‹€μŒ λ„€ κ°€μ§€ 핡심 κ°€μΉ˜μ— κΈ°λ°˜μ„ λ‘”λ‹€.

  • ν”„λ‘œμ„ΈμŠ€μ™€ 도ꡬ보닀 개인과 μƒν˜Έμž‘μš©μ„ μš°μ„ μ‹œν•œλ‹€
  • 포괄적인 λ¬Έμ„œλ³΄λ‹€ μž‘λ™ν•˜λŠ” μ†Œν”„νŠΈμ›¨μ–΄λ₯Ό μš°μ„ μ‹œν•œλ‹€
  • 계약 ν˜‘μƒλ³΄λ‹€ 고객과의 ν˜‘λ ₯을 μš°μ„ μ‹œν•œλ‹€
  • κ³„νšμ„ λ”°λ₯΄κΈ°λ³΄λ‹€ 변화에 λŒ€μ‘ν•˜λŠ” 것을 μš°μ„ μ‹œν•œλ‹€

μ£Όμš” μ• μžμΌ ν”„λ ˆμž„μ›Œν¬

μ• μžμΌ λ°©λ²•λ‘ μ—λŠ” μ—¬λŸ¬ ν”„λ ˆμž„μ›Œν¬κ°€ μ‘΄μž¬ν•˜λ©°, 각기 λ‹€λ₯Έ μ ‘κ·Ό 방식과 기법을 μ œκ³΅ν•œλ‹€.

  • 슀크럼 (Scrum): κ°€μž₯ 널리 μ‚¬μš©λ˜λŠ” μ• μžμΌ ν”„λ ˆμž„μ›Œν¬ 쀑 ν•˜λ‚˜λ‘œ, μ •ν•΄μ§„ κΈ°κ°„(μŠ€ν”„λ¦°νŠΈ) λ™μ•ˆ νŒ€μ΄ λͺ©ν‘œλ₯Ό λ‹¬μ„±ν•˜κΈ° μœ„ν•΄ ν˜‘λ ₯ν•˜λŠ” ꡬ쑰λ₯Ό κ°–μΆ”κ³  μžˆλ‹€.
  • 칸반 (Kanban): μž‘μ—…μ˜ 흐름을 μ‹œκ°ν™”ν•˜μ—¬ ν˜„μž¬ μ§„ν–‰ 쀑인 μž‘μ—…μ˜ 양을 μ œν•œν•¨μœΌλ‘œμ¨ νš¨μœ¨μ„±μ„ λ†’μ΄λŠ” 방법둠이닀.
  • 읡슀트림 ν”„λ‘œκ·Έλž˜λ° (XP): 고객 λ§Œμ‘±μ„ μ΅œλŒ€ν™”ν•˜κΈ° μœ„ν•΄ λΉ λ₯Έ ν”Όλ“œλ°±, 연속적인 κ°œμ„ , 기술적 μš°μˆ˜μ„±, 쒋은 섀계에 μ΄ˆμ μ„ 맞좘 μ†Œν”„νŠΈμ›¨μ–΄ 개발 방법둠이닀.
  • λ¦° μ†Œν”„νŠΈμ›¨μ–΄ 개발 (Lean Software Development): λ‚­λΉ„λ₯Ό μ΅œμ†Œν™”ν•˜κ³ , κ°€μΉ˜ μ°½μΆœμ— μ§‘μ€‘ν•˜λŠ” 원칙에 κΈ°λ°˜ν•œ 방법둠이닀.

5. 슀크럼(Scrum)

슀크럼(Scrum) 은 μ• μžμΌ(Agile) ν”„λ ˆμž„μ›Œν¬ 쀑 ν•˜λ‚˜λ‘œ, 특히 λ³΅μž‘ν•œ μ†Œν”„νŠΈμ›¨μ–΄ 개발 ν”„λ‘œμ νŠΈλ₯Ό κ΄€λ¦¬ν•˜κΈ° μœ„ν•΄ 널리 μ‚¬μš©λœλ‹€. μŠ€ν¬λŸΌμ€ 개발 ν”„λ‘œμ„ΈμŠ€λ₯Ό 짧은 사이클(일반적으둜 2μ£Όμ—μ„œ 4μ£Ό μ‚¬μ΄μ˜ μŠ€ν”„λ¦°νŠΈ)둜 λ‚˜λˆ„μ–΄, 지속적인 κ°œμ„ κ³Ό μœ μ—°ν•œ μš”κ΅¬μ‚¬ν•­ λŒ€μ‘μ„ κ°€λŠ₯ν•˜κ²Œ ν•œλ‹€. μŠ€ν¬λŸΌμ€ νŒ€μ΄ λͺ…ν™•ν•œ λͺ©ν‘œλ₯Ό κ°€μ§€κ³  집쀑할 수 μžˆλ„λ‘ 돕고, 변화에 μ‹ μ†ν•˜κ²Œ λŒ€μ‘ν•  수 μžˆλ„λ‘ ν•œλ‹€.

슀크럼의 μ£Όμš” ꡬ성 μš”μ†Œ

  • 슀크럼 νŒ€(Scrum Team): μ œν’ˆ μ†Œμœ μž(Product Owner), 슀크럼 λ§ˆμŠ€ν„°(Scrum Master), 개발 νŒ€(Development Team)으둜 κ΅¬μ„±λœλ‹€.
    • μ œν’ˆ μ†Œμœ μž(Product Owner): μ œν’ˆ 백둜그λ₯Ό κ΄€λ¦¬ν•˜λ©°, μ œν’ˆμ˜ κ°€μΉ˜λ₯Ό μ΅œλŒ€ν™”ν•œλ‹€.
    • 슀크럼 λ§ˆμŠ€ν„°(Scrum Master): 슀크럼 νŒ€μ΄ 슀크럼 ν”„λ‘œμ„ΈμŠ€λ₯Ό μ›ν™œν•˜κ²Œ λ”°λ₯Ό 수 μžˆλ„λ‘ μ§€μ›ν•œλ‹€.
    • 개발 νŒ€(Development Team): μ œν’ˆμ˜ μ‹€μ œ μž‘μ—…μ„ μˆ˜ν–‰ν•©λ‹ˆλ‹€. 자율적이며, ν¬λ‘œμŠ€νŽ‘μ…”λ„ν•œ νŒ€μ΄λ‹€.
  • μŠ€ν”„λ¦°νŠΈ(Sprint): 슀크럼의 핡심이 λ˜λŠ” μ‹œκ°„ λ°•μŠ€λ‘œ, νŒ€μ΄ μƒˆλ‘œμš΄ μ œν’ˆ 증뢄을 μ œκ³΅ν•˜κΈ° μœ„ν•΄ μ§‘μ€‘ν•˜λŠ” 기간이닀.
  • 일일 슀크럼(Daily Scrum): 맀일 μ§„ν–‰λ˜λŠ” 짧은 회의둜, νŒ€ ꡬ성원이 κ·Έλ‚ μ˜ μž‘μ—…μ— λŒ€ν•΄ λ…Όμ˜ν•˜κ³ , μž₯애물을 κ³΅μœ ν•œλ‹€.
  • μŠ€ν”„λ¦°νŠΈ κ³„νš 회의(Sprint Planning Meeting): μŠ€ν”„λ¦°νŠΈκ°€ μ‹œμž‘λ  λ•Œ μ§„ν–‰λ˜λ©°, νŒ€μ΄ λ‹€μŒ μŠ€ν”„λ¦°νŠΈ λ™μ•ˆ μž‘μ—…ν•  ν•­λͺ©μ„ κ²°μ •ν•œλ‹€.
  • μŠ€ν”„λ¦°νŠΈ κ²€ν† (Sprint Review): μŠ€ν”„λ¦°νŠΈκ°€ 끝날 λ•Œ μ œν’ˆμ˜ 증뢄을 κ²€ν† ν•˜λŠ” νšŒμ˜μž…λ‹ˆλ‹€. μ΄λŠ” ν”Όλ“œλ°±μ„ μˆ˜μ§‘ν•˜κ³  λ‹€μŒ μŠ€ν”„λ¦°νŠΈμ— λŒ€ν•œ κ³„νšμ„ μ‘°μ •ν•˜λŠ” 데 도움이 λœλ‹€.
  • μŠ€ν”„λ¦°νŠΈ 회고(Sprint Retrospective): μŠ€ν”„λ¦°νŠΈ κ²€ν†  후에 μ§„ν–‰λ˜λ©°, νŒ€μ΄ 과정을 λ°˜μ„±ν•˜κ³  κ°œμ„ μ μ„ λ„μΆœν•˜λŠ” νšŒμ˜μ΄λ‹€.

6. API(Application Programming Interface, μ• ν”Œλ¦¬μΌ€μ΄μ…˜ ν”„λ‘œκ·Έλž˜λ° μΈν„°νŽ˜μ΄μŠ€)

API(Application Programming Interface, μ• ν”Œλ¦¬μΌ€μ΄μ…˜ ν”„λ‘œκ·Έλž˜λ° μΈν„°νŽ˜μ΄μŠ€) λŠ” λ‹€μ–‘ν•œ μ†Œν”„νŠΈμ›¨μ–΄ μ• ν”Œλ¦¬μΌ€μ΄μ…˜, μ‹œμŠ€ν…œ, 라이브러리 간에 μƒν˜Έμž‘μš©μ„ κ°€λŠ₯ν•˜κ²Œ ν•˜λŠ” κ·œμ•½ λ˜λŠ” μΈν„°νŽ˜μ΄μŠ€μ΄λ‹€.

APIλŠ” ν•œ ν”„λ‘œκ·Έλž¨μ΄ λ‹€λ₯Έ ν”„λ‘œκ·Έλž¨μ˜ κΈ°λŠ₯μ΄λ‚˜ 데이터에 μ ‘κ·Όν•  수 μžˆλ„λ‘ ν•΄μ£Όλ©°, 이λ₯Ό 톡해 κ°œλ°œμžλŠ” λ³΅μž‘ν•œ κΈ°λŠ₯을 직접 κ΅¬ν˜„ν•˜μ§€ μ•Šκ³ λ„ ν•΄λ‹Ή κΈ°λŠ₯을 μ‚¬μš©ν•  수 μžˆλ‹€. μ†Œν”„νŠΈμ›¨μ–΄ 개발의 핡심 μš”μ†Œλ‘œ, λ³΅μž‘ν•œ κΈ°λŠ₯κ³Ό μ„œλΉ„μŠ€λ₯Ό 쉽고 효율적으둜 μ‚¬μš©ν•  수 있게 ν•΄μ£ΌλŠ” μ€‘μš”ν•œ 도ꡬ이닀.

API의 μ£Όμš” κΈ°λŠ₯κ³Ό λͺ©μ 

  • μž¬μ‚¬μš©μ„±: APIλ₯Ό 톡해 κ°œλ°œμžλŠ” 기쑴에 개발된 κΈ°λŠ₯을 μž¬μ‚¬μš©ν•  수 있으며, μ΄λŠ” 개발 μ‹œκ°„κ³Ό λΉ„μš©μ„ μ ˆμ•½ν•˜λŠ” 데 도움이 λœλ‹€.
  • λͺ¨λ“ˆμ„±: APIλ₯Ό μ‚¬μš©ν•˜λ©΄ μ†Œν”„νŠΈμ›¨μ–΄λ₯Ό λͺ¨λ“ˆμ‹μœΌλ‘œ 섀계할 수 있으며, μ΄λŠ” μœ μ§€λ³΄μˆ˜μ™€ μ—…λ°μ΄νŠΈλ₯Ό 보닀 μ‰½κ²Œ λ§Œλ“ λ‹€.
  • 톡합과 μƒν˜Έμš΄μš©μ„±: λ‹€μ–‘ν•œ μ• ν”Œλ¦¬μΌ€μ΄μ…˜, μ‹œμŠ€ν…œ, μ„œλΉ„μŠ€ κ°„μ˜ 톡합을 μš©μ΄ν•˜κ²Œ ν•˜μ—¬, μ„œλ‘œ λ‹€λ₯Έ κΈ°μˆ μ„ μ‚¬μš©ν•˜λŠ” μ‹œμŠ€ν…œλ“€ μ‚¬μ΄μ˜ μƒν˜Έμš΄μš©μ„±μ„ ν–₯μƒμ‹œν‚¨λ‹€.
  • λ³΄μ•ˆ: APIλ₯Ό μ‚¬μš©ν•˜λ©΄ 데이터와 κΈ°λŠ₯에 λŒ€ν•œ 접근을 μ œμ–΄ν•˜κ³ , λ³΄μ•ˆ κ·œμΉ™κ³Ό 정책을 μ μš©ν•  수 μžˆλ‹€.

API의 μ’…λ₯˜

  • μ›Ή API: HTTP ν”„λ‘œν† μ½œμ„ μ‚¬μš©ν•˜μ—¬ μ›Ή μ„œλΉ„μŠ€μ™€ μƒν˜Έμž‘μš©ν•˜κΈ° μœ„ν•œ API둜, REST(Representational State Transfer), SOAP(Simple Object Access Protocol), GraphQL 등이 μžˆλ‹€.
  • 라이브러리 기반 API: νŠΉμ • ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄ λ˜λŠ” ν”Œλž«νΌμ— νŠΉν™”λœ API둜, κ°œλ°œμžκ°€ νŠΉμ • κΈ°λŠ₯을 κ΅¬ν˜„ν•  λ•Œ μ‚¬μš©ν•œλ‹€.
  • ν•˜λ“œμ›¨μ–΄ API: ν•˜λ“œμ›¨μ–΄μ™€ μƒν˜Έμž‘μš©ν•˜κΈ° μœ„ν•œ API둜, 운영 μ²΄μ œλ‚˜ λ“œλΌμ΄λ²„ μˆ˜μ€€μ—μ„œ ν•˜λ“œμ›¨μ–΄μ˜ κΈ°λŠ₯에 μ ‘κ·Όν•  수 있게 ν•œλ‹€.

API μ‚¬μš© μ˜ˆμ‹œ

  • μ†Œμ…œ λ―Έλ””μ–΄ 톡합: μ†Œμ…œ λ―Έλ””μ–΄ μ„œλΉ„μŠ€μ˜ APIλ₯Ό μ‚¬μš©ν•˜μ—¬ μ›Ήμ‚¬μ΄νŠΈλ‚˜ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ—μ„œ μ‚¬μš©μž 인증, μ½˜ν…μΈ  곡유 λ“±μ˜ κΈ°λŠ₯을 μ œκ³΅ν•  수 μžˆλ‹€.
  • 지도 μ„œλΉ„μŠ€: Google Maps APIλ₯Ό μ‚¬μš©ν•˜μ—¬ μ›Ήμ‚¬μ΄νŠΈλ‚˜ λͺ¨λ°”일 앱에 지도λ₯Ό ν‘œμ‹œν•˜κ³ , μœ„μΉ˜ 기반 μ„œλΉ„μŠ€λ₯Ό μ œκ³΅ν•  수 μžˆλ‹€.
  • 결제 μ‹œμŠ€ν…œ: PayPal, Stripe λ“±μ˜ 결제 μ„œλΉ„μŠ€ APIλ₯Ό 톡해 온라인 결제 κΈ°λŠ₯을 μ†μ‰½κ²Œ 톡합할 수 μžˆλ‹€.

참고 자료

⚠️ **GitHub.com Fallback** ⚠️