FPU
Fragmented
Package S/W
Updater
ApexSoft
Contents
Package Software 시장의 문제
Package Software 관리의 현실적 문제
Solution
Q&A + More Requirements
Package Software 관리의 현실적 문제
Solution
Q&A + More Requirements
Package Software 시장의 문제
열악한 국내 패키지 SW 인식
이런 기능 안돼? 안 되면 못 쓰지..
그런 기능은 엑셀에서도 안 되는데요..
엑셀은 어쩔 수 없는 거고,
그런 기능은 엑셀에서도 안 되는데요..
엑셀은 어쩔 수 없는 거고,
이건 당신들이 만든 거 잖아.
그러니 이 기능도 넣어줘. 안 그러면 이거 못 사..
Customizing Customizing
Customizing Customizing Customizing
Fragmentation
Fragmentation : 분열, 파쇄, 단편화
불가피한 커스터마이징의 반복으로 인해
태생은 미약한 하나의 패키지 소프트웨어였으나
그 끝은 창대한 수백가지의 패키지 소프트웨어로..
멋지다?!

Package Software 관리의 현실적 문제
Problem Scenario
1번 고객의 A기능에서 문제 발생 보고
문제 해결
1번 고객에게 PatchA 적용
3번 고객 버전에도 A기능 동일하게 구현되어 있지 않나?
그럼 3번 고객에도 PatchA 적용해줘야지.
OK. 3번 고객에게도 PatchA 적용하자.
Problem Scenario
가만, 3번 고객 뿐인가?
내가 작업했던 6, 12, 17번 고객도 마찬가지일텐데..
그러고 보니 내가 했던 211, 214, 228번 고객도..
OK. 6, 12, 17, 211, 214, 228번 고객 PatchA 적용!
그런데.. 또 있지 않을까??
Problem Scenario
있을 수도 있지만..
아무도 몰라..
어쩌겠어.. 다른 고객에서 문제 생기면
그때그때 대응해야지..
Key Problem
-
Patch를 함께 적용해야 할 버전을 파악할 수 없다.
- 결국 255가지 버전을 거의 모두 개별 관리.
- 판매처가 늘어날 수록 문제가 더 악화.
결국 '동일성을 판별할 수 있는가?' 의 문제!
-
Patch를 함께 적용해야 할 버전을 파악할 수 없다.
- 결국 255가지 버전을 거의 모두 개별 관리.
- 판매처가 늘어날 수록 문제가 더 악화.
Solution
Solution Concepts
동일성을 판별하자
Hash Function
임의의 길이의 데이터를
고정된 길이의 데이터로
매핑하는 알고리듬
해쉬 값이 다르면 원래의 데이터도 다르다.
해쉬 값이 같으면 원래의 데이터도 거의 같다.
Hash Function
하지만 거의문제가 되지 않는다
원본이 다른데 해쉬 값이 같게 나올 확률이 50%가 되려면
원본 객체가 2^80 or 1.2*10^24개이어야 한다.
65억 인구가 전부 프로그래머이고,
각자가 리눅스 커널 전체에 해당하는 100만개의 객체를,
매초 계속 commit 하는 일을,
5년 동안 계속 해야 도달할 수 있는 수치
게다가 Git를 쓴다면..
Git

분산형 버전 관리 시스템
형상 관리 분야의 대세!!
Git 저장 구조
Git는
모든 내용물을
SHA-1 알고리듬의 해쉬 값을 써서 관리한다.
모든 내용물의 해쉬 값을 자동으로 계산
해쉬 충돌 시 알 수 있음
(아직 지구상에서 Git 사용 중 해쉬 충돌이 발생한 사례는 없음)
Git의 SHA-1
여러 가지 버전(branch)로 나누어져 있더라도,
내용물과 파일명이 같으면,
동일한 SHA-1 Key값을 가진 하나의 객체로 존재
Git의 SHA-1

The Solution
Patch 해야할 대상 파일을 알면
그 파일의 SHA-1 Key 값을 구해서
그 SHA-1 Key를 포함하고 있는 branch를 찾아낸다.

Key Problem - Solution
-
Patch를 함께 적용해야 할 버전을 파악할 수 없다.
- 결국 255가지 버전을 거의 모두 개별 관리.
- 판매처가 늘어날 수록 문제가 더 악화.
결국 '동일성을 판별할 수 있는가?' 의 문제!
Git의 SHA-1 알고리듬과 branch를 써서
Patch를 함께 적용해야 할 버전을 파악할 수 있다.
-
Patch를 함께 적용해야 할 버전을 파악할 수 없다.
- 결국 255가지 버전을 거의 모두 개별 관리.
- 판매처가 늘어날 수록 문제가 더 악화.
Q & A
Need More
Requirements
FPU
By Myung Woon, Oh
FPU
Slide for FPU
- 549