λͺ¨λ†€λ¦¬μŠ€μ—μ„œ λ§ˆμ΄ν¬λ‘œμ„œλΉ„μŠ€λ‘œμ˜ μ „ν™˜: 역사와 μ‹€μ œ

이 κΈ°μ‚¬μ—μ„œλŠ” μ œκ°€ μž‘μ—… 쀑인 ν”„λ‘œμ νŠΈκ°€ μ–΄λ–»κ²Œ λŒ€κ·œλͺ¨ λ‹¨μΌμ²΄μ—μ„œ λ§ˆμ΄ν¬λ‘œμ„œλΉ„μŠ€ μ„ΈνŠΈλ‘œ λ³€ν™˜λ˜μ—ˆλŠ”μ§€μ— λŒ€ν•΄ μ„€λͺ…ν•˜κ² μŠ΅λ‹ˆλ‹€.

이 ν”„λ‘œμ νŠΈμ˜ μ—­μ‚¬λŠ” κ½€ μ˜€λž˜μ „μΈ 2000λ…„ μ΄ˆμ— μ‹œμž‘λ˜μ—ˆμŠ΅λ‹ˆλ‹€. 첫 번째 버전은 Visual Basic 6으둜 μž‘μ„±λ˜μ—ˆμŠ΅λ‹ˆλ‹€. μ‹œκ°„μ΄ μ§€λ‚˜λ©΄μ„œ IDEκ°€ μ–Έμ–΄ μžμ²΄κ°€ μ œλŒ€λ‘œ κ°œλ°œλ˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€. 2000λ…„λŒ€ λ§μ—λŠ” λ”μš± μœ λ§ν•œ C#으둜 μ „ν™˜ν•˜κΈ°λ‘œ κ²°μ •λ˜μ—ˆμŠ΅λ‹ˆλ‹€. μƒˆ 버전은 이전 λ²„μ „μ˜ κ°œμ •νŒκ³Ό λ³‘ν–‰ν•˜μ—¬ μž‘μ„±λ˜μ—ˆμœΌλ©° 점차적으둜 .NETμ—μ„œ 점점 더 λ§Žμ€ μ½”λ“œκ°€ μž‘μ„±λ˜μ—ˆμŠ΅λ‹ˆλ‹€. C#의 λ°±μ—”λ“œλŠ” μ²˜μŒμ—λŠ” μ„œλΉ„μŠ€ μ•„ν‚€ν…μ²˜μ— 쀑점을 λ‘μ—ˆμ§€λ§Œ 개발 μ€‘μ—λŠ” 둜직이 ν¬ν•¨λœ 곡용 라이브러리λ₯Ό μ‚¬μš©ν•˜κ³  μ„œλΉ„μŠ€κ°€ 단일 ν”„λ‘œμ„ΈμŠ€μ—μ„œ μ‹œμž‘λ˜μ—ˆμŠ΅λ‹ˆλ‹€. κ·Έ κ²°κ³Ό μš°λ¦¬κ°€ "μ„œλΉ„μŠ€ λͺ¨λ†€λ¦¬μŠ€"라고 λΆ€λ₯΄λŠ” μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ΄ νƒ„μƒν–ˆμŠ΅λ‹ˆλ‹€.

이 μ‘°ν•©μ˜ λͺ‡ κ°€μ§€ μž₯점 쀑 ν•˜λ‚˜λŠ” μ„œλΉ„μŠ€κ°€ μ™ΈλΆ€ APIλ₯Ό 톡해 μ„œλ‘œ ν˜ΈμΆœν•  수 μžˆλ‹€λŠ” κ²ƒμž…λ‹ˆλ‹€. 보닀 μ •ν™•ν•œ μ„œλΉ„μŠ€, 그리고 미래의 λ§ˆμ΄ν¬λ‘œμ„œλΉ„μŠ€ μ•„ν‚€ν…μ²˜λ‘œμ˜ μ „ν™˜μ„ μœ„ν•΄μ„œλŠ” λͺ…ν™•ν•œ μ „μ œ 쑰건이 μžˆμ—ˆμŠ΅λ‹ˆλ‹€.

μš°λ¦¬λŠ” 2015년경에 λΆ„ν•΄ μž‘μ—…μ„ μ‹œμž‘ν–ˆμŠ΅λ‹ˆλ‹€. μš°λ¦¬λŠ” 아직 이상적인 μƒνƒœμ— λ„λ‹¬ν•˜μ§€ λͺ»ν–ˆμŠ΅λ‹ˆλ‹€. λŒ€κ·œλͺ¨ ν”„λ‘œμ νŠΈμ—λŠ” 아직 λͺ¨λ†€λ¦¬μŠ€λΌκ³  ν•  수 μ—†λŠ” 뢀뢄이 μžˆμ§€λ§Œ λ§ˆμ΄ν¬λ‘œμ„œλΉ„μŠ€μ²˜λŸΌ 보이지도 μ•ŠμŠ΅λ‹ˆλ‹€. κ·ΈλŸΌμ—λ„ λΆˆκ΅¬ν•˜κ³  진전은 μƒλ‹Ήν•©λ‹ˆλ‹€.
κΈ°μ‚¬μ—μ„œ 이에 λŒ€ν•΄ μ΄μ•ΌκΈ°ν•˜κ² μŠ΅λ‹ˆλ‹€.

λͺ¨λ†€λ¦¬μŠ€μ—μ„œ λ§ˆμ΄ν¬λ‘œμ„œλΉ„μŠ€λ‘œμ˜ μ „ν™˜: 역사와 μ‹€μ œ

λ‚΄μš©

κΈ°μ‘΄ μ†”λ£¨μ…˜μ˜ μ•„ν‚€ν…μ²˜μ™€ 문제점


μ²˜μŒμ— μ•„ν‚€ν…μ²˜λŠ” λ‹€μŒκ³Ό κ°™μ•˜μŠ΅λ‹ˆλ‹€. UIλŠ” λ³„λ„μ˜ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ΄κ³  λͺ¨λ†€λ¦¬μ‹ 뢀뢄은 Visual Basic 6으둜 μž‘μ„±λ˜μ—ˆμœΌλ©° .NET μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ€ μƒλ‹Ήνžˆ 큰 λ°μ΄ν„°λ² μ΄μŠ€μ—μ„œ μž‘λ™ν•˜λŠ” κ΄€λ ¨ μ„œλΉ„μŠ€ μ„ΈνŠΈμž…λ‹ˆλ‹€.

이전 μ†”λ£¨μ…˜μ˜ 단점

단일 μ‹€νŒ¨ 지점
단일 μ‹€νŒ¨ 지점이 μžˆμ—ˆμŠ΅λ‹ˆλ‹€. .NET μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ΄ 단일 ν”„λ‘œμ„ΈμŠ€μ—μ„œ μ‹€ν–‰λ˜μ—ˆμŠ΅λ‹ˆλ‹€. λͺ¨λ“ˆ ν•˜λ‚˜λΌλ„ μ‹€νŒ¨ν•˜λ©΄ 전체 μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ΄ μ‹€νŒ¨ν•˜κ³  λ‹€μ‹œ μ‹œμž‘ν•΄μ•Ό ν–ˆμŠ΅λ‹ˆλ‹€. μš°λ¦¬λŠ” λ‹€μ–‘ν•œ μ‚¬μš©μžλ₯Ό μœ„ν•΄ μˆ˜λ§Žμ€ ν”„λ‘œμ„ΈμŠ€λ₯Ό μžλ™ν™”ν•˜κΈ° λ•Œλ¬Έμ— κ·Έ 쀑 ν•˜λ‚˜μ˜ 였λ₯˜λ‘œ 인해 λͺ¨λ“  μ‚¬λžŒμ΄ ν•œλ™μ•ˆ μž‘μ—…μ„ ν•  수 μ—†μ—ˆμŠ΅λ‹ˆλ‹€. μ†Œν”„νŠΈμ›¨μ–΄ 였λ₯˜κ°€ λ°œμƒν•œ 경우 백업도 도움이 λ˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€.

κ°œμ„  λŒ€κΈ°μ—΄
이 단점은 λ‹€μ†Œ μ‘°μ§μ μž…λ‹ˆλ‹€. 우리 μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ—λŠ” λ§Žμ€ 고객이 있으며, 그듀은 λͺ¨λ‘ κ°€λŠ₯ν•œ ν•œ 빨리 κ°œμ„ ν•˜κΈ°λ₯Ό μ›ν•©λ‹ˆλ‹€. μ΄μ „μ—λŠ” λ³‘λ ¬λ‘œ μ§„ν–‰ν•˜λŠ” 것이 λΆˆκ°€λŠ₯ν–ˆκ³ , λͺ¨λ“  고객이 쀄을 μ„œ μžˆμ—ˆμŠ΅λ‹ˆλ‹€. 이 ν”„λ‘œμ„ΈμŠ€λŠ” μžμ‹ μ˜ 업무가 κ°€μΉ˜ μžˆλ‹€λŠ” 것을 μž…μ¦ν•΄μ•Ό ν–ˆκΈ° λ•Œλ¬Έμ— κΈ°μ—…μ—κ²ŒλŠ” λΆ€μ •μ μ΄μ—ˆμŠ΅λ‹ˆλ‹€. 그리고 κ°œλ°œνŒ€μ€ 이 λŒ€κΈ°μ—΄μ„ μ •λ¦¬ν•˜λŠ” 데 μ‹œκ°„μ„ λ³΄λƒˆμŠ΅λ‹ˆλ‹€. 이λ₯Ό μœ„ν•΄μ„œλŠ” λ§Žμ€ μ‹œκ°„κ³Ό λ…Έλ ₯이 ν•„μš”ν–ˆκ³  κ²°κ΅­ μ œν’ˆμ€ μ›ν•˜λŠ” 만큼 λΉ λ₯΄κ²Œ λ³€κ²½λ˜μ§€ λͺ»ν–ˆμŠ΅λ‹ˆλ‹€.

졜적이 μ•„λ‹Œ λ¦¬μ†ŒμŠ€ μ‚¬μš©
단일 ν”„λ‘œμ„ΈμŠ€μ—μ„œ μ„œλΉ„μŠ€λ₯Ό ν˜ΈμŠ€νŒ…ν•  λ•Œ μš°λ¦¬λŠ” 항상 μ„œλ²„μ—μ„œ μ„œλ²„λ‘œ ꡬ성을 μ™„μ „νžˆ λ³΅μ‚¬ν–ˆμŠ΅λ‹ˆλ‹€. μš°λ¦¬λŠ” λ¦¬μ†ŒμŠ€λ₯Ό λ‚­λΉ„ν•˜μ§€ μ•Šκ³  배포 κ³„νšμ„ 보닀 μœ μ—°ν•˜κ²Œ μ œμ–΄ν•  수 μžˆλ„λ‘ κ°€μž₯ λΆ€ν•˜κ°€ 높은 μ„œλΉ„μŠ€λ₯Ό λ³„λ„λ‘œ λ°°μΉ˜ν•˜κ³  μ‹Άμ—ˆμŠ΅λ‹ˆλ‹€.

ν˜„λŒ€ κΈ°μˆ μ„ κ΅¬ν˜„ν•˜κΈ°κ°€ μ–΄λ ΅μŠ΅λ‹ˆλ‹€.
λͺ¨λ“  κ°œλ°œμžμ—κ²Œ μΉœμˆ™ν•œ λ¬Έμ œμž…λ‹ˆλ‹€. ν”„λ‘œμ νŠΈμ— μ΅œμ‹  κΈ°μˆ μ„ λ„μž…ν•˜κ³  μ‹Άμ§€λ§Œ κΈ°νšŒκ°€ μ—†μŠ΅λ‹ˆλ‹€. λŒ€κ·œλͺ¨ λͺ¨λ†€λ¦¬μ‹ μ†”λ£¨μ…˜μ„ μ‚¬μš©ν•˜λ©΄ μƒˆ 라이브러리둜의 μ „ν™˜μ€ 말할 것도 μ—†κ³  ν˜„μž¬ 라이브러리의 λͺ¨λ“  μ—…λ°μ΄νŠΈκ°€ λ‹€μ†Œ μ€‘μš”ν•˜μ§€ μ•Šμ€ μž‘μ—…μœΌλ‘œ λ³€ν•©λ‹ˆλ‹€. 이것이 λ‚­λΉ„λ˜λŠ” 신경보닀 더 λ§Žμ€ λ³΄λ„ˆμŠ€λ₯Ό κ°€μ Έμ˜¬ κ²ƒμ΄λΌλŠ” 것을 νŒ€ λ¦¬λ”μ—κ²Œ 증λͺ…ν•˜λŠ” 데 였랜 μ‹œκ°„μ΄ κ±Έλ¦½λ‹ˆλ‹€.

변경사항 λ°œν–‰μ˜ 어렀움
이것이 κ°€μž₯ μ‹¬κ°ν•œ λ¬Έμ œμ˜€μŠ΅λ‹ˆλ‹€. μš°λ¦¬λŠ” 두 달에 ν•œ λ²ˆμ”© 릴리슀λ₯Ό μΆœμ‹œν–ˆμŠ΅λ‹ˆλ‹€.
개발자의 ν…ŒμŠ€νŠΈμ™€ λ…Έλ ₯에도 λΆˆκ΅¬ν•˜κ³  각 λ¦΄λ¦¬μŠ€λŠ” 은행에 큰 μž¬μ•™μ΄ λ˜μ—ˆμŠ΅λ‹ˆλ‹€. νšŒμ‚¬μ—μ„œλŠ” 이번 μ£Όκ°€ μ‹œμž‘λ  λ•Œ 일뢀 κΈ°λŠ₯이 μž‘λ™ν•˜μ§€ μ•Šμ„ κ²ƒμ΄λΌλŠ” 점을 μ΄ν•΄ν–ˆμŠ΅λ‹ˆλ‹€. 그리고 κ°œλ°œμžλ“€μ€ 일주일 λ™μ•ˆ μ‹¬κ°ν•œ 사건이 기닀리고 μžˆμŒμ„ μ΄ν•΄ν–ˆμŠ΅λ‹ˆλ‹€.
λͺ¨λ‘κ°€ 상황을 λ°”κΎΈκ³  μ‹Άμ–΄ν–ˆμŠ΅λ‹ˆλ‹€.

