μ •λ³΄μ²˜λ¦¬κΈ°μ‚¬/μ†Œν”„νŠΈμ›¨μ–΄ 개발

| 2020 μ •λ³΄μ²˜λ¦¬κΈ°μ‚¬ (ν•„κΈ°) | 2. μ†Œν”„νŠΈμ›¨μ–΄ 개발 - μ œν’ˆ μ†Œν”„νŠΈμ›¨μ–΄ νŒ¨ν‚€μ§•

ν•œμ½”λ”© 2020. 8. 5. 16:14
728x90
728x90
41. μ†Œν”„νŠΈμ›¨μ–΄ νŒ¨ν‚€μ§•

 

μ†Œν”„νŠΈμ›¨μ–΄ νŒ¨ν‚€μ§•

λͺ¨λ“ˆλ³„λ‘œ μƒμ„±ν•œ μ‹€ν–‰ νŒŒμΌλ“€μ„ λ¬Άμ–΄ 배포용 μ„€μΉ˜ νŒŒμΌμ„ λ§Œλ“œλŠ” 것

- κ°œλ°œμžκ°€ μ•„λ‹Œ μ‚¬μš©μž μ€‘μ‹¬μœΌλ‘œ 진행

- μ†ŒμŠ€ μ½”λ“œλŠ” ν–₯ν›„ 관리λ₯Ό κ³ λ €ν•΄ λͺ¨λ“ˆν™”ν•˜μ—¬ νŒ¨ν‚€μ§•ν•¨

λͺ¨λ“ˆν™” : μ‹œμŠ€ν…œμ„ 각 κΈ°λŠ₯λ³„λ‘œ λ‚˜λˆ„λŠ” 것

- λ‹€μ–‘ν•œ ν™˜κ²½μ—μ„œ μ†Œν”„νŠΈμ›¨μ–΄λ₯Ό μ†μ‰½κ²Œ μ‚¬μš©ν•  수 μžˆλ„λ‘ 일반적인 배포 ν˜•νƒœλ‘œ νŒ¨ν‚€μ§•ν•¨

- μ‚¬μš©μžμ˜ νŽΈμ˜μ„± 및 μ‹€ν–‰ ν™˜κ²½μ„ μš°μ„ μ μœΌλ‘œ κ³ λ €ν•΄μ•Ό 함

 

 

νŒ¨ν‚€μ§• μ‹œ 고렀사항

- μ‚¬μš©μžμ˜ μ‹œμŠ€ν…œ ν™˜κ²½, 즉 OS, CPU, λ©”λͺ¨λ¦¬ 등에 ν•„μš”ν•œ μ΅œμ†Œ ν™˜κ²½μ„ μ •μ˜

- UIλŠ” μ‹œκ°μ μΈ μžλ£Œμ™€ ν•¨κ»˜ μ œκ³΅ν•˜κ³  맀뉴얼과 μΌμΉ˜μ‹œμΌœ νŒ¨ν‚€μ§•ν•¨

- μ†Œν”„νŠΈμ›¨μ–΄λ₯Ό νŒ¨ν‚€μ§•ν•΄ λ°°ν¬ν•œ 이후, ν•˜λ“œμ›¨μ–΄μ™€ ν•¨κ»˜ 관리될 수 μžˆλ„λ‘ Managed Service ν˜•νƒœλ‘œ μ œκ³΅ν•˜λŠ” 것이 μ’‹μŒ

- 고객의 νŽΈμ˜μ„±μ„ κ³ λ €ν•œ μ•ˆμ •μ μΈ 배포 μ€‘μš”

- νŒ¨ν‚€μ§•μ˜ λ³€κ²½ 및 κ°œμ„ μ— λŒ€ν•œ 관리λ₯Ό 항상 κ³ λ €ν•΄μ•Ό 함

 

 

 νŒ¨ν‚€μ§• μž‘μ—… μˆœμ„œ

νŒ¨ν‚€μ§• μ£ΌκΈ°λŠ” μ†Œν”„νŠΈμ›¨μ–΄ 개발 기법에 따라 λ‹¬λΌμ§€λŠ”λ°, 각 μ£ΌκΈ°κ°€ 끝날 λ•Œλ§ˆλ‹€ νŒ¨ν‚€μ§• μˆ˜ν–‰

- ν”„λ‘œμ νŠΈ 개발 κ³Όμ •μ—μ„œ μ£ΌκΈ°λ³„λ‘œ νŒ¨ν‚€μ§•ν•œ 결과물은 ν…ŒμŠ€νŠΈ μ„œλ²„μ— 배포

