My Programs

μ˜€ν”ˆμ†ŒμŠ€ μ‚¬μš©μ— λŒ€ν•œ λΌμ΄μ„ μŠ€ 처리

JayKimπŸ™‚ 2024. 3. 11. 14:53

μ—¬κΈ°μ„œ λ§Œλ“  λ‚΄ ν”„λ‘œκ·Έλž¨λ“€(BerEditor, CertMan, CryptokiMan) 은 μ˜€ν”ˆμ†ŒμŠ€λ₯Ό μ΄μš©ν•˜μ—¬ λ§Œλ“€μ—ˆλ‹€.
μ˜€ν”ˆμ†ŒμŠ€μ˜ 경우 μ†ŒμŠ€λ₯Ό 자유둭게 μ°Έμ‘° ν•˜κ³  μ‚¬μš© ν•  수 μžˆμ§€λ§Œ ν”„λ‘œκ·Έλž¨μ„ λ§Œλ“€μ–΄μ„œ λ°°ν¬ν•˜λŠ” 경우
ν•΄λ‹Ή λΌμ΄μ„ μŠ€μ— 따라 μ§€μΌœμ•Ό ν•˜λŠ” 의무 사항이 쑴재 ν•˜λŠ” ν”„λ‘œκ·Έλž¨μ΄λ‹€.
(λ¬Όλ‘  개인적으둜만 μ‚¬μš©ν•˜λŠ” κ²½μš°λŠ” 의무 사항이 μ—†λ‹€. ν•˜μ§€λ§Œ 배포 ν•˜λŠ” 경우 μ§€μΌœμ•Ό ν•œλ‹€)

μ‚¬μ΄λ“œ ν”„λ‘œμ νŠΈλ‘œ λ§Œλ“  μ—¬κΈ° ν”„λ‘œκ·Έλž¨ 경우 일뢀 μ†ŒμŠ€λŠ” 곡개λ₯Ό ν•˜μ˜€μ§€λ§Œ
전체 μ†ŒμŠ€ 곡개λ₯Ό μš”κ΅¬ν•˜λŠ” GPL λΌμ΄μ„ μŠ€ λͺ¨λ“ˆμ€ λ°°ν¬μ‹œ 포함 ν•˜μ§€ μ•Šμ•˜λ‹€.
즉 μ†ŒμŠ€ κ³΅κ°œμ— λŒ€ν•΄μ„œλŠ” 개인적으둜 μ œν•œ 받지 μ•ŠκΈ° μœ„ν•΄μ„œμ΄λ‹€.
( ν…ŒμŠ€νŠΈ μš©λ„λ‘œλ§Œ GPL λΌμ΄λΈŒλŸ¬λ¦¬λŠ” μ‚¬μš©μ€‘μ΄λ‹€^^)

그리고 자체 κ°œλ°œν•œ μ†ŒμŠ€μ— λŒ€ν•΄μ„œλŠ” μ €μž‘κΆŒ ν‘œμ‹œλ₯Ό ν•΄μ£ΌλŠ”κ²Œ ν•„μš”ν•˜μ—¬ μ €μž‘κΆŒ ν‘œμ‹œλ₯Ό ν•΄μ£Όμ—ˆλ‹€.
λ‚΄ ν”„λ‘œκ·Έλž¨ 개발 μ‹œ κ°€μž₯ 많이 μ‚¬μš©λ˜λŠ” μ˜€ν”ˆ μ†ŒμŠ€λŠ” OpenSSL κ³Ό QT λΌμ΄λΈŒλŸ¬λ¦¬μ΄λ‹€.

OpenSSL 경우 Apache-2.0 λΌμ΄μ„ μŠ€λ₯Ό μ΄μš©ν•˜κ³ 
QT 경우 LGPLv3 or GPLv3 버전을 μ΄μš©ν•˜λŠ”λ° κ°€λŠ₯ν•œν•œ GPLv3 κΈ°λŠ₯은 λ‚΄λΆ€ ν…ŒμŠ€νŠΈμš©μœΌλ‘œ μ΄μš©ν•˜κ³  λ°°ν¬μ—λŠ” 배제 ν•˜μ˜€λ‹€.
( GPLv3 을 μ‚¬μš©ν•˜λ©΄ μ†ŒμŠ€ κ³΅κ°œμ— λŒ€ν•΄μ„œ 의무 사항이기 λ•Œλ¬Έ)

