FPU



Fragmented
Package S/W
Updater



ApexSoft

Contents




Package Software 시장의 문제

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가지 버전을 거의 모두 개별 관리.
  • 판매처가 늘어날 수록 문제가 더 악화.



결국 '동일성을 판별할 수 있는가?' 의 문제!







Solution

Solution Concepts






Hash로 
동일성을 판별하자

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를 함께 적용해야 할 버전을 파악할 수 있다.



Q & A

Need More
Requirements

FPU

By Myung Woon, Oh

FPU

Slide for FPU

  • 549