- λ§ˆμ§€λ§‰ 개발 과정을 거쳐 νŒ¨ν‚€μ§•ν•œ 결과물은 고객이 μ‚¬μš©ν•  수 μžˆλ„λ‘ 온라인 배포 λ˜λŠ” μ˜€ν”„λΌμΈμœΌλ‘œ 배포 함

 

 

42. 릴리즈 λ…ΈνŠΈ μž‘μ„±

 

릴리즈 λ…ΈνŠΈ (Release Note)

개발 κ³Όμ •μ—μ„œ μ •λ¦¬λœ 릴리즈 정보λ₯Ό μ†Œν”„νŠΈμ›¨μ–΄μ˜ μ΅œμ’… μ‚¬μš©μžμΈ 고객과 κ³΅μœ ν•˜κΈ° μœ„ν•œ λ¬Έμ„œ

릴리즈 : 개발이 μ™„μ„±λœ μ†Œν”„νŠΈμ›¨μ–΄λ₯Ό μΆœμ‹œ, λ°°ν¬ν•˜λŠ” 것

- μ†Œν”„νŠΈμ›¨μ–΄μ— ν¬ν•¨λœ 전체 κΈ°λŠ₯, μ„œλΉ„μŠ€, κ°œμ„  사항 등을 μ‚¬μš©μžμ™€ κ³΅μœ ν•  수 있음

- μ†Œν”„νŠΈμ›¨μ–΄μ˜ 버전 κ΄€λ¦¬λ‚˜ 릴리즈 정보λ₯Ό μ²΄κ³„μ μœΌλ‘œ 관리할 수 있음

- ν…ŒμŠ€νŠΈ 진행 방법에 λŒ€ν•œ 결과와 μ†Œν”„νŠΈμ›¨μ–΄ 사양에 λŒ€ν•œ κ°œλ°œνŒ€μ˜ μ •ν™•ν•œ μ€€μˆ˜ μ—¬λΆ€λ₯Ό 확인할 수 있음

- μ†Œν”„νŠΈμ›¨μ–΄μ˜ 초기 배포 μ‹œ λ˜λŠ” μΆœμ‹œ ν›„ κ°œμ„  사항을 μ μš©ν•œ μΆ”κ°€ 배포 μ‹œμ— 제곡

- κ°œλ°œνŒ€μ—μ„œ μ œκ³΅ν•˜λŠ” μ†Œν”„νŠΈμ›¨μ–΄ 사양에 λŒ€ν•œ μ΅œμ’… μŠΉμΈκΉŒμ§€ 얻은 ν›„ λ¬Έμ„œν™” λ˜μ–΄ 제곡됨 

 

 

 λ¦΄λ¦¬μ¦ˆ λ…ΈνŠΈ 초기 버전 μž‘μ„± μ‹œ 고렀사항

- μ •ν™•ν•˜κ³  μ™„μ „ν•œ 정보λ₯Ό 기반으둜 κ°œλ°œνŒ€μ—μ„œ 직접 ν˜„μž¬ μ‹œμ œλ‘œ μž‘μ„±

- μ‹ κ·œ μ†ŒμŠ€, λΉŒλ“œ λ“±μ˜ 이λ ₯이 μ •ν™•ν•˜κ²Œ κ΄€λ¦¬λ˜μ–΄ λ³€κ²½ λ˜λŠ” κ°œμ„ λœ ν•­λͺ©μ— λŒ€ν•œ 이λ ₯ 정보듀도 μž‘μ„±

 

 

 λ¦΄λ¦¬μ¦ˆ λ…ΈνŠΈ μΆ”κ°€ 버전 μž‘μ„± μ‹œ 고렀사항

- μ€‘λŒ€ν•œ 였λ₯˜κ°€ λ°œμƒν•΄ κΈ΄κΈ‰ μˆ˜μ •ν•˜λŠ” 경우, 릴리즈 버전을 μΆœμ‹œν•˜κ³  버그 번호λ₯Ό ν¬ν•¨ν•œ λͺ¨λ“  μˆ˜μ •λœ λ‚΄μš©μ„ λ‹΄μ•„ 릴리즈 λ…ΈνŠΈ μž‘μ„±

- μ†Œν”„νŠΈμ›¨μ–΄μ— λŒ€ν•œ κΈ°λŠ₯ μ—…κ·Έλ ˆμ΄λ“œλ₯Ό μ™„λ£Œν•œ κ²½μš°μ— 릴리즈 버전을 μΆœμ‹œν•˜κ³  릴리즈 λ…ΈνŠΈ μž‘μ„±