κ·Έ 외에 λ‹€μ–‘ν•œ μ˜€ν”ˆμ†ŒμŠ€λ„ μ°Έμ‘° ν•˜μ˜€λŠ”λ° μˆ˜μ • 및 λ³€κ²½ μ‚¬μš©μ— λ¬Έμ œκ°€ μ—†λŠ” MIT λΌμ΄μ„ μŠ€ λ˜λŠ” Public λΌμ΄μ„ μŠ€λ₯Ό μ‚¬μš©ν•˜μ˜€λ‹€.
(이듀 λΌμ΄μ„ μŠ€ 경우 μ‚¬μš© κ³ μ§€λŠ” ν•΄μ•Ό ν•œλ‹€)

OpenSSL μ‚¬μš©μ‹œ μ§€μΌœμ•Ό ν•  사항

기본적으둜 OpenSSL 경우 Apache 2.0 λΌμ΄μ„ μŠ€λŠ” 자유둭게 μˆ˜μ • 및 μ†ŒμŠ€κ³΅κ°œ 없이 μ‚¬μš© κ°€λŠ₯ν•˜λ‹€.
그리고 LGPL-3.0 λΌμ΄μ„ μŠ€μ™€ 같이 μ‚¬μš©μ— λ¬Έμ œκ°€ μ—†λ‹€.
ν•˜μ§€λ§Œ ν•΄λ‹Ή μ˜€ν”ˆμ†ŒμŠ€λ₯Ό μ‚¬μš©ν•˜λŠ”κ²ƒμ„ 고지 ν•΄ μ£Όμ–΄μ•Ό ν•œλ‹€.

OpenSSL 경우 개인적으둜 μ†ŒμŠ€λ₯Ό 패치 ν•˜μ—¬μ„œ μ‚¬μš©ν•˜μ˜€μ§€λ§Œ ν˜„μž¬ OpenSSL 의 패치 없이 μ‚¬μš©ν•˜λ„λ‘ 변경을 ν•˜κ³ 
About μ°½μ—μ„œ OpenSSL 을 동적링크λ₯Ό μ΄μš©ν•˜μ—¬ μ‚¬μš©ν•œλ‹€λŠ” 것을 ν‘œμ‹œ ν•˜μ˜€λ‹€.
Apache-2.0 λΌμ΄μ„ μŠ€μ—μ„œ λ³€κ²½ μ‚¬μš©ν•˜λŠ” 경우 λ³€κ²½ λ‚΄μš©μ—λŒ€ν•œ κ³ μ§€λŠ” ν•˜μ—¬μ•Ό ν•œλ‹€.

QT μ‚¬μš©μ‹œ μ§€μΌœμ•Ό ν•  사항

QT 경우 GPL λ˜λŠ” LGPL λΌμ΄μ„ μŠ€λ₯Ό μš”κ΅¬ν•˜λŠ”λ° μ‚¬μš©ν•˜λŠ” λͺ¨λ“ˆμ΄ λͺ¨λ‘ LGPL 이면 LGPL λΌμ΄μ„ μŠ€ μš”κ΅¬ 사항에 따라 μ†ŒμŠ€λ₯Ό 곡개 ν•˜μ§€ μ•Šμ•„λ„ λœλ‹€. ν•˜μ§€λ§Œ μ‚¬μš©ν•˜λŠ” λͺ¨λ“ˆ 쀑에 GPL 이 쑴재 ν•œλ‹€λ©΄ μ†ŒμŠ€λ₯Ό κ³΅κ°œν•΄μ•Ό ν•˜λŠ” 의무 사항이 λ”°λ₯Έλ‹€
GPL λΌμ΄μ„ μŠ€μ€‘ λŒ€ν‘œμ μΈκ²Œ QtChart λͺ¨λ“ˆ κ²½μš°μ΄λ‹€.(λ¬Όλ‘  μƒμš©μœΌλ‘œ μ‚¬μš©ν•˜λ©΄ μ†ŒμŠ€ 곡개 μ œν•œμ€ μ—†λ‹€^^)

κ·Έλž˜μ„œ BerEditor, CertMan 그리고 CryptokiMan 은 사싀 UI κ°œλ°œμ— LGPL λΌμ΄μ„ μŠ€μš© λͺ¨λ“ˆλ§Œμ„ μ΄μš©ν•˜μ—¬ 개발 ν•˜μ˜€λ‹€.
QT λ˜ν•œ About μ°½μ—μ„œ QTλ₯Ό 동적링크λ₯Ό μ΄μš©ν•˜μ—¬ μ‚¬μš©ν•œλ‹€λŠ” 것을 ν‘œμ‹œ ν•˜μ˜€λ‹€.