λ§ˆμ΄ν¬λ‘œμ„œλΉ„μŠ€μ— λŒ€ν•œ κΈ°λŒ€


μ€€λΉ„λ˜λ©΄ κ΅¬μ„±μš”μ†Œ λ°œν–‰. μ†”λ£¨μ…˜μ„ λΆ„ν•΄ν•˜κ³  λ‹€μ–‘ν•œ ν”„λ‘œμ„ΈμŠ€λ₯Ό λΆ„λ¦¬ν•˜μ—¬ μ€€λΉ„κ°€ μ™„λ£Œλ˜λ©΄ ꡬ성 μš”μ†Œλ₯Ό μ œκ³΅ν•©λ‹ˆλ‹€.

μ†Œκ·œλͺ¨ μ œν’ˆ νŒ€. 였래된 단일체λ₯Ό μž‘μ—…ν•˜λŠ” λŒ€κ·œλͺ¨ νŒ€μ€ κ΄€λ¦¬ν•˜κΈ° μ–΄λ €μ› κΈ° λ•Œλ¬Έμ— μ΄λŠ” μ€‘μš”ν•©λ‹ˆλ‹€. μ΄λŸ¬ν•œ νŒ€μ€ μ—„κ²©ν•œ ν”„λ‘œμ„ΈμŠ€μ— 따라 μž‘μ—…ν•΄μ•Ό ν–ˆμ§€λ§Œ 더 λ§Žμ€ μ°½μ˜μ„±κ³Ό 독립성을 μ›ν–ˆμŠ΅λ‹ˆλ‹€. μ†Œκ·œλͺ¨ νŒ€λ§Œμ΄ 이λ₯Ό 감당할 수 μžˆμŠ΅λ‹ˆλ‹€.

λ³„λ„μ˜ ν”„λ‘œμ„ΈμŠ€λ‘œ μ„œλΉ„μŠ€λ₯Ό κ²©λ¦¬ν•©λ‹ˆλ‹€. μ΄μƒμ μœΌλ‘œλŠ” μ»¨ν…Œμ΄λ„ˆμ— κ²©λ¦¬ν•˜κ³  μ‹Άμ§€λ§Œ, .NET Framework둜 μž‘μ„±λœ λ§Žμ€ μ„œλΉ„μŠ€λŠ” νŠΉμ • ν™˜κ²½μ—μ„œλ§Œ μ‹€ν–‰λ©λ‹ˆλ‹€. Windows.NET Core 기반 μ„œλΉ„μŠ€λ“€μ΄ λ“±μž₯ν•˜κ³  μžˆμ§€λ§Œ, 아직은 κ·Έ μˆ˜κ°€ μ μŠ΅λ‹ˆλ‹€.

배포 μœ μ—°μ„±. μš°λ¦¬λŠ” μ½”λ“œκ°€ κ°•μ œν•˜λŠ” 방식이 μ•„λ‹Œ ν•„μš”ν•œ λ°©μ‹μœΌλ‘œ μ„œλΉ„μŠ€λ₯Ό κ²°ν•©ν•˜κ³  μ‹ΆμŠ΅λ‹ˆλ‹€.

μƒˆλ‘œμš΄ 기술의 μ‚¬μš©. 이것은 λͺ¨λ“  ν”„λ‘œκ·Έλž˜λ¨Έμ—κ²Œ ν₯미둜울 κ²ƒμž…λ‹ˆλ‹€.

μ „ν™˜ 문제


λ¬Όλ‘ , λͺ¨λ†€λ¦¬μŠ€λ₯Ό λ§ˆμ΄ν¬λ‘œμ„œλΉ„μŠ€λ‘œ λ‚˜λˆ„λŠ” 것이 쉽닀면 μ»¨νΌλŸ°μŠ€μ—μ„œ 이에 λŒ€ν•΄ μ΄μ•ΌκΈ°ν•˜κ±°λ‚˜ 기사λ₯Ό μ“Έ ν•„μš”κ°€ 없을 κ²ƒμž…λ‹ˆλ‹€. 이 κ³Όμ •μ—λŠ” λ§Žμ€ 함정이 μžˆλŠ”λ°, 우리λ₯Ό λ°©ν•΄ν–ˆλ˜ μ£Όμš” 함정을 μ„€λͺ…ν•˜κ² μŠ΅λ‹ˆλ‹€.

첫 번째 문제 λŒ€λΆ€λΆ„μ˜ λͺ¨λ†€λ¦¬μŠ€μ— μΌλ°˜μ μž„: λΉ„μ¦ˆλ‹ˆμŠ€ 둜직의 일관성. μš°λ¦¬λŠ” λͺ¨λ…Έλ¦¬μŠ€λ₯Ό μž‘μ„±ν•  λ•Œ λΆˆν•„μš”ν•œ μ½”λ“œλ₯Ό μž‘μ„±ν•˜μ§€ μ•ŠκΈ° μœ„ν•΄ 클래슀λ₯Ό μž¬μ‚¬μš©ν•˜κ³  μ‹ΆμŠ΅λ‹ˆλ‹€. 그리고 λ§ˆμ΄ν¬λ‘œμ„œλΉ„μŠ€λ‘œ μ „ν™˜ν•  λ•Œ 이것이 λ¬Έμ œκ°€ λ©λ‹ˆλ‹€. λͺ¨λ“  μ½”λ“œκ°€ μƒλ‹Ήνžˆ κΈ΄λ°€ν•˜κ²Œ κ²°ν•©λ˜μ–΄ 있고 μ„œλΉ„μŠ€λ₯Ό λΆ„λ¦¬ν•˜κΈ°κ°€ μ–΄λ ΅μŠ΅λ‹ˆλ‹€.

μž‘μ—… μ‹œμž‘ λ‹Ήμ‹œ μ €μž₯μ†Œμ—λŠ” 500개 μ΄μƒμ˜ ν”„λ‘œμ νŠΈμ™€ 700만 개 μ΄μƒμ˜ μ½”λ“œ 라인이 μžˆμ—ˆμŠ΅λ‹ˆλ‹€. 이건 κ½€ 큰 결정이고, 두 번째 문제. λ‹¨μˆœνžˆ κ°€μ Έμ™€μ„œ λ§ˆμ΄ν¬λ‘œμ„œλΉ„μŠ€λ‘œ λ‚˜λˆ„λŠ” 것은 λΆˆκ°€λŠ₯ν–ˆμŠ΅λ‹ˆλ‹€.

μ„Έ 번째 문제 β€” ν•„μš”ν•œ 인프라가 λΆ€μ‘±ν•©λ‹ˆλ‹€. 사싀 μš°λ¦¬λŠ” μ†ŒμŠ€ μ½”λ“œλ₯Ό μ„œλ²„μ— μˆ˜λ™μœΌλ‘œ λ³΅μ‚¬ν•˜κ³  μžˆμ—ˆμŠ΅λ‹ˆλ‹€.

λͺ¨λ†€λ¦¬μŠ€μ—μ„œ λ§ˆμ΄ν¬λ‘œμ„œλΉ„μŠ€λ‘œ μ΄λ™ν•˜λŠ” 방법


λ§ˆμ΄ν¬λ‘œμ„œλΉ„μŠ€ ν”„λ‘œλΉ„μ €λ‹

첫째, μš°λ¦¬λŠ” λ§ˆμ΄ν¬λ‘œμ„œλΉ„μŠ€ 뢄리가 반볡적인 ν”„λ‘œμ„ΈμŠ€λΌλŠ” 것을 μ¦‰μ‹œ 슀슀둜 νŒλ‹¨ν–ˆμŠ΅λ‹ˆλ‹€. μš°λ¦¬λŠ” 항상 λΉ„μ¦ˆλ‹ˆμŠ€ 문제λ₯Ό λ™μ‹œμ— κ°œλ°œν•΄μ•Ό ν–ˆμŠ΅λ‹ˆλ‹€. 이것을 기술적으둜 μ–΄λ–»κ²Œ κ΅¬ν˜„ν• μ§€λŠ” 이미 우리의 λ¬Έμ œμž…λ‹ˆλ‹€. κ·Έλž˜μ„œ μš°λ¦¬λŠ” 반볡적인 과정을 μ€€λΉ„ν–ˆμŠ΅λ‹ˆλ‹€. λŒ€κ·œλͺ¨ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ΄ 있고 μ²˜μŒμ— λ‹€μ‹œ μž‘μ„±ν•  μ€€λΉ„κ°€ λ˜μ–΄ μžˆμ§€ μ•Šμ€ κ²½μš°μ—λŠ” λ‹€λ₯Έ λ°©μ‹μœΌλ‘œ μž‘λ™ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

λ§ˆμ΄ν¬λ‘œμ„œλΉ„μŠ€λ₯Ό κ²©λ¦¬ν•˜κΈ° μœ„ν•΄ μ–΄λ–€ 방법을 μ‚¬μš©ν•©λ‹ˆκΉŒ?

첫 번째 방법 β€” κΈ°μ‘΄ λͺ¨λ“ˆμ„ μ„œλΉ„μŠ€λ‘œ μ΄λ™ν•©λ‹ˆλ‹€. 이 μ μ—μ„œ 운이 μ’‹μ•˜μŠ΅λ‹ˆλ‹€. WCF ν”„λ‘œν† μ½œμ„ μ‚¬μš©ν•˜μ—¬ μž‘λ™ν•˜λŠ” μ„œλΉ„μŠ€κ°€ 이미 λ“±λ‘λ˜μ–΄ μžˆμ—ˆμŠ΅λ‹ˆλ‹€. 그듀은 λ³„λ„μ˜ μ–΄μ…ˆλΈ”λ¦¬λ‘œ λΆ„λ¦¬λ˜μ—ˆμŠ΅λ‹ˆλ‹€. μš°λ¦¬λŠ” 각 λΉŒλ“œμ— μž‘μ€ μ‹€ν–‰ ν”„λ‘œκ·Έλž¨μ„ μΆ”κ°€ν•˜μ—¬ λ³„λ„λ‘œ ν¬νŒ…ν–ˆμŠ΅λ‹ˆλ‹€. μ΄λŠ” μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ μ„œλΉ„μŠ€μ™€ μ½˜μ†”λ‘œ μ‹€ν–‰ν•  수 μžˆλŠ” λ©‹μ§„ Topshelf 라이브러리λ₯Ό μ‚¬μš©ν•˜μ—¬ μž‘μ„±λ˜μ—ˆμŠ΅λ‹ˆλ‹€. μ†”λ£¨μ…˜μ— μΆ”κ°€ ν”„λ‘œμ νŠΈκ°€ ν•„μš”ν•˜μ§€ μ•ŠμœΌλ―€λ‘œ 디버깅에 νŽΈλ¦¬ν•©λ‹ˆλ‹€.

μ„œλΉ„μŠ€λŠ” 곡톡 μ–΄μ…ˆλΈ”λ¦¬λ₯Ό μ‚¬μš©ν•˜κ³  곡톡 λ°μ΄ν„°λ² μ΄μŠ€λ‘œ μž‘μ—…ν–ˆκΈ° λ•Œλ¬Έμ— λΉ„μ¦ˆλ‹ˆμŠ€ 논리에 따라 μ—°κ²°λ˜μ—ˆμŠ΅λ‹ˆλ‹€. μˆœμˆ˜ν•œ ν˜•νƒœλ‘œλŠ” λ§ˆμ΄ν¬λ‘œμ„œλΉ„μŠ€λΌκ³  λΆ€λ₯Ό 수 μ—†μŠ΅λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ μ΄λŸ¬ν•œ μ„œλΉ„μŠ€λ₯Ό μ„œλ‘œ λ‹€λ₯Έ ν”„λ‘œμ„ΈμŠ€μ—μ„œ λ³„λ„λ‘œ μ œκ³΅ν•  μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€. μ΄κ²ƒλ§ŒμœΌλ‘œλ„ μ„œλ‘œμ— λŒ€ν•œ 영ν–₯λ ₯을 쀄일 수 μžˆμ—ˆκ³ , 병렬 개발 λ¬Έμ œμ™€ 단일 μ‹€νŒ¨ 지점 λ¬Έμ œλ„ 쀄일 수 μžˆμ—ˆμŠ΅λ‹ˆλ‹€.

ν˜ΈμŠ€νŠΈμ™€μ˜ μ–΄μ…ˆλΈ”λ¦¬λŠ” Program 클래슀의 μ½”λ“œ ν•œ 쀄에 λΆˆκ³Όν•©λ‹ˆλ‹€. μš°λ¦¬λŠ” 보쑰 μˆ˜μ—…μ—μ„œ Topshelf μž‘μ—…μ„ μˆ¨κ²ΌμŠ΅λ‹ˆλ‹€.

namespace RBA.Services.Accounts.Host
{
   internal class Program
   {
      private static void Main(string[] args)
      {
        HostRunner<Accounts>.Run("RBA.Services.Accounts.Host");

       }
    }
}