- μ‚¬μš©μžλ‘œλΆ€ν„° μ ‘μˆ˜λœ μš”κ΅¬μ‚¬ν•­μ— μ˜ν•΄ μΆ”κ°€λ‚˜ μˆ˜μ •λœ 경우 자체 κΈ°λŠ₯ ν–₯μƒκ³ΌλŠ” λ‹€λ₯Έ λ³„λ„μ˜ 릴리즈 버전을 μΆœμ‹œν•˜κ³  릴리즈 λ…ΈνŠΈ μž‘μ„±

 

 

 λ¦΄λ¦¬μ¦ˆ λ…ΈνŠΈ μž‘μ„± μˆœμ„œ

 

 

43. 디지털 μ €μž‘κΆŒ 관리 (DRM)

 

μ €μž‘κΆŒ

μ°½μž‘μžκ°€ κ°€μ§€λŠ” 배타적 독점적 ꢌ리둜 νƒ€μΈμ˜ μΉ¨ν•΄λ₯Ό 받지 μ•Šμ„ κ³ μœ ν•œ κΆŒν•œ

- μ €μž‘κΆŒ 보호 기술 : 컴퓨터 ν”„λ‘œκ·Έλž¨λ“€κ³Ό 같이 λ³΅μ œν•˜κΈ° μ‰¬μš΄ μ €μž‘λ¬Όμ— λŒ€ν•΄ λΆˆλ²• 볡제 및 배포 등을 막기 μœ„ν•œ 기술적인 방법



디지털 μ €μž‘κΆŒ ꢌ리 (DRM : Digital Right Management)

μ €μž‘κΆŒμžκ°€ λ°°ν¬ν•œ 디지털 μ½˜ν…μΈ κ°€ μ €μž‘κΆŒμžκ°€ μ˜λ„ν•œ μš©λ„λ‘œλ§Œ μ‚¬μš©λ˜λ„λ‘ 디지털 μ½˜ν…μΈ μ˜ 생성, μœ ν†΅, μ΄μš©κΉŒμ§€μ˜ μ „ 과정에 결쳐 μ‚¬μš©λ˜λŠ” 디지털 μ½˜ν…μΈ  관리 및 보호 기술

- 원본 μ½˜ν…μΈ κ°€ μ•„λ‚ λ‘œκ·ΈμΈ 경우, λ””μ§€ν„Έλ‘œ λ³€ν™˜ν•œ ν›„ νŒ¨ν‚€μ €μ— μ˜ν•΄ DRM νŒ¨ν‚€μ§• μˆ˜ν–‰

- μ½˜ν…μΈ μ˜ 크기가 μŒμ›μ΄λ‚˜ λ¬Έμ„œμ™€ 같이 크기가 μž‘μ€ 경우 μ‚¬μš©μžκ°€ μ½˜ν…μΈ λ₯Ό μš”μ²­ν•˜λŠ” μ‹œμ μ—μ„œ μ‹€μ‹œκ°„μœΌλ‘œ νŒ¨ν‚€μ§•μ„ μˆ˜ν–‰ν•˜κ³ , 크기가 큰 경우 미리 νŒ¨ν‚€μ§•μ„ μˆ˜ν–‰ ν›„ 배포

- νŒ¨ν‚€μ§• μˆ˜ν–‰ μ‹œ μ½˜ν…μΈ μ—λŠ” μ•”ν˜Έν™”λœ μ €μž‘κΆŒμžμ˜ μ „μžμ„œλͺ…이 ν¬ν•¨λ˜κ³  μ €μž‘κΆŒμžκ°€ μ„€μ •ν•œ λΌμ΄μ„ μŠ€ 정보가 클리어링 ν•˜μš°μŠ€μ— 등둝 됨

클리어링 ν•˜μš°μŠ€ (Clearing House) : 디지털 μ €μž‘κΆŒ λΌμ΄μ„ μŠ€μ˜ μ€‘κ°œ 및 λ°œκΈ‰μ„ μˆ˜ν–‰ν•˜λŠ” κ³³, 디지털 μ €μž‘λ¬Όμ˜ 이용 내역을 근거둜 μ €μž‘κΆŒλ£Œμ˜ μ •μ‚° 및 λΆ„λ°°κ°€ μˆ˜ν–‰λ¨