사싀 LGPL 경우 μ†ŒμŠ€λ₯Ό λ³€κ²½ν•˜κ²Œ 되면 LGPL μ†ŒμŠ€ 변경에 λŒ€ν•œ 곡개의 μ˜λ¬΄κ°€ μžˆλ‹€.
ν•˜μ§€λ§Œ QT μ—μ„œ μ œκ³΅ν•˜λŠ” λ™μ λΌμ΄λΈŒλŸ¬λ¦¬ μƒνƒœλ‘œ μ†ŒμŠ€ λ³€κ²½ 없이 μ‚¬μš©ν•˜κ²Œ 되면 μ†ŒμŠ€ 곡개 없이 μ‚¬μš© ν•  수 μžˆλ‹€.
(λ§Œμ•½ 정적 라이브러리둜 개발 ν•˜λ©΄ μ†ŒμŠ€λ₯Ό λ³€κ²½ ν•˜μ§€ μ•Šμ•„λ„ μΆ”κ°€μ μœΌλ‘œ 제곡 ν•΄μ•Ό ν•˜λŠ” 의무 사항이 더 있게 λœλ‹€)

MIT λ˜λŠ” 곡개 λΌμ΄μ„ μŠ€

λ‚΄λΆ€μ μœΌλ‘œ SSS λ˜λŠ” Sparkle λ“± MIT λΌμ΄μ„ μŠ€ λͺ¨λ“ˆλ“± μ—¬λŸ¬κ°€μ§€ 곡개된 μ˜€ν”ˆμ†ŒμŠ€κ°€ μ‚¬μš©λ˜μ—ˆλŠ”λ°
ν•„μš”ν•œ 경우 μ†ŒμŠ€λ₯Ό λ³€κ²½ ν•˜μ˜€μ§€λ§Œ μ†ŒμŠ€λ‚΄μ— μ €μž‘κΆŒ ν‘œμ‹œλŠ” κ·ΈλŒ€λ‘œ μœ μ§€ ν•˜μ—¬ λ³€κ²½ ν•˜μ˜€λ‹€.
그리고 이듀 λΌμ΄μ„ μŠ€μ—μ„œλŠ” 자유둭게 μ†ŒμŠ€ 변경을 ν•˜μ—¬ μ‚¬μš© ν•  수 μžˆμ§€λ§Œ μ‚¬μš©ν•˜κ³  μžˆλ‹€λŠ” κ³ μ§€λŠ” ν•΄μ•Όν•œλ‹€.
κ·Έλž˜μ„œ 이듀 λͺ¨λ‘ About μ°½μ—μ„œ μ‚¬μš©ν•˜λŠ” μ €μž‘κΆŒ ν‘œμ‹œλ₯Ό ν•΄μ£Όμ—ˆλ‹€.

λ‚΄ν”„λ‘œκ·Έλž¨μ— λŒ€ν•œ μ €μž‘κΆŒ

λ‹€μŒ λ‚΄μš©μ΄ ν•΄λ‹Ή ν”„λ‘œκ·Έλž¨ μ €μžκΆŒμ— λŒ€ν•œ 고지 사항 λ‚΄μš©μ΄λ‹€.
ν•΄λ‹Ή ν”„λ‘œκ·Έλž¨ μ‚¬μš©μ‹œ μ €μž‘κΆŒ 및 보증에 λŒ€ν•œ μ±…μž„μ΄ μ—†μŒμ„ λͺ…μ‹œν•˜λŠ” λ‚΄μš©μ΄λ‹€.
(개인적으둜 μ•„λž˜ μ˜μ–΄ 문ꡬ ν•΄μ„ν•˜κΈ° λ„ˆλ¬΄ μ–΄λ ΅λ„€μš”)

λ‚΄ν”„λ‘œκ·Έλž¨ μ €μž‘κΆŒ 및 고지 의무 사항

- 자체 개발 μ†ŒμŠ€ μ €μž‘κΆŒ ν‘œμ‹œ

λ§Œλ“  μ†ŒμŠ€ μ €μž‘κΆŒ ν‘œμ‹œ