λ§ˆμ΄ν¬λ‘œμ„œλΉ„μŠ€λ₯Ό ν• λ‹Ήν•˜λŠ” 두 번째 방법은 λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€. μƒˆλ‘œμš΄ 문제λ₯Ό ν•΄κ²°ν•˜κΈ° μœ„ν•΄ 그것듀을 λ§Œλ“­λ‹ˆλ‹€. λ™μ‹œμ— λͺ¨λ†€λ¦¬μŠ€κ°€ μ„±μž₯ν•˜μ§€ μ•ŠλŠ”λ‹€λ©΄ 이것은 이미 ν›Œλ₯­ν•œ 것이며 μ΄λŠ” μš°λ¦¬κ°€ μ˜¬λ°”λ₯Έ λ°©ν–₯으둜 움직이고 μžˆμŒμ„ μ˜λ―Έν•©λ‹ˆλ‹€. μƒˆλ‘œμš΄ 문제λ₯Ό ν•΄κ²°ν•˜κΈ° μœ„ν•΄ λ³„λ„μ˜ μ„œλΉ„μŠ€λ₯Ό λ§Œλ“€λ €κ³  λ…Έλ ₯ν–ˆμŠ΅λ‹ˆλ‹€. κ·ΈλŸ¬ν•œ κΈ°νšŒκ°€ μžˆλ‹€λ©΄ μš°λ¦¬λŠ” 자체 데이터 λͺ¨λΈ, 즉 λ³„λ„μ˜ λ°μ΄ν„°λ² μ΄μŠ€λ₯Ό μ™„μ „νžˆ κ΄€λ¦¬ν•˜λŠ” 더 λ§Žμ€ "ν‘œμ€€" μ„œλΉ„μŠ€λ₯Ό λ§Œλ“€μ—ˆμŠ΅λ‹ˆλ‹€.

λ§Žμ€ μ‚¬λžŒλ“€κ³Ό λ§ˆμ°¬κ°€μ§€λ‘œ μš°λ¦¬λ„ 인증 및 κΆŒν•œ λΆ€μ—¬ μ„œλΉ„μŠ€λ‘œ μ‹œμž‘ν–ˆμŠ΅λ‹ˆλ‹€. 그듀은 이것에 μ™„λ²½ν•©λ‹ˆλ‹€. 그듀은 독립적이며 μ›μΉ™μ μœΌλ‘œ λ³„λ„μ˜ 데이터 λͺ¨λΈμ„ κ°€μ§€κ³  μžˆμŠ΅λ‹ˆλ‹€. κ·Έλ“€ μžμ‹ μ€ 단일체와 μƒν˜Έ μž‘μš©ν•˜μ§€ μ•ŠμœΌλ©° 단지 λͺ‡ κ°€μ§€ 문제λ₯Ό ν•΄κ²°ν•˜κΈ° μœ„ν•΄ λ…Έλ ₯ν•©λ‹ˆλ‹€. μ΄λŸ¬ν•œ μ„œλΉ„μŠ€λ₯Ό μ‚¬μš©ν•˜λ©΄ μƒˆλ‘œμš΄ μ•„ν‚€ν…μ²˜λ‘œμ˜ μ „ν™˜μ„ μ‹œμž‘ν•˜κ³ , 인프라λ₯Ό λ””λ²„κΉ…ν•˜κ³ , λ„€νŠΈμ›Œν¬ λΌμ΄λΈŒλŸ¬λ¦¬μ™€ κ΄€λ ¨λœ λͺ‡ κ°€μ§€ μ ‘κ·Ό 방식을 μ‹œλ„ν•΄ λ³Ό 수 μžˆμŠ΅λ‹ˆλ‹€. 우리 μ‘°μ§μ—λŠ” 인증 μ„œλΉ„μŠ€λ₯Ό λ§Œλ“€ 수 μ—†λŠ” νŒ€μ΄ μ—†μŠ΅λ‹ˆλ‹€.

λ§ˆμ΄ν¬λ‘œμ„œλΉ„μŠ€λ₯Ό ν• λ‹Ήν•˜λŠ” μ„Έ 번째 λ°©λ²•μš°λ¦¬κ°€ μ‚¬μš©ν•˜λŠ” 것은 μš°λ¦¬μ—κ²Œ 쑰금 κ΅¬μ²΄μ μž…λ‹ˆλ‹€. μ΄λŠ” UI λ ˆμ΄μ–΄μ—μ„œ λΉ„μ¦ˆλ‹ˆμŠ€ λ‘œμ§μ„ μ œκ±°ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€. 우리의 κΈ°λ³Έ UI μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ€ λ°μŠ€ν¬ν†±μ΄λ©° λ°±μ—”λ“œμ™€ λ§ˆμ°¬κ°€μ§€λ‘œ C#으둜 μž‘μ„±λ˜μ—ˆμŠ΅λ‹ˆλ‹€. κ°œλ°œμžλŠ” 주기적으둜 μ‹€μˆ˜λ₯Ό μ €μ§€λ₯΄κ³  λ°±μ—”λ“œμ— μ‘΄μž¬ν•˜κ³  μž¬μ‚¬μš©λ˜μ–΄μ•Ό ν•˜λŠ” 둜직의 일뢀λ₯Ό UI둜 μ „μ†‘ν–ˆμŠ΅λ‹ˆλ‹€.

UI λΆ€λΆ„μ˜ μ½”λ“œμ—μ„œ μ‹€μ œ 예제λ₯Ό μ‚΄νŽ΄λ³΄λ©΄ 이 μ†”λ£¨μ…˜μ˜ λŒ€λΆ€λΆ„μ—λŠ” λ‹¨μˆœνžˆ UI 양식을 μž‘μ„±ν•˜λŠ” 것이 μ•„λ‹ˆλΌ λ‹€λ₯Έ ν”„λ‘œμ„ΈμŠ€μ—μ„œ μœ μš©ν•œ μ‹€μ œ λΉ„μ¦ˆλ‹ˆμŠ€ 둜직이 ν¬ν•¨λ˜μ–΄ μžˆμŒμ„ μ•Œ 수 μžˆμŠ΅λ‹ˆλ‹€.

λͺ¨λ†€λ¦¬μŠ€μ—μ„œ λ§ˆμ΄ν¬λ‘œμ„œλΉ„μŠ€λ‘œμ˜ μ „ν™˜: 역사와 μ‹€μ œ

μ‹€μ œ UI λ‘œμ§μ€ λ§ˆμ§€λ§‰ λͺ‡ μ€„μ—λ§Œ μžˆμŠ΅λ‹ˆλ‹€. μž¬μ‚¬μš©μ΄ κ°€λŠ₯ν•˜λ„λ‘ μ„œλ²„λ‘œ μ „μ†‘ν•˜μ—¬ UIλ₯Ό 쀄이고 μ˜¬λ°”λ₯Έ μ•„ν‚€ν…μ²˜λ₯Ό κ΅¬ν˜„ν–ˆμŠ΅λ‹ˆλ‹€.

λ§ˆμ΄ν¬λ‘œμ„œλΉ„μŠ€λ₯Ό λΆ„λ¦¬ν•˜λŠ” λ„€ 번째이자 κ°€μž₯ μ€‘μš”ν•œ 방법λͺ¨λ†€λ¦¬μŠ€λ₯Ό 쀄일 수 μžˆλŠ” 방법은 처리λ₯Ό 톡해 κΈ°μ‘΄ μ„œλΉ„μŠ€λ₯Ό μ œκ±°ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€. κΈ°μ‘΄ λͺ¨λ“ˆμ„ μžˆλŠ” κ·ΈλŒ€λ‘œ κΊΌλ‚΄λ©΄ κ²°κ³Όκ°€ 항상 개발자의 λ§ˆμŒμ— λ“€μ§€ μ•Šμ„ μˆ˜λ„ 있고, κΈ°λŠ₯이 λ§Œλ“€μ–΄μ§„ 이후 λΉ„μ¦ˆλ‹ˆμŠ€ ν”„λ‘œμ„ΈμŠ€κ°€ ꡬ식이 될 μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€. λΉ„μ¦ˆλ‹ˆμŠ€ μš”κ΅¬ 사항이 λŠμž„μ—†μ΄ λ³€ν™”ν•˜κΈ° λ•Œλ¬Έμ— λ¦¬νŒ©ν† λ§μ„ 톡해 μƒˆλ‘œμš΄ λΉ„μ¦ˆλ‹ˆμŠ€ ν”„λ‘œμ„ΈμŠ€λ₯Ό 지원할 수 μžˆμŠ΅λ‹ˆλ‹€. μ†ŒμŠ€ μ½”λ“œλ₯Ό κ°œμ„ ν•˜κ³ , μ•Œλ €μ§„ 결함을 μ œκ±°ν•˜κ³ , 더 λ‚˜μ€ 데이터 λͺ¨λΈμ„ λ§Œλ“€ 수 μžˆμŠ΅λ‹ˆλ‹€. λ§Žμ€ ν˜œνƒμ΄ λ°œμƒν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€.

μ„œλΉ„μŠ€μ™€ 처리λ₯Ό λΆ„λ¦¬ν•˜λŠ” 것은 μ œν•œλœ μ»¨ν…μŠ€νŠΈμ˜ κ°œλ…κ³Ό λΆˆκ°€λΆ„μ˜ 관계가 μžˆμŠ΅λ‹ˆλ‹€. 이것은 Domain Driven Design의 κ°œλ…μž…λ‹ˆλ‹€. 단일 μ–Έμ–΄μ˜ λͺ¨λ“  μš©μ–΄κ°€ κ³ μœ ν•˜κ²Œ μ •μ˜λ˜μ–΄ μžˆλŠ” 도메인 λͺ¨λΈμ˜ ν•œ 뢀뢄을 μ˜λ―Έν•©λ‹ˆλ‹€. λ³΄ν—˜κ³Ό μ²­κ΅¬μ„œμ˜ λ§₯락을 예둜 λ“€μ–΄ μ‚΄νŽ΄λ³΄κ² μŠ΅λ‹ˆλ‹€. μš°λ¦¬λŠ” λͺ¨λ†€λ¦¬μ‹ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ κ°–κ³  있으며 λ³΄ν—˜ 계정을 μ‚¬μš©ν•˜μ—¬ μž‘μ—…ν•΄μ•Ό ν•©λ‹ˆλ‹€. κ°œλ°œμžκ°€ λ‹€λ₯Έ μ–΄μ…ˆλΈ”λ¦¬μ—μ„œ κΈ°μ‘΄ Account 클래슀λ₯Ό μ°Ύμ•„ 이λ₯Ό Insurance ν΄λž˜μŠ€μ—μ„œ μ°Έμ‘°ν•˜λ©΄ μž‘μ—… μ½”λ“œκ°€ 생성될 κ²ƒμœΌλ‘œ μ˜ˆμƒν•©λ‹ˆλ‹€. DRY 원칙이 μ‘΄μ€‘λ˜λ©° κΈ°μ‘΄ μ½”λ“œλ₯Ό μ‚¬μš©ν•˜λ©΄ μž‘μ—…μ΄ 더 λΉ λ₯΄κ²Œ μ™„λ£Œλ©λ‹ˆλ‹€.

결과적으둜 계정과 λ³΄ν—˜μ˜ λ§₯락이 μ—°κ²°λ˜μ–΄ 있음이 λ°ν˜€μ‘ŒμŠ΅λ‹ˆλ‹€. μƒˆλ‘œμš΄ μš”κ΅¬ 사항이 λ‚˜νƒ€λ‚˜λ©΄ μ΄λŸ¬ν•œ 결합은 κ°œλ°œμ„ λ°©ν•΄ν•˜μ—¬ 이미 λ³΅μž‘ν•œ λΉ„μ¦ˆλ‹ˆμŠ€ λ…Όλ¦¬μ˜ λ³΅μž‘μ„±μ„ μ¦κ°€μ‹œν‚΅λ‹ˆλ‹€. 이 문제λ₯Ό ν•΄κ²°ν•˜λ €λ©΄ μ½”λ“œμ—μ„œ μ»¨ν…μŠ€νŠΈ κ°„μ˜ 경계λ₯Ό μ°Ύμ•„ μœ„λ°˜ 사항을 μ œκ±°ν•΄μ•Ό ν•©λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, λ³΄ν—˜μ˜ 경우 20자리 쀑앙은행 κ³„μ’Œλ²ˆν˜Έμ™€ κ³„μ’Œ κ°œμ„€ λ‚ μ§œλ§ŒμœΌλ‘œ μΆ©λΆ„ν•  κ°€λŠ₯성이 λ†’μŠ΅λ‹ˆλ‹€.

μ΄λŸ¬ν•œ μ œν•œλœ μ»¨ν…μŠ€νŠΈλ₯Ό μ„œλ‘œ λΆ„λ¦¬ν•˜κ³  λͺ¨λ†€λ¦¬μ‹ μ†”λ£¨μ…˜μ—μ„œ λ§ˆμ΄ν¬λ‘œμ„œλΉ„μŠ€λ₯Ό λΆ„λ¦¬ν•˜λŠ” ν”„λ‘œμ„ΈμŠ€λ₯Ό μ‹œμž‘ν•˜κΈ° μœ„ν•΄ μš°λ¦¬λŠ” μ• ν”Œλ¦¬μΌ€μ΄μ…˜ λ‚΄μ—μ„œ μ™ΈλΆ€ APIλ₯Ό μƒμ„±ν•˜λŠ” λ“±μ˜ μ ‘κ·Ό 방식을 μ‚¬μš©ν–ˆμŠ΅λ‹ˆλ‹€. 일뢀 λͺ¨λ“ˆμ΄ λ§ˆμ΄ν¬λ‘œμ„œλΉ„μŠ€κ°€ λ˜μ–΄μ•Ό ν•˜κ³  ν”„λ‘œμ„ΈμŠ€ λ‚΄μ—μ„œ μ–΄λ–»κ²Œλ“  μˆ˜μ •λ˜μ–΄μ•Ό ν•œλ‹€λŠ” 것을 μ•Œκ³  μžˆλ‹€λ©΄ μ™ΈλΆ€ ν˜ΈμΆœμ„ 톡해 λ‹€λ₯Έ μ œν•œλœ μ»¨ν…μŠ€νŠΈμ— μ†ν•˜λŠ” λ‘œμ§μ„ μ¦‰μ‹œ ν˜ΈμΆœν–ˆμŠ΅λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄ REST λ˜λŠ” WCFλ₯Ό 톡해.