- μ‚¬μš©μžκ°€ μ½˜ν…μΈ λ₯Ό μ‚¬μš©ν•˜κΈ° μœ„ν•΄μ„œλŠ” 클리어링 ν•˜μš°μŠ€μ— λ“±λ‘λœ λΌμ΄μ„ μŠ€ 정보λ₯Ό 톡해 μ‚¬μš©μž 인증과 μ½˜ν…μΈ  μ‚¬μš© κΆŒν•œ μ†Œμœ  μ—¬λΆ€λ₯Ό 확인받아야 함

- μ’…λŸ‰μ œ 방식을 μ μš©ν•œ μ†Œν”„νŠΈμ›¨μ–΄μ˜ 경우 클리어링 ν•˜μš°μŠ€λ₯Ό 톡해 μ„œλΉ„μŠ€μ˜ μ‹€μ œ μ‚¬μš©λŸ‰μ„ μΈ‘μ •ν•˜μ—¬ μ΄μš©ν•œ 만큼의 μš”κΈˆ λΆ€κ³Ό

 

 

 λ””지털 μ €μž‘κΆŒ κ΄€λ¦¬μ˜ 흐름도

1. 클리어링 ν•˜μš°μŠ€ (Clearing House) : μ €μž‘κΆŒμ— λŒ€ν•œ μ‚¬μš© κΆŒν•œ, λΌμ΄μ„ μŠ€ λ°œκΈ‰, μ‚¬μš©λŸ‰μ— λ”°λ₯Έ 결제 관리 등을 μˆ˜ν–‰ν•˜λŠ” κ³³

2. μ½˜ν…μΈ  제곡자 (Contents Provider) : μ½˜ν…μΈ λ₯Ό μ œκ³΅ν•˜λŠ” μ €μž‘κΆŒμž

3. νŒ¨ν‚€μ € (Packager) : μ½˜ν…μΈ λ₯Ό 메타 데이터와 ν•¨κ»˜ λ°°ν¬ κ°€λŠ₯ν•œ ν˜•νƒœλ‘œ λ¬Άμ–΄ μ•”ν˜Έν™”ν•˜λŠ” ν”„λ‘œκ·Έλž¨

메타 데이터 (Meta Data) : 데이터에 λŒ€ν•œ 데이터, 즉 데이터에 λŒ€ν•œ 속성 정보 등을 μ„€λͺ…ν•˜κΈ° μœ„ν•œ 데이터

4. μ½˜ν…μΈ  λΆ„λ°°μž (Contents Distributor) : μ•”ν˜Έν™”λœ μ½˜ν…μΈ λ₯Ό μœ ν†΅ν•˜λŠ” κ³³μ΄λ‚˜ μ‚¬λžŒ

5. μ½˜ν…μΈ  μ†ŒλΉ„μž (Customer) : μ½˜ν…μΈ λ₯Ό κ΅¬λ§€ν•΄μ„œ μ‚¬μš©ν•˜λŠ” 주체

6. DRM 컨트둀러 (DRM Controller) : 배포된 μ½˜ν…μΈ μ˜ 이용 κΆŒν•œμ„ ν†΅μ œν•˜λŠ” ν”„λ‘œκ·Έλž¨

7. λ³΄μ•ˆ μ»¨ν…Œμ΄λ„ˆ (Security Container) : μ½˜ν…μΈ  원본을 μ•ˆμ „ν•˜κ²Œ μœ ν†΅ν•˜κΈ° μœ„ν•œ μ „μžμ  λ³΄μ•ˆ μž₯치

 

 

디지털 μ €μž‘κΆŒ κ΄€λ¦¬μ˜ 기술 μš”μ†Œ

디지털 μ €μž‘κΆŒ 관리λ₯Ό μœ„ν•΄ μ‚¬μš©λ˜λŠ” κΈ°μˆ μ€ λ‹€μŒκ³Ό κ°™μŒ

κ΅¬μ„±μš”μ†Œ 

μ„€λͺ… 

μ•”ν˜Έν™” (Encryption) 

μ½˜ν…μΈ λ° λΌμ΄μ„ μŠ€λ₯Ό μ•”ν˜Έν™”ν•˜κ³  μ „μž μ„œλͺ…을 ν•  수 μžˆλŠ” 기술 

ν‚€ 관리 (Key Management) 

μ½˜ν…μΈ λ₯Ό μ•”ν˜Έν™”ν•œ 킀에 λŒ€ν•œ μ €μž₯ 및 λΆ„λ°° 기술 

μ•”ν˜Έν™” 파일 생성 (Packager) 