μ‚¬μš©ν•œ μ˜€ν”ˆμ†ŒμŠ€μ— λŒ€ν•œ μ €μž‘κΆŒ ν‘œμ‹œ

μ•„λž˜ λ‚΄μš©μ΄ μ‚¬μš©λœ μ˜€ν”ˆμ†ŒμŠ€μ™€ ν•΄λ‹Ή μ €μž‘κΆŒ 정보 및 링크λ₯Ό ν‘œμ‹œ ν•˜μ˜€λ‹€.

μ˜€ν”ˆμ†ŒμŠ€ μ‚¬μš© 고지 사항

ν”„λ‘œκ·Έλž¨ νŒ¨ν‚€μ§€ 고지 의무

ν˜„μž¬ λ°°ν¬ν•œ ν”„λ‘œκ·Έλž¨μ„ μ„€μΉ˜ ν•˜λ©΄ COPYRIGHT 파일과 thirdparty_license 폴더에 μ‚¬μš©ν•œ μ˜€ν”ˆμ†ŒμŠ€ λΌμ΄μ„ μŠ€ 정보 νŒŒμΌμ„ λͺ¨λ‘ 같이 νŒ¨ν‚€μ§€ ν•˜μ˜€λ‹€.

λ‚΄ν”„λ‘œκ·Έλž¨ μ˜€ν”ˆμ†ŒμŠ€ 처리 μš”μ•½

  • Apachec-2.0 κ³Ό LGPL-3.0 λͺ¨λ“ˆμ€ λ³€κ²½ 없이 동적 링크 μ‚¬μš©
  • GPL λΌμ΄μ„ μŠ€ λͺ¨λ“ˆ μ‚¬μš© μ•ˆν•¨
  • MIT λΌμ΄μ„ μŠ€ 경우 μ†ŒμŠ€ λ³€κ²½ μ‚¬μš© 및 μ†ŒμŠ€λ‚΄ μ €μž‘κΆŒ ν‘œμ‹œ μœ μ§€
  • 자체 개발 μ†ŒμŠ€ λ‚΄ μ €μž‘κΆŒ ν‘œμ‹œ
  • About 창에 ν”„λ‘œκ·Έλž¨ μ €μž‘κΆŒ ν‘œμ‹œ 및 μ‚¬μš© μ˜€ν”ˆ μ†ŒμŠ€ 좜처 및 μ €μž‘κΆŒ ν‘œμ‹œ
  • ν•΄λ‹Ή νŒ¨ν‚€μ§€μ— COPYRIGHT 및 μ‚¬μš© μ˜€ν”ˆ μ†ŒμŠ€ λΌμ΄μ„ μŠ€ 파일 포함

마무리

μ§€κΈˆκΉŒμ§€ 개인적으둜 ν”„λ‘œκ·Έλž¨μ„ 아무 μ œν•œ 없이 μ‚¬μš©ν• λ•ŒλŠ” λΌμ΄μ„ μŠ€ 의무 사항을 κ³ λ €ν•˜μ§€ μ•Šμ•˜μ§€λ§Œ
μ΅œκ·Όμ— 배포λ₯Ό ν•˜λ‹€ λ³΄λ‹ˆ μ˜€ν”ˆμ†ŒμŠ€μ— λŒ€ν•œ μ€€μˆ˜ 사항λ₯Ό κ²€ν†  ν•˜μ—¬μ„œ 처리λ₯Ό ν•˜μ˜€λ‹€.
사싀 κ²€ν†  ν•˜λ‹€ λ³΄λ‹ˆ μ˜€ν”ˆμ†ŒμŠ€ 고지 μ˜λ¬΄κ°€ μƒκ°λ³΄λ‹€λŠ” μ–΄λ ΅λ‹€λŠ” 생각이 λ“ λ‹€ 특히 λΌμ΄μ„ μŠ€ 좩돌 문제 κ°™μ€κ²½μš°
λ‚˜λ¦„ νŒλ‹¨ν•΄μ„œ μ€€λΉ„λ₯Ό ν•˜μ˜€μ§€λ§Œ ν˜Ήμ‹œ 더 ν•„μš”ν•œκ²Œ μžˆλŠ”μ§€λŠ” λͺ¨λ₯΄κ² λ‹€.

ν˜Ήμ‹œλΌλ„ λΆ€μ‘±ν•œκ²Œ 있음 μ•Œλ €μ£Όμ„Έμš”^^