μš°λ¦¬λŠ” λΆ„μ‚° νŠΈλžœμž­μ…˜μ΄ ν•„μš”ν•œ μ½”λ“œλ₯Ό ν”Όν•˜μ§€ μ•Šκ² λ‹€κ³  ꡳ게 κ²°μ‹¬ν–ˆμŠ΅λ‹ˆλ‹€. 우리의 경우 이 κ·œμΉ™μ„ λ”°λ₯΄λŠ” 것이 맀우 μ‰¬μš΄ κ²ƒμœΌλ‘œ λ‚˜νƒ€λ‚¬μŠ΅λ‹ˆλ‹€. μ—„κ²©ν•œ λΆ„μ‚° νŠΈλžœμž­μ…˜μ΄ μ‹€μ œλ‘œ ν•„μš”ν•œ 상황은 μ•„μ§κΉŒμ§€ λ°œμƒν•˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€. λͺ¨λ“ˆ κ°„μ˜ μ΅œμ’… 일관성은 μƒλ‹Ήνžˆ μΆ©λΆ„ν•©λ‹ˆλ‹€.

ꡬ체적인 예λ₯Ό μ‚΄νŽ΄ λ³΄κ² μŠ΅λ‹ˆλ‹€. μš°λ¦¬λŠ” "μ• ν”Œλ¦¬μΌ€μ΄μ…˜"의 μ—”ν„°ν‹°λ₯Ό μ²˜λ¦¬ν•˜λŠ” νŒŒμ΄ν”„λΌμΈμΈ μ˜€μΌ€μŠ€νŠΈλ ˆμ΄ν„°λΌλŠ” κ°œλ…μ„ κ°€μ§€κ³  μžˆμŠ΅λ‹ˆλ‹€. κ·ΈλŠ” 고객, κ³„μ’Œ 및 은행 μΉ΄λ“œλ₯Ό μ°¨λ‘€λ‘œ λ§Œλ“­λ‹ˆλ‹€. ν΄λΌμ΄μ–ΈνŠΈμ™€ 계정이 μ„±κ³΅μ μœΌλ‘œ μƒμ„±λ˜μ—ˆμœΌλ‚˜ μΉ΄λ“œ 생성에 μ‹€νŒ¨ν•œ 경우, μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ€ '성곡' μƒνƒœλ‘œ μ΄λ™ν•˜μ§€ μ•Šκ³  'μΉ΄λ“œ 생성 μ•ˆ 됨' μƒνƒœλ‘œ μœ μ§€λ©λ‹ˆλ‹€. μ•žμœΌλ‘œλŠ” λ°±κ·ΈλΌμš΄λ“œ ν™œλ™μ΄ 이λ₯Ό μ„ νƒν•˜μ—¬ μ™„λ£Œν•  κ²ƒμž…λ‹ˆλ‹€. ν•œλ™μ•ˆ μ‹œμŠ€ν…œμ΄ 일관성이 μ—†λŠ” μƒνƒœμ˜€μ§€λ§Œ, μš°λ¦¬λŠ” λŒ€μ²΄λ‘œ 이에 λ§Œμ‘±ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€.

λ°μ΄ν„°μ˜ 일뢀λ₯Ό μ§€μ†μ μœΌλ‘œ μ €μž₯ν•΄μ•Ό ν•˜λŠ” 상황이 λ°œμƒν•˜λ©΄ 이λ₯Ό ν•˜λ‚˜μ˜ ν”„λ‘œμ„ΈμŠ€λ‘œ μ²˜λ¦¬ν•˜κΈ° μœ„ν•΄ μ„œλΉ„μŠ€ 톡합을 μ§„ν–‰ν•  κ°€λŠ₯성이 λ†’μŠ΅λ‹ˆλ‹€.

λ§ˆμ΄ν¬λ‘œμ„œλΉ„μŠ€ ν• λ‹Ήμ˜ 예λ₯Ό μ‚΄νŽ΄λ³΄κ² μŠ΅λ‹ˆλ‹€. μ–΄λ–»κ²Œ 비ꡐ적 μ•ˆμ „ν•˜κ²Œ 생산에 νˆ¬μž…ν•  수 μžˆλ‚˜μš”? 이 μ˜ˆμ—λŠ” μ‹œμŠ€ν…œμ˜ 별도 뢀뢄인 κΈ‰μ—¬ μ„œλΉ„μŠ€ λͺ¨λ“ˆμ΄ 있으며, 이 λͺ¨λ“ˆμ˜ μ½”λ“œ μ„Ήμ…˜ 쀑 ν•˜λ‚˜λŠ” λ§ˆμ΄ν¬λ‘œμ„œλΉ„μŠ€λ₯Ό λ§Œλ“€κ³ μž ν•©λ‹ˆλ‹€.

λͺ¨λ†€λ¦¬μŠ€μ—μ„œ λ§ˆμ΄ν¬λ‘œμ„œλΉ„μŠ€λ‘œμ˜ μ „ν™˜: 역사와 μ‹€μ œ

μš°μ„ , μ½”λ“œλ₯Ό λ‹€μ‹œ μž‘μ„±ν•˜μ—¬ λ§ˆμ΄ν¬λ‘œμ„œλΉ„μŠ€λ₯Ό λ§Œλ“­λ‹ˆλ‹€. λ§Œμ‘±μŠ€λŸ½μ§€ λͺ»ν•œ 뢀뢄을 κ°œμ„ ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. μš°λ¦¬λŠ” 고객의 μƒˆλ‘œμš΄ λΉ„μ¦ˆλ‹ˆμŠ€ μš”κ΅¬ 사항을 κ΅¬ν˜„ν•©λ‹ˆλ‹€. UI와 λ°±μ—”λ“œ κ°„μ˜ 연결에 API κ²Œμ΄νŠΈμ›¨μ΄λ₯Ό μΆ”κ°€ν•˜μ—¬ 톡화 전달을 μ œκ³΅ν•©λ‹ˆλ‹€.

λͺ¨λ†€λ¦¬μŠ€μ—μ„œ λ§ˆμ΄ν¬λ‘œμ„œλΉ„μŠ€λ‘œμ˜ μ „ν™˜: 역사와 μ‹€μ œ

λ‹€μŒμœΌλ‘œ 이 ꡬ성을 μž‘λ™ν•˜λ„λ‘ μΆœμ‹œν•˜μ§€λ§Œ 파일럿 μƒνƒœμž…λ‹ˆλ‹€. λŒ€λΆ€λΆ„μ˜ μ‚¬μš©μžλŠ” μ—¬μ „νžˆ 였래된 λΉ„μ¦ˆλ‹ˆμŠ€ ν”„λ‘œμ„ΈμŠ€λ₯Ό μ‚¬μš©ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. μ‹ κ·œ μ‚¬μš©μžλ₯Ό μœ„ν•΄ μš°λ¦¬λŠ” 더 이상 이 ν”„λ‘œμ„ΈμŠ€λ₯Ό ν¬ν•¨ν•˜μ§€ μ•ŠλŠ” μƒˆλ‘œμš΄ λ²„μ „μ˜ λͺ¨λ†€λ¦¬μ‹ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ κ°œλ°œν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. 본질적으둜 μš°λ¦¬λŠ” 파일럿으둜 μž‘λ™ν•˜λŠ” λͺ¨λ†€λ¦¬μŠ€μ™€ λ§ˆμ΄ν¬λ‘œμ„œλΉ„μŠ€μ˜ 쑰합을 κ°€μ§€κ³  μžˆμŠ΅λ‹ˆλ‹€.

λͺ¨λ†€λ¦¬μŠ€μ—μ„œ λ§ˆμ΄ν¬λ‘œμ„œλΉ„μŠ€λ‘œμ˜ μ „ν™˜: 역사와 μ‹€μ œ

성곡적인 νŒŒμΌλŸΏμ„ 톡해 μš°λ¦¬λŠ” μƒˆλ‘œμš΄ ꡬ성이 μ‹€μ œλ‘œ μ‹€ν–‰ κ°€λŠ₯ν•˜λ‹€λŠ” 것을 μ΄ν•΄ν•˜κ³  λ°©μ •μ‹μ—μ„œ κΈ°μ‘΄ λͺ¨λ†€λ¦¬μŠ€λ₯Ό μ œκ±°ν•˜κ³  κΈ°μ‘΄ μ†”λ£¨μ…˜ λŒ€μ‹  μƒˆ ꡬ성을 남겨 λ‘˜ 수 μžˆμŠ΅λ‹ˆλ‹€.

λͺ¨λ†€λ¦¬μŠ€μ—μ„œ λ§ˆμ΄ν¬λ‘œμ„œλΉ„μŠ€λ‘œμ˜ μ „ν™˜: 역사와 μ‹€μ œ

μ „μ²΄μ μœΌλ‘œ μš°λ¦¬λŠ” λͺ¨λ†€λ¦¬μŠ€μ˜ μ†ŒμŠ€ μ½”λ“œλ₯Ό λΆ„ν• ν•˜κΈ° μœ„ν•΄ 거의 λͺ¨λ“  κΈ°μ‘΄ 방법을 μ‚¬μš©ν•©λ‹ˆλ‹€. 이듀 λͺ¨λ‘λ₯Ό 톡해 μš°λ¦¬λŠ” μ• ν”Œλ¦¬μΌ€μ΄μ…˜ λΆ€λΆ„μ˜ 크기λ₯Ό 쀄이고 이λ₯Ό μƒˆλ‘œμš΄ 라이브러리둜 λ³€ν™˜ν•˜μ—¬ 더 λ‚˜μ€ μ†ŒμŠ€ μ½”λ“œλ₯Ό λ§Œλ“€ 수 μžˆμŠ΅λ‹ˆλ‹€.

λ°μ΄ν„°λ² μ΄μŠ€ μž‘μ—…


λ°μ΄ν„°λ² μ΄μŠ€μ—λŠ” ν˜„μž¬ μŠ€ν‚€λ§ˆλΏλ§Œ μ•„λ‹ˆλΌ λˆ„μ λœ 기둝 데이터도 ν¬ν•¨λ˜μ–΄ 있기 λ•Œλ¬Έμ— μ†ŒμŠ€ μ½”λ“œλ³΄λ‹€ 더 λ‚˜μ˜κ²Œ 뢄할될 수 μžˆμŠ΅λ‹ˆλ‹€.

λ‹€λ₯Έ λ§Žμ€ λ°μ΄ν„°λ² μ΄μŠ€μ™€ λ§ˆμ°¬κ°€μ§€λ‘œ 우리 λ°μ΄ν„°λ² μ΄μŠ€μ—λŠ” 또 λ‹€λ₯Έ μ€‘μš”ν•œ 단점이 μžˆμ—ˆμŠ΅λ‹ˆλ‹€. λ°”λ‘œ 크기가 μ—„μ²­λ‚¬μŠ΅λ‹ˆλ‹€. 이 λ°μ΄ν„°λ² μ΄μŠ€λŠ” λͺ¨λ†€λ¦¬μŠ€μ˜ λ³΅μž‘ν•œ λΉ„μ¦ˆλ‹ˆμŠ€ 둜직과 λ‹€μ–‘ν•œ 경계 μ»¨ν…μŠ€νŠΈμ˜ ν…Œμ΄λΈ” 사이에 μΆ•μ λœ 관계에 따라 μ„€κ³„λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

우리의 경우 λͺ¨λ“  문제(λŒ€κ·œλͺ¨ λ°μ΄ν„°λ² μ΄μŠ€, λ§Žμ€ μ—°κ²°, λ•Œλ‘œλŠ” ν…Œμ΄λΈ” κ°„ 경계가 λΆˆλΆ„λͺ…함) 외에도 λ§Žμ€ λŒ€κ·œλͺ¨ ν”„λ‘œμ νŠΈμ—μ„œ λ°œμƒν•˜λŠ” 문제인 곡유 λ°μ΄ν„°λ² μ΄μŠ€ ν…œν”Œλ¦Ώ μ‚¬μš©μ΄ λ°œμƒν–ˆμŠ΅λ‹ˆλ‹€. λ°μ΄ν„°λŠ” 보기와 볡제λ₯Ό 톡해 ν…Œμ΄λΈ”μ—μ„œ κ°€μ Έμ˜¨ ν›„ 이 λ³΅μ œκ°€ ν•„μš”ν•œ λ‹€λ₯Έ μ‹œμŠ€ν…œμœΌλ‘œ μ „λ‹¬λ˜μ—ˆμŠ΅λ‹ˆλ‹€. 결과적으둜 ν…Œμ΄λΈ”μ΄ ν™œλ°œνžˆ μ‚¬μš©λ˜μ—ˆκΈ° λ•Œλ¬Έμ— λ³„λ„μ˜ μŠ€ν‚€λ§ˆλ‘œ 이동할 수 μ—†μ—ˆμŠ΅λ‹ˆλ‹€.

μ½”λ“œμ—μ„œ μ œν•œλœ μ»¨ν…μŠ€νŠΈλ‘œ λ™μΌν•œ 뢄할이 뢄리에 도움이 λ©λ‹ˆλ‹€. μ΄λŠ” 일반적으둜 λ°μ΄ν„°λ² μ΄μŠ€ μˆ˜μ€€μ—μ„œ 데이터λ₯Ό μ–΄λ–»κ²Œ λΆ„λ₯˜ν•˜λŠ”μ§€μ— λŒ€ν•œ κ½€ 쒋은 아이디어λ₯Ό μ œκ³΅ν•©λ‹ˆλ‹€. μš°λ¦¬λŠ” μ–΄λ–€ ν…Œμ΄λΈ”μ΄ ν•˜λ‚˜μ˜ μ œν•œλœ μ»¨ν…μŠ€νŠΈμ— μ†ν•˜κ³  μ–΄λ–€ ν…Œμ΄λΈ”μ΄ λ‹€λ₯Έ μ»¨ν…μŠ€νŠΈμ— μ†ν•˜λŠ”μ§€ μ΄ν•΄ν•©λ‹ˆλ‹€.

μš°λ¦¬λŠ” λ°μ΄ν„°λ² μ΄μŠ€ νŒŒν‹°μ…”λ‹μ— 두 κ°€μ§€ κΈ€λ‘œλ²Œ 방법, 즉 κΈ°μ‘΄ ν…Œμ΄λΈ” νŒŒν‹°μ…”λ‹κ³Ό 처리λ₯Ό ν†΅ν•œ νŒŒν‹°μ…”λ‹μ„ μ‚¬μš©ν–ˆμŠ΅λ‹ˆλ‹€.