μ½˜ν…μΈ λ₯Ό μ•”ν˜Έν™”λœ μ½˜ν…μΈ λ‘œ μƒμ„±ν•˜κΈ° μœ„ν•œ 기술

식별 기술 (Identification)

μ½˜ν…μΈ μ— λŒ€ν•œ 식별 체계 ν‘œν˜„ 기술 

μ €μž‘κΆŒ ν‘œν˜„ (Right Expression)  

λΌμ΄μ„ μŠ€μ˜ λ‚΄μš© ν‘œν˜„ 기술 

μ •μ±… 관리 (Policy Management )

λΌμ΄μ„ μŠ€ λ°œκΈ‰ 및 μ‚¬μš©μ— λŒ€ν•œ μ •μ±… ν‘œν˜„ 및 관리 기술 

ν¬λž™ 방지 (Tamper Resistance)

ν¬λž™μ— μ˜ν•œ μ½˜ν…μΈ  μ‚¬μš© 방지 기술 

인증 (Authentication) 

λΌμ΄μ„ μŠ€ λ°œκΈ‰ 및 μ‚¬μš©μ˜ 기쀀이 λ˜λŠ” μ‚¬μš©μž μΈμ¦ 기술 

 

46. μ†Œν”„νŠΈμ›¨μ–΄ 버전 등둝

 

μ†Œν”„νŠΈμ›¨μ–΄ νŒ¨ν‚€μ§•μ˜ ν˜•μƒ 관리

μ†Œν”„νŠΈμ›¨μ–΄μ˜ 개발 κ³Όμ •μ—μ„œ μ†Œν”„νŠΈμ›¨μ–΄μ˜ λ³€κ²½ 사항을 κ΄€λ¦¬ν•˜κΈ° μœ„ν•΄ 개발된 일련의 ν™œλ™μœΌλ‘œ, μ†Œν”„νŠΈμ›¨μ–΄ λ³€κ²½μ˜ 원인을 νŒŒμ•…ν•˜κ³  μ œμ–΄ν•˜λ©°, 적절히 λ³€κ²½λ˜κ³  μžˆλŠ”μ§€ ν™•μΈν•˜μ—¬ ν•΄λ‹Ή λ‹΄λ‹Ήμžμ—κ²Œ 톡보

- ν˜•μƒ κ΄€λ¦¬λŠ” μ†Œν”„νŠΈμ›¨μ–΄ 개발의 μ „ 단계에 μ μš©λ˜λŠ” ν™œλ™μ΄λ©°, μœ μ§€λ³΄μˆ˜ λ‹¨κ³„μ—μ„œλ„ μˆ˜ν–‰λ¨

- ν˜•μƒ κ΄€λ¦¬λŠ” 개발의 전체 λΉ„μš©μ„ 쀄이고, 개발 κ³Όμ •μ˜ μ—¬λŸ¬ λ°©ν•΄ μš”μΈμ„ μ΅œμ†Œν™”λ˜λ„λ‘ λ³΄μ¦ν•˜λŠ” 것을 λͺ©μ μœΌλ‘œ 함

ν˜•μƒ : μ†Œν”„νŠΈμ›¨μ–΄ 개발 λ‹¨κ³„μ˜ 각 κ³Όμ •μ—μ„œ λ§Œλ“€μ–΄μ§€λŠ” ν”„λ‘œκ·Έλž¨, ν”„λ‘œκ·Έλž¨ μ„€λͺ… λ¬Έμ„œ, 데이터 등을 톡칭

 

 

 ν˜•μƒ κ΄€λ¦¬μ˜ μ€‘μš”μ„±

- λ³€κ²½ 사항을 μ²΄κ³„μ μœΌλ‘œ 좔적 및 ν†΅μ œ

- λ¬΄μ ˆμ œν•œ λ³€κ²½ 방지

- λ²„κ·Έλ‚˜ μˆ˜μ • 사항 좔적 κ°€λŠ₯

- 진행 정도λ₯Ό ν™•μΈν•˜κΈ° μœ„ν•œ κΈ°μ€€μœΌλ‘œ μ‚¬μš©

 

 

 ν˜•μƒ 관리 κΈ°λŠ₯

ν˜•μƒ κ΄€λ¦¬λŠ” ν’ˆμ§ˆ 보증을 μœ„ν•œ μ€‘μš”ν•œ μš”μ†Œ

- ν˜•μƒ 식별 : ν˜•μƒ 관리 λŒ€μƒμ— 이름과 관리 번호λ₯Ό λΆ€μ—¬ν•˜κ³ , 계측 ꡬ쑰둜 ꡬ뢄해 μˆ˜μ • 및 좔적이 μš©μ΄ν•˜λ„λ‘ ν•˜λŠ” μž‘μ—…

- 버전 μ œμ–΄ : λ‹€λ₯Έ λ²„μ „μ˜ ν˜•μƒ ν•­λͺ©μ„ κ΄€λ¦¬ν•˜κ³ , 이λ₯Ό μœ„ν•΄ νŠΉμ • μ ˆμ°¨μ™€ 도ꡬλ₯Ό κ²°ν•©μ‹œν‚€λŠ” μž‘μ—…

- ν˜•μƒ ν†΅μ œ (λ³€κ²½ 관리)

- ν˜•μƒ 감사 : κΈ°μ€€μ„ μ˜ 무결성을 ν‰κ°€ν•˜κΈ° μœ„ν•΄ 확인, 검증, κ²€μ—΄ 과정을 톡해 κ³΅μ‹μ μœΌλ‘œ μŠΉμΈν•˜λŠ” μž‘μ—…

- ν˜•μƒ 기둝 (μƒνƒœ 보고) 

 

 

μ†Œν”„νŠΈμ›¨μ–΄μ˜ 버전 등둝

 κ΄€λ ¨ μ£Όμš” μš©μ–΄

- μ €μž₯μ†Œ(Repository) : μ΅œμ‹  λ²„μ „μ˜ νŒŒμΌλ“€κ³Ό λ³€κ²½ 내역에 λŒ€ν•œ 정보듀이 μ €μž₯λ˜μ–΄ μžˆλŠ” κ³³ 

- κ°€μ Έμ˜€κΈ°(import) : 버전 관리가 되고 μžˆμ§€ μ•Šμ€ 아무것도 μ—†λŠ” μ €μž₯μ†Œμ— 처음으둜 νŒŒμΌμ„ 볡사

- 체크아웃(Check-Out) : ν”„λ‘œκ·Έλž¨μ„ μˆ˜μ •ν•˜κΈ° μœ„ν•΄ μ €μž₯μ†Œμ—μ„œ νŒŒμΌμ„ λ°›μ•„μ˜΄, μ†ŒμŠ€ 파일과 ν•¨κ»˜ 버전 관리λ₯Ό μœ„ν•œ νŒŒμΌλ“€λ„ λ°›μ•„μ˜΄

- 체크인(Check-In) : 체크아웃 ν•œ 파일의 μˆ˜μ •μ„ μ™„λ£Œν•œ ν›„ μ €μž₯μ†Œμ˜ νŒŒμΌμ„ μƒˆλ‘œμš΄ λ²„μ „μœΌλ‘œ κ°±μ‹ 

- 컀밋(Commit) : 체크인을 μˆ˜ν–‰ν•  λ•Œ 이전에 κ°±μ‹ λœ λ‚΄μš©μ΄ μžˆλŠ” κ²½μš°μ— μΆ©λŒμ„ μ•Œλ¦¬κ³  diff 도ꡬλ₯Ό μ΄μš©ν•΄ μˆ˜μ •ν•œ ν›„ 갱신을 μ™„λ£Œ

- 동기화(Update) : μ €μž₯μ†Œμ— μžˆλŠ” μ΅œμ‹  λ²„μ „μœΌλ‘œ μžμ‹ μ˜ μž‘μ—… 곡간을 동기화 함

 

 

 μ†Œν”„νŠΈμ›¨μ–΄μ˜ 버전 등둝 κ³Όμ •

47. μ†Œν”„νŠΈμ›¨μ–΄ 버전 관리 도ꡬ

 

곡유 폴더 방식

버전 관리 μžλ£Œκ°€ 둜컬 μ»΄ν“¨ν„°μ˜ 곡유 폴더에 μ €μž₯λ˜μ–΄ κ΄€λ¦¬λ˜λŠ” 방식

- κ°œλ°œμžλ“€μ€ 개발이 μ™„λ£Œλœ νŒŒμΌμ„ μ•½μ†λœ 곡유 폴더에 맀일 볡사함

- λ‹΄λ‹ΉμžλŠ” 곡유 ν΄λ”μ˜ νŒŒμΌμ„ 자기 PC둜 λ³΅μ‚¬ν•œ ν›„ 이상 유무λ₯Ό 확인