κΈ°μ‘΄ ν…Œμ΄λΈ”μ„ λΆ„ν• ν•˜λŠ” 것은 데이터 ꡬ쑰가 μ–‘ν˜Έν•˜κ³  λΉ„μ¦ˆλ‹ˆμŠ€ μš”κ΅¬ 사항을 μΆ©μ‘±ν•˜λ©° λͺ¨λ‘κ°€ λ§Œμ‘±ν•  경우 μ‚¬μš©ν•˜λŠ” 쒋은 λ°©λ²•μž…λ‹ˆλ‹€. 이 경우 κΈ°μ‘΄ ν…Œμ΄λΈ”μ„ λ³„λ„μ˜ μŠ€ν‚€λ§ˆλ‘œ 뢄리할 수 μžˆμŠ΅λ‹ˆλ‹€.

λΉ„μ¦ˆλ‹ˆμŠ€ λͺ¨λΈμ΄ 크게 λ°”λ€Œκ³  ν…Œμ΄λΈ”μ΄ 더 이상 우리λ₯Ό μ „ν˜€ λ§Œμ‘±μ‹œν‚€μ§€ λͺ»ν•˜λŠ” 경우 처리 λΆ€μ„œκ°€ ν•„μš”ν•©λ‹ˆλ‹€.

κΈ°μ‘΄ ν…Œμ΄λΈ” λΆ„ν• . μš°λ¦¬λŠ” 무엇을 뢄리할지 κ²°μ •ν•΄μ•Ό ν•©λ‹ˆλ‹€. 이 지식이 μ—†μœΌλ©΄ 아무것도 μž‘λ™ν•˜μ§€ μ•ŠμœΌλ©° μ—¬κΈ°μ„œλŠ” μ½”λ“œμ—μ„œ μ œν•œλœ μ»¨ν…μŠ€νŠΈλ₯Ό λΆ„λ¦¬ν•˜λŠ” 것이 도움이 될 κ²ƒμž…λ‹ˆλ‹€. 일반적으둜 μ†ŒμŠ€ μ½”λ“œμ—μ„œ μ»¨ν…μŠ€νŠΈμ˜ 경계λ₯Ό 이해할 수 있으면 λΆ€μ„œ λͺ©λ‘μ— μ–΄λ–€ ν…Œμ΄λΈ”μ„ 포함해야 ν•˜λŠ”μ§€ λͺ…ν™•ν•΄μ§‘λ‹ˆλ‹€.

두 개의 λͺ¨λ†€λ¦¬μŠ€ λͺ¨λ“ˆμ΄ ν•˜λ‚˜μ˜ λ°μ΄ν„°λ² μ΄μŠ€μ™€ μƒν˜Έ μž‘μš©ν•˜λŠ” μ†”λ£¨μ…˜μ΄ μžˆλ‹€κ³  κ°€μ •ν•΄ λ³΄κ² μŠ΅λ‹ˆλ‹€. ν•˜λ‚˜μ˜ λͺ¨λ“ˆλ§Œ λΆ„λ¦¬λœ ν…Œμ΄λΈ” μ„Ήμ…˜κ³Ό μƒν˜Έ μž‘μš©ν•˜κ³  λ‹€λ₯Έ λͺ¨λ“ˆμ€ APIλ₯Ό 톡해 μƒν˜Έ μž‘μš©μ„ μ‹œμž‘ν•˜λŠ”μ§€ 확인해야 ν•©λ‹ˆλ‹€. μš°μ„ , APIλ₯Ό ν†΅ν•΄μ„œλ§Œ λ…ΉμŒλ§Œ ν•˜λ©΄ μΆ©λΆ„ν•©λ‹ˆλ‹€. μ΄λŠ” λ§ˆμ΄ν¬λ‘œμ„œλΉ„μŠ€μ˜ 독립성을 λ…Όν•˜κΈ° μœ„ν•œ ν•„μˆ˜ μ‘°κ±΄μž…λ‹ˆλ‹€. 큰 λ¬Έμ œκ°€ μ—†λŠ” ν•œ λ…μ„œ 연결은 μœ μ§€λ  수 μžˆμŠ΅λ‹ˆλ‹€.

λͺ¨λ†€λ¦¬μŠ€μ—μ„œ λ§ˆμ΄ν¬λ‘œμ„œλΉ„μŠ€λ‘œμ˜ μ „ν™˜: 역사와 μ‹€μ œ

λ‹€μŒ λ‹¨κ³„λŠ” 처리 여뢀에 관계없이 λΆ„λ¦¬λœ ν…Œμ΄λΈ”μ„ μ‚¬μš©ν•˜μ—¬ μž‘λ™ν•˜λŠ” μ½”λ“œ μ„Ήμ…˜μ„ λ³„λ„μ˜ λ§ˆμ΄ν¬λ‘œμ„œλΉ„μŠ€λ‘œ λΆ„λ¦¬ν•˜κ³  이λ₯Ό λ³„λ„μ˜ ν”„λ‘œμ„ΈμŠ€μΈ μ»¨ν…Œμ΄λ„ˆμ—μ„œ μ‹€ν–‰ν•  수 μžˆλ‹€λŠ” κ²ƒμž…λ‹ˆλ‹€. μ΄λŠ” λͺ¨λ†€λ¦¬μ‹ λ°μ΄ν„°λ² μ΄μŠ€ 및 이와 직접 κ΄€λ ¨λ˜μ§€ μ•Šμ€ ν…Œμ΄λΈ”μ— μ—°κ²°λœ λ³„λ„μ˜ μ„œλΉ„μŠ€μž…λ‹ˆλ‹€. λͺ¨λ†€λ¦¬μŠ€λŠ” μ—¬μ „νžˆ 뢄리 κ°€λŠ₯ν•œ λΆ€λΆ„κ³Ό 읽기λ₯Ό μœ„ν•΄ μƒν˜Έ μž‘μš©ν•©λ‹ˆλ‹€.

λͺ¨λ†€λ¦¬μŠ€μ—μ„œ λ§ˆμ΄ν¬λ‘œμ„œλΉ„μŠ€λ‘œμ˜ μ „ν™˜: 역사와 μ‹€μ œ

λ‚˜μ€‘μ— 이 연결을 μ œκ±°ν•  κ²ƒμž…λ‹ˆλ‹€. 즉, λΆ„λ¦¬λœ ν…Œμ΄λΈ”μ˜ λͺ¨λ†€λ¦¬μ‹ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ—μ„œ 데이터λ₯Ό μ½λŠ” 것도 API둜 μ „μ†‘λ©λ‹ˆλ‹€.

λͺ¨λ†€λ¦¬μŠ€μ—μ„œ λ§ˆμ΄ν¬λ‘œμ„œλΉ„μŠ€λ‘œμ˜ μ „ν™˜: 역사와 μ‹€μ œ

λ‹€μŒμœΌλ‘œ, μƒˆλ‘œμš΄ λ§ˆμ΄ν¬λ‘œμ„œλΉ„μŠ€λ§Œ μž‘λ™ν•˜λŠ” ν…Œμ΄λΈ”μ„ 일반 λ°μ΄ν„°λ² μ΄μŠ€μ—μ„œ μ„ νƒν•©λ‹ˆλ‹€. ν…Œμ΄λΈ”μ„ λ³„λ„μ˜ μŠ€ν‚€λ§ˆλ‘œ μ΄λ™ν•˜κ±°λ‚˜ λ³„λ„μ˜ 물리적 λ°μ΄ν„°λ² μ΄μŠ€λ‘œ 이동할 μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€. λ§ˆμ΄ν¬λ‘œμ„œλΉ„μŠ€μ™€ λͺ¨λ†€λ¦¬μ‹ λ°μ΄ν„°λ² μ΄μŠ€ μ‚¬μ΄μ—λŠ” μ—¬μ „νžˆ 읽기 연결이 μžˆμ§€λ§Œ κ±±μ •ν•  ν•„μš”κ°€ μ—†μŠ΅λ‹ˆλ‹€. 이 κ΅¬μ„±μ—μ„œλŠ” μƒλ‹Ήνžˆ μ˜€λž«λ™μ•ˆ 지속될 수 μžˆμŠ΅λ‹ˆλ‹€.

λͺ¨λ†€λ¦¬μŠ€μ—μ„œ λ§ˆμ΄ν¬λ‘œμ„œλΉ„μŠ€λ‘œμ˜ μ „ν™˜: 역사와 μ‹€μ œ

λ§ˆμ§€λ§‰ λ‹¨κ³„λŠ” λͺ¨λ“  연결을 μ™„μ „νžˆ μ œκ±°ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€. 이 경우 κΈ°λ³Έ λ°μ΄ν„°λ² μ΄μŠ€μ—μ„œ 데이터λ₯Ό λ§ˆμ΄κ·Έλ ˆμ΄μ…˜ν•΄μ•Ό ν•  μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€. λ•Œλ‘œλŠ” μ™ΈλΆ€ μ‹œμŠ€ν…œμ—μ„œ 볡제된 일뢀 λ°μ΄ν„°λ‚˜ 디렉터리λ₯Ό μ—¬λŸ¬ λ°μ΄ν„°λ² μ΄μŠ€μ— μž¬μ‚¬μš©ν•˜κ³  싢을 λ•Œκ°€ μžˆμŠ΅λ‹ˆλ‹€. 이것은 μš°λ¦¬μ—κ²Œ 주기적으둜 λ°œμƒν•©λ‹ˆλ‹€.

λͺ¨λ†€λ¦¬μŠ€μ—μ„œ λ§ˆμ΄ν¬λ‘œμ„œλΉ„μŠ€λ‘œμ˜ μ „ν™˜: 역사와 μ‹€μ œ

가곡뢀. 이 방법은 첫 번째 방법과 맀우 μœ μ‚¬ν•˜μ§€λ§Œ μˆœμ„œκ°€ λ°˜λŒ€μž…λ‹ˆλ‹€. μš°λ¦¬λŠ” APIλ₯Ό 톡해 λͺ¨λ†€λ¦¬μŠ€μ™€ μƒν˜Έ μž‘μš©ν•˜λŠ” μƒˆλ‘œμš΄ λ°μ΄ν„°λ² μ΄μŠ€μ™€ μƒˆλ‘œμš΄ λ§ˆμ΄ν¬λ‘œμ„œλΉ„μŠ€λ₯Ό μ¦‰μ‹œ ν• λ‹Ήν•©λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ λ™μ‹œμ— λ‚˜μ€‘μ— μ‚­μ œν•˜λ €λŠ” λ°μ΄ν„°λ² μ΄μŠ€ ν…Œμ΄λΈ” μ„ΈνŠΈλ„ 남아 μžˆμŠ΅λ‹ˆλ‹€. 더 이상 ν•„μš”ν•˜μ§€ μ•ŠμœΌλ©° μƒˆ λͺ¨λΈλ‘œ κ΅μ²΄ν–ˆμŠ΅λ‹ˆλ‹€.

λͺ¨λ†€λ¦¬μŠ€μ—μ„œ λ§ˆμ΄ν¬λ‘œμ„œλΉ„μŠ€λ‘œμ˜ μ „ν™˜: 역사와 μ‹€μ œ

이 κ³„νšμ΄ μž‘λ™ν•˜λ €λ©΄ μ „ν™˜ 기간이 ν•„μš”ν•  κ²ƒμž…λ‹ˆλ‹€.

그러면 두 κ°€μ§€ κ°€λŠ₯ν•œ μ ‘κ·Ό 방식이 μžˆμŠ΅λ‹ˆλ‹€.

처음으둜: μƒˆ λ°μ΄ν„°λ² μ΄μŠ€μ™€ κΈ°μ‘΄ λ°μ΄ν„°λ² μ΄μŠ€μ˜ λͺ¨λ“  데이터λ₯Ό λ³΅μ œν•©λ‹ˆλ‹€. 이 경우 데이터 쀑볡성과 동기화 λ¬Έμ œκ°€ λ°œμƒν•  수 μžˆμŠ΅λ‹ˆλ‹€. ν•˜μ§€λ§Œ μš°λ¦¬λŠ” 두 λͺ…μ˜ λ‹€λ₯Έ ν΄λΌμ΄μ–ΈνŠΈλ₯Ό κ°€μ§ˆ 수 μžˆμŠ΅λ‹ˆλ‹€. ν•˜λ‚˜λŠ” μƒˆ λ²„μ „μ—μ„œ μž‘λ™ν•˜κ³  λ‹€λ₯Έ ν•˜λ‚˜λŠ” 이전 λ²„μ „μ—μ„œ μž‘λ™ν•©λ‹ˆλ‹€.

초: 일뢀 λΉ„μ¦ˆλ‹ˆμŠ€ 기쀀에 따라 데이터λ₯Ό λ‚˜λˆ•λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, μ‹œμŠ€ν…œμ—λŠ” 이전 λ°μ΄ν„°λ² μ΄μŠ€μ— μ €μž₯된 5개의 μ œν’ˆμ΄ μžˆμ—ˆμŠ΅λ‹ˆλ‹€. μš°λ¦¬λŠ” μƒˆ λ°μ΄ν„°λ² μ΄μŠ€μ˜ μƒˆ λΉ„μ¦ˆλ‹ˆμŠ€ μž‘μ—… 내에 μ—¬μ„― 번째 ν•­λͺ©μ„ λ°°μΉ˜ν•©λ‹ˆλ‹€. ν•˜μ§€λ§Œ μš°λ¦¬λŠ” 이 데이터λ₯Ό λ™κΈ°ν™”ν•˜κ³  ν΄λΌμ΄μ–ΈνŠΈμ—κ²Œ μ–΄λ””μ„œ 무엇을 얻을지 보여쀄 API κ²Œμ΄νŠΈμ›¨μ΄κ°€ ν•„μš”ν•©λ‹ˆλ‹€.

두 μ ‘κ·Ό 방식 λͺ¨λ‘ μž‘λ™ν•˜λ―€λ‘œ 상황에 따라 μ„ νƒν•˜μ„Έμš”.