- 이상 유무 확인 쀑 파일의 였λ₯˜κ°€ ν™•μΈλ˜λ©΄, ν•΄λ‹Ή νŒŒμΌμ„ λ“±λ‘ν•œ κ°œλ°œμžμ—κ²Œ μˆ˜μ • 의뒰

- νŒŒμΌμ„ 잘λͺ» λ³΅μ‚¬ν•˜κ±°λ‚˜ λ‹€λ₯Έ μœ„μΉ˜λ‘œ λ³΅μ‚¬ν•˜λŠ” 것에 λŒ€λΉ„ν•˜κΈ° μœ„ν•΄ 파일의 변경사항을 λ°μ΄ν„°λ² μ΄μŠ€μ— 기둝해 관리

ex) SCCS, RCS, PVCS, QVCS

 

 

ν΄λΌμ΄μ–ΈνŠΈ/μ„œλ²„ 방식

버전 관리 μžλ£Œκ°€ μ„œλ²„μ— μ €μž₯λ˜μ–΄ κ΄€λ¦¬λ˜λŠ” 방식

- μ„œλ²„μ˜ 자료λ₯Ό κ°œλ°œμžλ³„λ‘œ μžμ‹ μ˜ PC둜 볡사해 μž‘μ—…ν•œ ν›„ λ³€κ²½λœ λ‚΄μš©μ„ μ„œλ²„μ— 반영

- λͺ¨λ“  버전 κ΄€λ¦¬λŠ” μ„œλ²„μ—μ„œ μˆ˜ν–‰

- ν•˜λ‚˜μ˜ νŒŒμΌμ„ μ„œλ‘œ λ‹€λ₯Έ κ°œλ°œμžκ°€ μž‘μ—…ν•  경우 κ²½κ³  λ©”μ‹œμ§€ 좜λ ₯

- μ„œλ²„μ— 문제 λ°œμƒ μ‹œ ν˜‘μ—… 및 버전 관리 μž‘μ—… 쀑단 됨

ex) CVS, SVN(Suvbersion), CVSNT, Clear Case, CMVC, Perforce λ“±

 

 

λΆ„μ‚° μ €μž₯μ†Œ 방식

버전 관리 μžλ£Œκ°€ ν•˜λ‚˜μ˜ 원격 μ €μž₯μ†Œμ™€ λΆ„μ‚°λœ 개발자 PC의 둜컬 μ €μž₯μ†Œμ— ν•¨κ»˜ μ €μž₯λ˜μ–΄ κ΄€λ¦¬λ˜λŠ” 방식

- κ°œλ°œμžλ³„λ‘œ 원격 μ €μž₯μ†Œμ˜ 자료λ₯Ό μžμ‹ μ˜ 둜컬 μ €μž₯μ†Œλ‘œ 볡사해 μž‘μ—…ν•œ ν›„ λ³€κ²½λœ λ‚΄μš©μ„ 둜컬 μ €μž₯μ†Œμ—μ„œ μš°μ„  λ°˜μ˜ν•œ λ‹€μŒ 이λ₯Ό 원격 μ €μž₯μ†Œμ— 반영 함

- 원격 μ €μž₯μ†Œμ— λ¬Έμ œκ°€ 생겨도 둜컬 μ €μž₯μ†Œμ˜ 자료λ₯Ό μ΄μš©ν•΄ μž‘μ—… ν•  수 있음

ex) Git, GNU arch, DCVS, Bazaar, TeamWare, Bitkeeper λ“±

 

 

1. μ„œλΈŒλ²„μ „ (SVN : Subversion)

CVSλ₯Ό κ°œμ„ ν•œ 것, μ•„νŒŒμΉ˜ μ†Œν”„νŠΈμ›¨μ–΄ μž¬λ‹¨μ—μ„œ 2000년에 λ°œν‘œ

CVS : 곡동 κ°œλ°œμ„ νŽΈλ¦¬ν•˜κ²Œ μž‘μ—… ν•  수 μžˆλ„λ‘ 버전 관리λ₯Ό λ„μ™€μ£ΌλŠ” μ‹œμŠ€ν…œ

 

 

2. Git

λΆ„μ‚° 버전 관리 μ‹œμŠ€ν…œ

- 지역 μ €μž₯μ†Œμ—μ„œ 버전 관리가 이루어짐, μ‹ μ†ν•œ 처리

- 원격 μ €μž₯μ†Œλ‚˜ λ„€νŠΈμ›Œν¬μ— λ¬Έμ œκ°€ λ°œμƒν•΄λ„ μž‘μ—… κ°€λŠ₯