λͺ¨λ“  것이 μž‘λ™ν•œλ‹€κ³  ν™•μΈν•œ ν›„μ—λŠ” 이전 λ°μ΄ν„°λ² μ΄μŠ€ κ΅¬μ‘°μ—μ„œ μž‘λ™ν•˜λŠ” λͺ¨λ†€λ¦¬μŠ€ 뢀뢄을 λΉ„ν™œμ„±ν™”ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

λͺ¨λ†€λ¦¬μŠ€μ—μ„œ λ§ˆμ΄ν¬λ‘œμ„œλΉ„μŠ€λ‘œμ˜ μ „ν™˜: 역사와 μ‹€μ œ

λ§ˆμ§€λ§‰ λ‹¨κ³„λŠ” 이전 데이터 ꡬ쑰λ₯Ό μ œκ±°ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€.

λͺ¨λ†€λ¦¬μŠ€μ—μ„œ λ§ˆμ΄ν¬λ‘œμ„œλΉ„μŠ€λ‘œμ˜ μ „ν™˜: 역사와 μ‹€μ œ

μš”μ•½ν•˜μžλ©΄, λ°μ΄ν„°λ² μ΄μŠ€μ— λ¬Έμ œκ°€ μžˆλ‹€κ³  말할 수 μžˆμŠ΅λ‹ˆλ‹€. μ†ŒμŠ€ μ½”λ“œμ— λΉ„ν•΄ μž‘μ—…ν•˜κΈ°κ°€ μ–΄λ ΅κ³  κ³΅μœ ν•˜κΈ°κ°€ 더 μ–΄λ ΅μ§€λ§Œ μˆ˜ν–‰ν•  수 있고 μˆ˜ν–‰ν•΄μ•Ό ν•©λ‹ˆλ‹€. μš°λ¦¬λŠ” 이λ₯Ό 맀우 μ•ˆμ „ν•˜κ²Œ μˆ˜ν–‰ν•  수 μžˆλŠ” λͺ‡ κ°€μ§€ 방법을 μ°Ύμ•˜μ§€λ§Œ μ—¬μ „νžˆ μ†ŒμŠ€ μ½”λ“œλ³΄λ‹€ λ°μ΄ν„°λ‘œ μ‹€μˆ˜ν•˜κΈ°κ°€ 더 μ‰½μŠ΅λ‹ˆλ‹€.

μ†ŒμŠ€ μ½”λ“œ μž‘μ—…


이것이 λͺ¨λ†€λ¦¬μ‹ ν”„λ‘œμ νŠΈ 뢄석을 μ‹œμž‘ν–ˆμ„ λ•Œμ˜ μ†ŒμŠ€ μ½”λ“œ λ‹€μ΄μ–΄κ·Έλž¨μ˜ λͺ¨μŠ΅μž…λ‹ˆλ‹€.

λͺ¨λ†€λ¦¬μŠ€μ—μ„œ λ§ˆμ΄ν¬λ‘œμ„œλΉ„μŠ€λ‘œμ˜ μ „ν™˜: 역사와 μ‹€μ œ

λŒ€λž΅ 10개의 측으둜 λ‚˜λˆŒ 수 μžˆμŠ΅λ‹ˆλ‹€. μ΄λŠ” μ‹€ν–‰λœ λͺ¨λ“ˆ, ν”ŒλŸ¬κ·ΈμΈ, μ„œλΉ„μŠ€ 및 κ°œλ³„ ν™œλ™μ˜ κ³„μΈ΅μž…λ‹ˆλ‹€. μ‹€μ œλ‘œ μ΄λŠ” λͺ¨λ†€λ¦¬μ‹ μ†”λ£¨μ…˜ λ‚΄μ˜ μ§„μž…μ μ΄μ—ˆμŠ΅λ‹ˆλ‹€. λͺ¨λ‘ Common λ ˆμ΄μ–΄λ‘œ λ‹¨λ‹¨νžˆ λ°€λ΄‰λ˜μ–΄ μžˆμ—ˆμŠ΅λ‹ˆλ‹€. μ„œλΉ„μŠ€κ°€ κ³΅μœ ν•˜λŠ” λΉ„μ¦ˆλ‹ˆμŠ€ 둜직과 λ§Žμ€ 연결이 μžˆμ—ˆμŠ΅λ‹ˆλ‹€. 각 μ„œλΉ„μŠ€μ™€ ν”ŒλŸ¬κ·ΈμΈμ€ 규λͺ¨μ™€ 개발자의 양심에 따라 μ΅œλŒ€ XNUMX개 μ΄μƒμ˜ 곡톡 μ–΄μ…ˆλΈ”λ¦¬λ₯Ό μ‚¬μš©ν–ˆμŠ΅λ‹ˆλ‹€.

λ³„λ„λ‘œ μ‚¬μš©ν•  수 μžˆλŠ” 인프라 λΌμ΄λΈŒλŸ¬λ¦¬κ°€ μžˆλ‹€λŠ” 것은 ν–‰μš΄μ΄μ—ˆμŠ΅λ‹ˆλ‹€.

일뢀 곡톡 κ°œμ²΄κ°€ μ‹€μ œλ‘œ 이 계측에 μ†ν•˜μ§€ μ•Šκ³  인프라 라이브러리인 상황이 λ°œμƒν•˜λŠ” κ²½μš°λ„ μžˆμŠ΅λ‹ˆλ‹€. 이름을 λ°”κΎΈλ©΄ ν•΄κ²°λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

κ°€μž₯ 큰 κ΄€μ‹¬μ‚¬λŠ” μ œν•œλœ μ»¨ν…μŠ€νŠΈμ˜€μŠ΅λ‹ˆλ‹€. 3~4개의 μ»¨ν…μŠ€νŠΈκ°€ ν•˜λ‚˜μ˜ 곡톡 μ–΄μ…ˆλΈ”λ¦¬μ— ν˜Όν•©λ˜μ–΄ λ™μΌν•œ λΉ„μ¦ˆλ‹ˆμŠ€ κΈ°λŠ₯ λ‚΄μ—μ„œ μ„œλ‘œ μ‚¬μš©λ˜λŠ” 일이 λ°œμƒν–ˆμŠ΅λ‹ˆλ‹€. 이것이 μ–΄λ””μ—μ„œ μ–΄λ–€ 경계λ₯Ό 따라 뢄할될 수 μžˆλŠ”μ§€, 그리고 이 뢄할을 μ†ŒμŠ€ μ½”λ“œ μ–΄μ…ˆλΈ”λ¦¬μ— λ§€ν•‘ν•˜μ—¬ λ‹€μŒμ— μˆ˜ν–‰ν•  μž‘μ—…μ„ μ΄ν•΄ν•˜λŠ” 것이 ν•„μš”ν–ˆμŠ΅λ‹ˆλ‹€.

μš°λ¦¬λŠ” μ½”λ“œ λΆ„ν•  ν”„λ‘œμ„ΈμŠ€μ— λŒ€ν•œ λͺ‡ κ°€μ§€ κ·œμΉ™μ„ κ³΅μ‹ν™”ν–ˆμŠ΅λ‹ˆλ‹€.

첫 번째: μš°λ¦¬λŠ” 더 이상 μ„œλΉ„μŠ€, ν™œλ™ 및 ν”ŒλŸ¬κ·ΈμΈ 간에 λΉ„μ¦ˆλ‹ˆμŠ€ λ‘œμ§μ„ κ³΅μœ ν•˜κ³  μ‹Άμ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€. μš°λ¦¬λŠ” λ§ˆμ΄ν¬λ‘œμ„œλΉ„μŠ€ λ‚΄μ—μ„œ λΉ„μ¦ˆλ‹ˆμŠ€ λ‘œμ§μ„ λ…λ¦½μ μœΌλ‘œ λ§Œλ“€κ³  μ‹Άμ—ˆμŠ΅λ‹ˆλ‹€. λ°˜λ©΄μ— λ§ˆμ΄ν¬λ‘œμ„œλΉ„μŠ€λŠ” μ΄μƒμ μœΌλ‘œλŠ” μ™„μ „νžˆ λ…λ¦½μ μœΌλ‘œ μ‘΄μž¬ν•˜λŠ” μ„œλΉ„μŠ€λ‘œ κ°„μ£Όλ©λ‹ˆλ‹€. λ‚˜λŠ” 이 μ ‘κ·Ό 방식이 λ‹€μ†Œ 낭비적이며 λ‹¬μ„±ν•˜κΈ° μ–΄λ ΅λ‹€κ³  μƒκ°ν•©λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄ C#의 μ„œλΉ„μŠ€λŠ” μ–΄λ–€ κ²½μš°μ—λ„ ν‘œμ€€ λΌμ΄λΈŒλŸ¬λ¦¬μ— μ˜ν•΄ μ—°κ²°λ˜κΈ° λ•Œλ¬Έμž…λ‹ˆλ‹€. 우리 μ‹œμŠ€ν…œμ€ C#으둜 μž‘μ„±λ˜μ—ˆμœΌλ©° 아직 λ‹€λ₯Έ κΈ°μˆ μ„ μ‚¬μš©ν•˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€. λ”°λΌμ„œ μš°λ¦¬λŠ” 곡톡 기술 μ–΄μ…ˆλΈ”λ¦¬λ₯Ό μ‚¬μš©ν•  μ—¬μœ κ°€ μžˆλ‹€κ³  κ²°μ •ν–ˆμŠ΅λ‹ˆλ‹€. κ°€μž₯ μ€‘μš”ν•œ 것은 λΉ„μ¦ˆλ‹ˆμŠ€ 둜직의 일뢀가 ν¬ν•¨λ˜μ–΄ μžˆμ§€ μ•Šλ‹€λŠ” κ²ƒμž…λ‹ˆλ‹€. μ‚¬μš© 쀑인 ORM에 λŒ€ν•œ νŽΈλ¦¬ν•œ λž˜νΌκ°€ μžˆλŠ” 경우 이λ₯Ό μ„œλΉ„μŠ€ 간에 λ³΅μ‚¬ν•˜λŠ” 데 λΉ„μš©μ΄ 많이 λ“­λ‹ˆλ‹€.

우리 νŒ€μ€ 도메인 쀑심 λ””μžμΈμ˜ νŒ¬μ΄λ―€λ‘œ μ–΄λ‹ˆμ–Έ μ•„ν‚€ν…μ²˜λŠ” μš°λ¦¬μ—κ²Œ 맀우 μ ν•©ν–ˆμŠ΅λ‹ˆλ‹€. 우리 μ„œλΉ„μŠ€μ˜ 기본은 데이터 μ•‘μ„ΈμŠ€ 계측이 μ•„λ‹ˆλΌ λΉ„μ¦ˆλ‹ˆμŠ€ 둜직만 ν¬ν•¨ν•˜κ³  인프라와 μ—°κ²°λ˜μ§€ μ•ŠλŠ” 도메인 둜직이 ν¬ν•¨λœ μ–΄μ…ˆλΈ”λ¦¬μž…λ‹ˆλ‹€. λ™μ‹œμ— 도메인 μ–΄μ…ˆλΈ”λ¦¬λ₯Ό λ…λ¦½μ μœΌλ‘œ μˆ˜μ •ν•˜μ—¬ ν”„λ ˆμž„μ›Œν¬μ™€ κ΄€λ ¨λœ 문제λ₯Ό ν•΄κ²°ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

이 λ‹¨κ³„μ—μ„œ μš°λ¦¬λŠ” 첫 번째 μ‹¬κ°ν•œ λ¬Έμ œμ— μ§λ©΄ν–ˆμŠ΅λ‹ˆλ‹€. μ„œλΉ„μŠ€λŠ” ν•˜λ‚˜μ˜ 도메인 μ–΄μ…ˆλΈ”λ¦¬λ₯Ό μ°Έμ‘°ν•΄μ•Ό ν–ˆκ³ , μš°λ¦¬λŠ” 논리λ₯Ό λ…λ¦½μ μœΌλ‘œ λ§Œλ“€κ³  μ‹Άμ—ˆκ³ , μ—¬κΈ°μ„œλŠ” DRY 원칙이 우리λ₯Ό 크게 λ°©ν•΄ν–ˆμŠ΅λ‹ˆλ‹€. κ°œλ°œμžλ“€μ€ 쀑볡을 ν”Όν•˜κΈ° μœ„ν•΄ μΈμ ‘ν•œ μ–΄μ…ˆλΈ”λ¦¬μ˜ 클래슀λ₯Ό μž¬μ‚¬μš©ν•˜κΈ°λ₯Ό μ›ν–ˆκ³  κ·Έ κ²°κ³Ό 도메인이 λ‹€μ‹œ μ—°κ²°λ˜κΈ° μ‹œμž‘ν–ˆμŠ΅λ‹ˆλ‹€. κ²°κ³Όλ₯Ό λΆ„μ„ν•œ κ²°κ³Ό μ•„λ§ˆλ„ μ†ŒμŠ€μ½”λ“œ μ €μž₯μž₯치 μ˜μ—­μ—λ„ λ¬Έμ œκ°€ μžˆλŠ” κ²ƒμœΌλ‘œ νŒλ‹¨λ˜μ—ˆμŠ΅λ‹ˆλ‹€. μš°λ¦¬λŠ” λͺ¨λ“  μ†ŒμŠ€ μ½”λ“œλ₯Ό ν¬ν•¨ν•˜λŠ” λŒ€κ·œλͺ¨ μ €μž₯μ†Œλ₯Ό κ°–κ³  μžˆμ—ˆμŠ΅λ‹ˆλ‹€. 전체 ν”„λ‘œμ νŠΈμ— λŒ€ν•œ μ†”λ£¨μ…˜μ„ 둜컬 μ»΄ν“¨ν„°μ—μ„œ μ‘°λ¦½ν•˜κΈ°κ°€ 맀우 μ–΄λ €μ› μŠ΅λ‹ˆλ‹€. λ”°λΌμ„œ ν”„λ‘œμ νŠΈμ˜ 일뢀에 λŒ€ν•΄ λ³„λ„μ˜ μ†Œκ·œλͺ¨ μ†”λ£¨μ…˜μ΄ μƒμ„±λ˜μ—ˆμœΌλ©° 여기에 곡톡 λ˜λŠ” 도메인 μ–΄μ…ˆλΈ”λ¦¬λ₯Ό μΆ”κ°€ν•˜κ³  μž¬μ‚¬μš©ν•˜λŠ” 것을 κΈˆμ§€ν•˜λŠ” μ‚¬λžŒμ€ 아무도 μ—†μ—ˆμŠ΅λ‹ˆλ‹€. 이λ₯Ό ν—ˆμš©ν•˜μ§€ μ•ŠλŠ” μœ μΌν•œ λ„κ΅¬λŠ” μ½”λ“œ κ²€ν† μ˜€μŠ΅λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ λ•Œλ‘œλŠ” μ‹€νŒ¨ν•˜κΈ°λ„ ν–ˆμŠ΅λ‹ˆλ‹€.

그런 λ‹€μŒ λ³„λ„μ˜ 리포지토리가 μžˆλŠ” λͺ¨λΈλ‘œ μ΄λ™ν•˜κΈ° μ‹œμž‘ν–ˆμŠ΅λ‹ˆλ‹€. λΉ„μ¦ˆλ‹ˆμŠ€ λ‘œμ§μ€ 더 이상 μ„œλΉ„μŠ€μ—μ„œ μ„œλΉ„μŠ€λ‘œ 흐λ₯΄μ§€ μ•ŠμœΌλ©°, 도메인은 μ§„μ •μœΌλ‘œ 독립적이 λ˜μ—ˆμŠ΅λ‹ˆλ‹€. μ œν•œλœ μ»¨ν…μŠ€νŠΈκ°€ 더 λͺ…ν™•ν•˜κ²Œ μ§€μ›λ©λ‹ˆλ‹€. 인프라 라이브러리λ₯Ό μ–΄λ–»κ²Œ μž¬μ‚¬μš©ν•©λ‹ˆκΉŒ? μš°λ¦¬λŠ” 이λ₯Ό λ³„λ„μ˜ μ €μž₯μ†Œλ‘œ λΆ„λ¦¬ν•œ λ‹€μŒ Nuget νŒ¨ν‚€μ§€μ— λ„£μ—ˆκ³  이λ₯Ό Artifactory에 λ„£μ—ˆμŠ΅λ‹ˆλ‹€. λ³€κ²½ 사항이 있으면 μ–΄μ…ˆλΈ”λ¦¬ 및 κ²Œμ‹œκ°€ μžλ™μœΌλ‘œ μˆ˜ν–‰λ©λ‹ˆλ‹€.

λͺ¨λ†€λ¦¬μŠ€μ—μ„œ λ§ˆμ΄ν¬λ‘œμ„œλΉ„μŠ€λ‘œμ˜ μ „ν™˜: 역사와 μ‹€μ œ

우리 μ„œλΉ„μŠ€λŠ” μ™ΈλΆ€ 인프라 νŒ¨ν‚€μ§€μ™€ λ™μΌν•œ λ°©μ‹μœΌλ‘œ λ‚΄λΆ€ 인프라 νŒ¨ν‚€μ§€λ₯Ό μ°Έμ‘°ν•˜κΈ° μ‹œμž‘ν–ˆμŠ΅λ‹ˆλ‹€. Nugetμ—μ„œ μ™ΈλΆ€ 라이브러리λ₯Ό λ‹€μš΄λ‘œλ“œν•©λ‹ˆλ‹€. μ΄λŸ¬ν•œ νŒ¨ν‚€μ§€λ₯Ό λ°°μΉ˜ν•œ Artifactoryλ₯Ό μ‚¬μš©ν•˜κΈ° μœ„ν•΄ 두 개의 νŒ¨ν‚€μ§€ κ΄€λ¦¬μžλ₯Ό μ‚¬μš©ν–ˆμŠ΅λ‹ˆλ‹€. μ†Œκ·œλͺ¨ μ €μž₯μ†Œμ—μ„œλŠ” Nuget도 μ‚¬μš©ν–ˆμŠ΅λ‹ˆλ‹€. μ—¬λŸ¬ μ„œλΉ„μŠ€κ°€ μžˆλŠ” λ¦¬ν¬μ§€ν† λ¦¬μ—μ„œλŠ” λͺ¨λ“ˆ 간에 더 λ§Žμ€ 버전 일관성을 μ œκ³΅ν•˜λŠ” Paket을 μ‚¬μš©ν–ˆμŠ΅λ‹ˆλ‹€.

λͺ¨λ†€λ¦¬μŠ€μ—μ„œ λ§ˆμ΄ν¬λ‘œμ„œλΉ„μŠ€λ‘œμ˜ μ „ν™˜: 역사와 μ‹€μ œ

λ”°λΌμ„œ μ†ŒμŠ€ μ½”λ“œ μž‘μ—…, μ•„ν‚€ν…μ²˜ μ•½κ°„ λ³€κ²½ 및 μ €μž₯μ†Œ 뢄리λ₯Ό 톡해 μ„œλΉ„μŠ€λ₯Ό λ”μš± λ…λ¦½μ μœΌλ‘œ λ§Œλ“­λ‹ˆλ‹€.

인프라 문제


λ§ˆμ΄ν¬λ‘œμ„œλΉ„μŠ€λ‘œ μ „ν™˜ν•  λ•Œ λ°œμƒν•˜λŠ” λŒ€λΆ€λΆ„μ˜ 단점은 인프라와 κ΄€λ ¨λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€. μžλ™ν™”λœ 배포가 ν•„μš”ν•˜κ³  인프라λ₯Ό μ‹€ν–‰ν•˜λ €λ©΄ μƒˆλ‘œμš΄ λΌμ΄λΈŒλŸ¬λ¦¬κ°€ ν•„μš”ν•©λ‹ˆλ‹€.

ν™˜κ²½μ— μˆ˜λ™ μ„€μΉ˜

μ²˜μŒμ—λŠ” ν™˜κ²½μš© μ†”λ£¨μ…˜μ„ μˆ˜λ™μœΌλ‘œ μ„€μΉ˜ν–ˆμŠ΅λ‹ˆλ‹€. 이 ν”„λ‘œμ„ΈμŠ€λ₯Ό μžλ™ν™”ν•˜κΈ° μœ„ν•΄ μš°λ¦¬λŠ” CI/CD νŒŒμ΄ν”„λΌμΈμ„ λ§Œλ“€μ—ˆμŠ΅λ‹ˆλ‹€. μš°λ¦¬λŠ” λΉ„μ¦ˆλ‹ˆμŠ€ ν”„λ‘œμ„ΈμŠ€ κ΄€μ μ—μ„œ 지속적인 배포가 아직 ν—ˆμš©λ˜μ§€ μ•ŠκΈ° λ•Œλ¬Έμ— 지속적인 제곡 ν”„λ‘œμ„ΈμŠ€λ₯Ό μ„ νƒν–ˆμŠ΅λ‹ˆλ‹€. λ”°λΌμ„œ μž‘μ—… 전솑은 λ²„νŠΌμ„ μ‚¬μš©ν•˜μ—¬ μžλ™μœΌλ‘œ ν…ŒμŠ€νŠΈλ₯Ό μœ„ν•΄ μˆ˜ν–‰λ©λ‹ˆλ‹€.

λͺ¨λ†€λ¦¬μŠ€μ—μ„œ λ§ˆμ΄ν¬λ‘œμ„œλΉ„μŠ€λ‘œμ˜ μ „ν™˜: 역사와 μ‹€μ œ

μš°λ¦¬λŠ” μ†ŒμŠ€ μ½”λ“œ μ €μž₯을 μœ„ν•΄ Atlassian, Bitbucket을 μ‚¬μš©ν•˜κ³  λΉŒλ“œλ₯Ό μœ„ν•΄ Bambooλ₯Ό μ‚¬μš©ν•©λ‹ˆλ‹€. μš°λ¦¬λŠ” C#κ³Ό λ™μΌν•˜κΈ° λ•Œλ¬Έμ— Cake둜 λΉŒλ“œ 슀크립트λ₯Ό μž‘μ„±ν•˜λŠ” 것을 μ’‹μ•„ν•©λ‹ˆλ‹€. κΈ°μ„±ν’ˆ νŒ¨ν‚€μ§€λŠ” Artifactory둜 제곡되며 Ansible은 μžλ™μœΌλ‘œ ν…ŒμŠ€νŠΈ μ„œλ²„μ— λ„λ‹¬ν•œ ν›„ μ¦‰μ‹œ ν…ŒμŠ€νŠΈν•  수 μžˆμŠ΅λ‹ˆλ‹€.

λͺ¨λ†€λ¦¬μŠ€μ—μ„œ λ§ˆμ΄ν¬λ‘œμ„œλΉ„μŠ€λ‘œμ˜ μ „ν™˜: 역사와 μ‹€μ œ

λ³„λ„μ˜ λ‘œκΉ…


ν•œλ•Œ λͺ¨λ†€λ¦¬μŠ€μ˜ 아이디어 쀑 ν•˜λ‚˜λŠ” 곡유 λ‘œκΉ…μ„ μ œκ³΅ν•˜λŠ” κ²ƒμ΄μ—ˆμŠ΅λ‹ˆλ‹€. λ˜ν•œ λ””μŠ€ν¬μ— μžˆλŠ” κ°œλ³„ 둜그λ₯Ό μ–΄λ–»κ²Œ μ²˜λ¦¬ν• μ§€ 이해해야 ν–ˆμŠ΅λ‹ˆλ‹€. 우리의 λ‘œκ·ΈλŠ” ν…μŠ€νŠΈ 파일둜 κΈ°λ‘λ©λ‹ˆλ‹€. μš°λ¦¬λŠ” ν‘œμ€€ ELK μŠ€νƒμ„ μ‚¬μš©ν•˜κΈ°λ‘œ κ²°μ •ν–ˆμŠ΅λ‹ˆλ‹€. μš°λ¦¬λŠ” κ³΅κΈ‰μžλ₯Ό 톡해 ELK에 직접 κΈ°λ‘ν•˜μ§€ μ•Šμ•˜μ§€λ§Œ ν…μŠ€νŠΈ 둜그λ₯Ό μˆ˜μ •ν•˜κ³  좔적 IDλ₯Ό μ‹λ³„μžλ‘œ κΈ°λ‘ν•˜μ—¬ λ‚˜μ€‘μ— μ΄λŸ¬ν•œ 둜그λ₯Ό ꡬ문 뢄석할 수 μžˆλ„λ‘ μ„œλΉ„μŠ€ 이름을 μΆ”κ°€ν•˜κΈ°λ‘œ κ²°μ •ν–ˆμŠ΅λ‹ˆλ‹€.

λͺ¨λ†€λ¦¬μŠ€μ—μ„œ λ§ˆμ΄ν¬λ‘œμ„œλΉ„μŠ€λ‘œμ˜ μ „ν™˜: 역사와 μ‹€μ œ

Filebeatλ₯Ό μ‚¬μš©ν•˜λ©΄ λ‹€μŒ μœ„μΉ˜μ—μ„œ 둜그λ₯Ό μˆ˜μ§‘ν•  수 μžˆμŠ΅λ‹ˆλ‹€. μ„œλ²„κ·ΈλŸ° λ‹€μŒ ν•΄λ‹Ή 데이터λ₯Ό λ³€ν™˜ν•˜κ³ , Kibanaλ₯Ό μ‚¬μš©ν•˜μ—¬ UIμ—μ„œ 쿼리λ₯Ό κ΅¬μ„±ν•˜κ³ , μ„œλΉ„μŠ€ κ°„ 호좜이 μ–΄λ–»κ²Œ λΌμš°νŒ…λ˜μ—ˆλŠ”μ§€ ν™•μΈν•©λ‹ˆλ‹€. 좔적 IDλŠ” 이 μž‘μ—…μ— 맀우 μœ μš©ν•©λ‹ˆλ‹€.

κ΄€λ ¨ μ„œλΉ„μŠ€ ν…ŒμŠ€νŠΈ 및 디버깅


μ²˜μŒμ—λŠ” 개발 쀑인 μ„œλΉ„μŠ€λ₯Ό λ””λ²„κΉ…ν•˜λŠ” 방법을 μ™„μ „νžˆ μ΄ν•΄ν•˜μ§€ λͺ»ν–ˆμŠ΅λ‹ˆλ‹€. λͺ¨λ†€λ¦¬μŠ€λ₯Ό μ‚¬μš©ν•˜λ©΄ λͺ¨λ“  것이 간단해 둜컬 λ¨Έμ‹ μ—μ„œ μ‹€ν–‰ν–ˆμŠ΅λ‹ˆλ‹€. μ²˜μŒμ—λŠ” λ§ˆμ΄ν¬λ‘œμ„œλΉ„μŠ€λ₯Ό μ‚¬μš©ν•΄ λ™μΌν•œ μž‘μ—…μ„ μˆ˜ν–‰ν•˜λ €κ³  ν–ˆμ§€λ§Œ λ•Œλ‘œλŠ” ν•˜λ‚˜μ˜ λ§ˆμ΄ν¬λ‘œμ„œλΉ„μŠ€λ₯Ό μ™„μ „νžˆ μ‹œμž‘ν•˜λ €λ©΄ μ—¬λŸ¬ λ‹€λ₯Έ λ§ˆμ΄ν¬λ‘œμ„œλΉ„μŠ€λ₯Ό μ‹œμž‘ν•΄μ•Ό ν•˜λŠ”λ° μ΄λŠ” λΆˆνŽΈν•©λ‹ˆλ‹€. μš°λ¦¬λŠ” λ””λ²„κΉ…ν•˜λ €λŠ” μ„œλΉ„μŠ€λ§Œ 둜컬 μ‹œμŠ€ν…œμ— λ‚¨κ²¨λ‘λŠ” λͺ¨λΈλ‘œ 이동해야 ν•œλ‹€λŠ” 것을 κΉ¨λ‹¬μ•˜μŠ΅λ‹ˆλ‹€. λ‚˜λ¨Έμ§€ μ„œλΉ„μŠ€λŠ” prod와 ꡬ성이 μΌμΉ˜ν•˜λŠ” μ„œλ²„μ—μ„œ μ‚¬μš©λ©λ‹ˆλ‹€. 디버깅 ν›„, ν…ŒμŠ€νŠΈν•˜λŠ” λ™μ•ˆ 각 μž‘μ—…μ— λŒ€ν•΄ λ³€κ²½λœ μ„œλΉ„μŠ€λ§Œ ν…ŒμŠ€νŠΈ μ„œλ²„μ— λ°œκΈ‰λ©λ‹ˆλ‹€. λ”°λΌμ„œ μ†”λ£¨μ…˜μ€ ν–₯ν›„ ν”„λ‘œλ•μ…˜μ— λ‚˜νƒ€λ‚  ν˜•νƒœλ‘œ ν…ŒμŠ€νŠΈλ©λ‹ˆλ‹€.