- 브랜치λ₯Ό μ΄μš©ν•΄ λ‹€μ–‘ν•œ ν˜•νƒœμ˜ κΈ°λŠ₯ ν…ŒμŠ€νŒ… κ°€λŠ₯

- 파일의 λ³€ν™”λ₯Ό μŠ€λƒ…μƒ·μœΌλ‘œ μ €μž₯, λ²„μ „μ˜ 흐름 νŒŒμ•… κ°€λŠ₯

Git의 μ£Όμš” λͺ…λ Ήμ–΄

add : μž‘μ—… 내역을 지역 μ €μž₯μ†Œμ— μ €μž₯ν•˜κΈ° μ „ μŠ€ν…Œμ΄μ§• μ˜μ—­μ— μΆ”κ°€

commit : μž‘μ—… 내역을 지역 μ €μž₯μ†Œμ— μ €μž₯

branch : μƒˆλ‘œμš΄ 브랜치 생성

checkout : μ§€μ •ν•œ 브랜치둜 이동

merge : 브랜치 병합

init : 지역 μ €μž₯μ†Œ 생성

remote add : 원격 μ €μž₯μ†Œμ— μ—°κ²°

push : 둜컬 μ €μž₯μ†Œμ˜ λ³€κ²½ 내역을 원격 μ €μž₯μ†Œμ— 반영

fetch : 원격 μ €μž₯μ†Œμ˜ λ³€κ²½ 이λ ₯λ§Œμ„ 지역 μ €μž₯μ†Œλ‘œ κ°€μ Έμ˜΄

clone : 원격 μ €μž₯μ†Œμ˜ 전체 λ‚΄μš©μ„ 지역 μ €μž₯μ†Œλ‘œ 볡제

fork : μ§€μ •ν•œ 원격 μ €μž₯μ†Œμ˜ λ‚΄μš©μ„ μžμ‹ μ˜ 원격 μ €μž₯μ†Œλ‘œ 볡제

 

 

48. λΉŒλ“œ μžλ™ν™” 도ꡬ

 

λΉŒλ“œ μžλ™ν™” 도ꡬ

λΉŒλ“œλ₯Ό 포함해 ν…ŒμŠ€νŠΈ 및 배포λ₯Ό μžλ™ν™”ν•˜λŠ” 도ꡬ

- 지속적인 톡합 개발 ν™˜κ²½μ—μ„œ 유용

 

 λΉŒλ“œ μžλ™ν™” 도ꡬ

1. Jenkins

- μžλ°” 기반의 μ˜€ν”ˆ μ†ŒμŠ€ ν˜•νƒœ, κ°€μž₯ 많이 μ‚¬μš©λ˜λŠ” λΉŒλ“œ μžλ™ν™” 도ꡬ

- μ„œλΈ”λ¦Ώ μ»¨ν…Œμ΄λ„ˆμ—μ„œ μ‹€ν–‰λ˜λŠ” μ„œλ²„ 기반 도ꡬ

- SVN, Git λ“± λŒ€λΆ€λΆ„μ˜ ν˜•μƒ 관리 도ꡬ와 연동 κ°€λŠ₯

- Web GUI 제곡

- μ—¬λŸ¬ λŒ€μ˜ 컴퓨터λ₯Ό μ΄μš©ν•œ λΆ„μ‚° λΉŒλ“œλ‚˜ ν…ŒμŠ€νŠΈ κ°€λŠ₯ 

 

 

2. Gradle

- Groovyλ₯Ό 기반으둜 ν•œ μ˜€ν”ˆ μ†ŒμŠ€ ν˜•νƒœμ˜ μžλ™ν™” 도ꡬ

- μ•ˆλ“œλ‘œμ΄λ“œ μ•± 개발 ν™˜κ²½μ—μ„œ μ‚¬μš©, ν”ŒλŸ¬κ·ΈμΈ μ„€μ • μ‹œ JAVA, C/C++, Python λ“±μ˜ 언어도 λΉŒλ“œ κ°€λŠ₯

- DSL을 슀크립트 μ–Έμ–΄λ‘œ μ‚¬μš©

- μ‹€ν–‰ν•  처리 λͺ…령듀을 λͺ¨μ•„ νƒœμŠ€ν¬λ‘œ λ§Œλ“  ν›„ νƒœμŠ€ν¬ λ‹¨μœ„λ‘œ μ‹€ν–‰

- λΉŒλ“œ μ†λ„ 빠름

728x90
λ°˜μ‘ν˜•