ν”„λ‘œλ•μ…˜ λ²„μ „μ˜ μ„œλΉ„μŠ€λ§Œ μ‹€ν–‰ν•˜λŠ” μ„œλ²„κ°€ μžˆμŠ΅λ‹ˆλ‹€. μ΄λŸ¬ν•œ μ„œλ²„λŠ” 사고 λ°œμƒ μ‹œ 배포 μ „ 배솑 확인 및 λ‚΄λΆ€ κ΅μœ‘μ„ μœ„ν•΄ ν•„μš”ν•©λ‹ˆλ‹€.

널리 μ‚¬μš©λ˜λŠ” Specflow 라이브러리λ₯Ό μ‚¬μš©ν•˜μ—¬ μžλ™ν™”λœ ν…ŒμŠ€νŠΈ ν”„λ‘œμ„ΈμŠ€λ₯Ό μΆ”κ°€ν–ˆμŠ΅λ‹ˆλ‹€. Ansibleμ—μ„œ λ°°ν¬ν•œ ν›„ μ¦‰μ‹œ NUnit을 μ‚¬μš©ν•˜μ—¬ ν…ŒμŠ€νŠΈκ°€ μžλ™μœΌλ‘œ μ‹€ν–‰λ©λ‹ˆλ‹€. μž‘μ—… λ²”μœ„κ°€ μ™„μ „ μžλ™μ΄λ©΄ μˆ˜λ™ ν…ŒμŠ€νŠΈκ°€ ν•„μš”ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. λ•Œλ‘œλŠ” μΆ”κ°€ μˆ˜λ™ ν…ŒμŠ€νŠΈκ°€ μ—¬μ „νžˆ ν•„μš”ν•˜μ§€λ§Œ. μš°λ¦¬λŠ” Jira의 νƒœκ·Έλ₯Ό μ‚¬μš©ν•˜μ—¬ νŠΉμ • λ¬Έμ œμ— λŒ€ν•΄ μ‹€ν–‰ν•  ν…ŒμŠ€νŠΈλ₯Ό κ²°μ •ν•©λ‹ˆλ‹€.

λ˜ν•œ λΆ€ν•˜ ν…ŒμŠ€νŠΈμ— λŒ€ν•œ ν•„μš”μ„±μ΄ μ¦κ°€ν–ˆμœΌλ©° μ΄μ „μ—λŠ” λ“œλ¬Έ κ²½μš°μ—λ§Œ μˆ˜ν–‰λ˜μ—ˆμŠ΅λ‹ˆλ‹€. JMeterλ₯Ό μ‚¬μš©ν•˜μ—¬ ν…ŒμŠ€νŠΈλ₯Ό μ‹€ν–‰ν•˜κ³ , InfluxDBλ₯Ό μ‚¬μš©ν•˜μ—¬ 이λ₯Ό μ €μž₯ν•˜κ³ , Grafanaλ₯Ό μ‚¬μš©ν•˜μ—¬ ν”„λ‘œμ„ΈμŠ€ κ·Έλž˜ν”„λ₯Ό μž‘μ„±ν•©λ‹ˆλ‹€.

μš°λ¦¬λŠ” 무엇을 λ‹¬μ„±ν–ˆλ‚˜μš”?


첫째, '릴리슀'λΌλŠ” κ°œλ…μ„ μ—†μ•΄μŠ΅λ‹ˆλ‹€. 이 κ±°λŒ€ 기업이 ν”„λ‘œλ•μ…˜ ν™˜κ²½μ— λ°°ν¬λ˜μ–΄ μΌμ‹œμ μœΌλ‘œ λΉ„μ¦ˆλ‹ˆμŠ€ ν”„λ‘œμ„ΈμŠ€λ₯Ό μ€‘λ‹¨μ‹œμΌ°μ„ λ•Œ 1,5κ°œμ›”μ— 걸친 μ—„μ²­λ‚œ λ¦΄λ¦¬μŠ€κ°€ μ‚¬λΌμ‘ŒμŠ΅λ‹ˆλ‹€. μ΄μ œλŠ” 승인 ν›„ 운영되기 λ•Œλ¬Έμ— 평균 XNUMXμΌλ§ˆλ‹€ μ„œλΉ„μŠ€λ₯Ό λ°°ν¬ν•˜κ³  κ·Έλ£Ήν™”ν•©λ‹ˆλ‹€.

우리 μ‹œμŠ€ν…œμ—λŠ” 치λͺ…적인 였λ₯˜κ°€ μ—†μŠ΅λ‹ˆλ‹€. 버그가 μžˆλŠ” λ§ˆμ΄ν¬λ‘œμ„œλΉ„μŠ€λ₯Ό μΆœμ‹œν•˜λ©΄ 이와 κ΄€λ ¨λœ κΈ°λŠ₯이 μ€‘λ‹¨λ˜κ³  λ‹€λ₯Έ λͺ¨λ“  κΈ°λŠ₯은 영ν–₯을 λ°›μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. μ΄λŠ” μ‚¬μš©μž κ²½ν—˜μ„ 크게 ν–₯μƒμ‹œν‚΅λ‹ˆλ‹€.

배포 νŒ¨ν„΄μ„ μ œμ–΄ν•  수 μžˆμŠ΅λ‹ˆλ‹€. ν•„μš”ν•œ 경우 μ†”λ£¨μ…˜μ˜ λ‚˜λ¨Έμ§€ λΆ€λΆ„κ³Ό λ³„λ„λ‘œ μ„œλΉ„μŠ€ 그룹을 선택할 수 μžˆμŠ΅λ‹ˆλ‹€.

λ˜ν•œ λŒ€κ·œλͺ¨ κ°œμ„  λŒ€κΈ°μ—΄μ„ 톡해 문제λ₯Ό 크게 μ€„μ˜€μŠ΅λ‹ˆλ‹€. 이제 일뢀 μ„œλΉ„μŠ€λ₯Ό λ…λ¦½μ μœΌλ‘œ μž‘μ—…ν•˜λŠ” λ³„λ„μ˜ μ œν’ˆ νŒ€μ΄ μžˆμŠ΅λ‹ˆλ‹€. 슀크럼 ν”„λ‘œμ„ΈμŠ€λŠ” 이미 여기에 μ ν•©ν•©λ‹ˆλ‹€. νŠΉμ • νŒ€μ—λŠ” μž‘μ—…μ„ ν• λ‹Ήν•˜λŠ” λ³„λ„μ˜ μ œν’ˆ μ†Œμœ μžκ°€ μžˆμ„ 수 μžˆμŠ΅λ‹ˆλ‹€.

κ°œμš”

  • λ§ˆμ΄ν¬λ‘œμ„œλΉ„μŠ€λŠ” λ³΅μž‘ν•œ μ‹œμŠ€ν…œμ„ λΆ„ν•΄ν•˜λŠ” 데 맀우 μ ν•©ν•©λ‹ˆλ‹€. κ·Έ κ³Όμ •μ—μ„œ μš°λ¦¬λŠ” μ‹œμŠ€ν…œμ— 무엇이 μžˆλŠ”μ§€, μ œν•œλœ μ»¨ν…μŠ€νŠΈκ°€ 무엇인지, 경계가 어디에 μžˆλŠ”μ§€ μ΄ν•΄ν•˜κΈ° μ‹œμž‘ν•©λ‹ˆλ‹€. 이λ₯Ό 톡해 λͺ¨λ“ˆ 간에 κ°œμ„  사항을 μ˜¬λ°”λ₯΄κ²Œ λ°°ν¬ν•˜κ³  μ½”λ“œ ν˜Όλ™μ„ λ°©μ§€ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
  • λ§ˆμ΄ν¬λ‘œμ„œλΉ„μŠ€λŠ” 쑰직에 이점을 μ œκ³΅ν•©λ‹ˆλ‹€. μ’…μ’… μ•„ν‚€ν…μ²˜λ‘œλ§Œ μ–ΈκΈ‰λ˜μ§€λ§Œ λͺ¨λ“  μ•„ν‚€ν…μ²˜λŠ” λΉ„μ¦ˆλ‹ˆμŠ€ μš”κ΅¬ 사항을 ν•΄κ²°ν•˜λŠ” 데 ν•„μš”ν•˜λ©° κ·Έ μžμ²΄λ‘œλŠ” ν•„μš”ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. λ”°λΌμ„œ ν˜„μž¬ 슀크럼이 맀우 인기가 μžˆλ‹€λŠ” 점을 κ³ λ €ν•˜λ©΄ λ§ˆμ΄ν¬λ‘œμ„œλΉ„μŠ€λŠ” μ†Œκ·œλͺ¨ νŒ€μ˜ 문제λ₯Ό ν•΄κ²°ν•˜λŠ” 데 맀우 μ ν•©ν•˜λ‹€κ³  말할 수 μžˆμŠ΅λ‹ˆλ‹€.
  • λΆ„λ¦¬λŠ” 반볡적인 κ³Όμ •μž…λ‹ˆλ‹€. μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ κ°€μ Έμ™€μ„œ λ‹¨μˆœνžˆ λ§ˆμ΄ν¬λ‘œμ„œλΉ„μŠ€λ‘œ λ‚˜λˆŒ μˆ˜λŠ” μ—†μŠ΅λ‹ˆλ‹€. κ²°κ³Ό μ œν’ˆμ€ κΈ°λŠ₯ν•  κ°€λŠ₯성이 μ—†μŠ΅λ‹ˆλ‹€. λ§ˆμ΄ν¬λ‘œμ„œλΉ„μŠ€λ₯Ό μ „μš©μœΌλ‘œ μ‚¬μš©ν•˜λŠ” 경우 κΈ°μ‘΄ λ ˆκ±°μ‹œλ₯Ό λ‹€μ‹œ μž‘μ„±ν•˜λŠ” 것이 μ’‹μŠ΅λ‹ˆλ‹€. 즉, κΈ°λŠ₯κ³Ό 속도 μΈ‘λ©΄μ—μ„œ λΉ„μ¦ˆλ‹ˆμŠ€ μš”κ΅¬ 사항을 더 잘 μΆ©μ‘±ν•˜κ³  μ›ν•˜λŠ” μ½”λ“œλ‘œ λ°”κΎΈλŠ” 것이 μ’‹μŠ΅λ‹ˆλ‹€.

    μž‘μ€ μ£Όμ˜μ‚¬ν•­: λ§ˆμ΄ν¬λ‘œμ„œλΉ„μŠ€λ‘œ μ „ν™˜ν•˜λŠ” 데 λ“œλŠ” λΉ„μš©μ€ μƒλ‹Ήνžˆ ν½λ‹ˆλ‹€. 인프라 문제λ₯Ό ν˜Όμžμ„œ ν•΄κ²°ν•˜λŠ”λ° 였랜 μ‹œκ°„μ΄ κ±Έλ ΈμŠ΅λ‹ˆλ‹€. λ”°λΌμ„œ νŠΉμ • ν™•μž₯이 ν•„μš”ν•˜μ§€ μ•Šμ€ μ†Œκ·œλͺ¨ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ΄ 있고 νŒ€μ˜ 관심과 μ‹œκ°„μ„ 끌기 μœ„ν•΄ κ²½μŸν•˜λŠ” 고객이 λ§Žμ§€ μ•Šλ‹€λ©΄ λ§ˆμ΄ν¬λ‘œμ„œλΉ„μŠ€κ°€ ν˜„μž¬ ν•„μš”ν•œ 것이 아닐 μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€. κ½€ λΉ„μ‹Έμš”. λ§ˆμ΄ν¬λ‘œμ„œλΉ„μŠ€λ‘œ ν”„λ‘œμ„ΈμŠ€λ₯Ό μ‹œμž‘ν•˜λ©΄ μ²˜μŒμ—λŠ” λͺ¨λ†€λ¦¬μŠ€ 개발둜 λ™μΌν•œ ν”„λ‘œμ νŠΈλ₯Ό μ‹œμž‘ν•˜λŠ” 것보닀 λΉ„μš©μ΄ 더 λ†’μ•„μ§‘λ‹ˆλ‹€.

    PS μ’€ 더 감성적인 이야기(κ°œμΈμ μœΌλ‘œλŠ”) - 에 λ”°λ₯΄λ©΄ 링크.
    λ³΄κ³ μ„œμ˜ 전체 버전은 λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€.

좜처 : habr.com

DDoS 보호, VPS VDS μ„œλ²„κ°€ μžˆλŠ” μ‚¬μ΄νŠΈλ₯Ό μœ„ν•œ μ•ˆμ •μ μΈ ν˜ΈμŠ€νŒ… κ΅¬μž… πŸ”₯ DDoS 곡격 λ°©μ§€ κΈ°λŠ₯이 νƒ‘μž¬λœ μ•ˆμ •μ μΈ μ›Ήμ‚¬μ΄νŠΈ ν˜ΈμŠ€νŒ…, VPS 및 VDS μ„œλ²„λ₯Ό κ΅¬λ§€ν•˜μ„Έμš” | ProHoster