개인공부
[KHUDA GIT 스터디 1일차] 소프트웨어 메인터넌스와 버전 관리
알파카유진정
2025. 1. 28. 02:50
참고 강의 영상 | https://www.youtube.com/watch?v=EAPPXAIW9H4&list=PLz7S5PHCu4OniCxtW6jOOQEJEXX7PAUlA&index=10
범위 | 이성원 교수님의오픈소스SW개발방법및도구 (청강) 08. Software Maintenance (약 2시간)
학습 내용
소프트웨어 메인터넌스의 개념과 중요성은 현대 소프트웨어 개발의 핵심이다. 특히 코로나19로 인해 원격 작업이 증가하면서, 물리적 공간에 제한되지 않는 협업 방식의 중요성이 더욱 부각되었다. 소프트웨어는 단순한 기능 구현을 넘어 지속적인 업데이트와 관리가 필요한 진화하는 산물이다.
1. 소프트웨어 메인터넌스와 협업
영역 | 주요 내용 | 실무 적용 |
---|---|---|
소프트웨어 개발 | • 개별 및 팀 단위 개발 가능 • 버전 관리와 백업 필수 |
• 효율적인 팀 협업 • 결과물 공유 방법 확립 |
원격 작업 | • 코로나19로 인한 개발 방식 변화 • 전 세계적 협업 필요성 |
• 온라인 협업 도구 활용 • 실시간 소통 체계 구축 |
2. 구글 닥스를 통한 협업
구글 닥스는 경희대학교의 유료 메일 시스템과 연계되어 있어 학생들이 실제 협업 도구를 경험할 수 있다. 주요 특징은 다음과 같다:
- 문서 작성, 스프레드시트, 프레젠테이션 도구 제공
- 사이버 상에서의 동시 작업 가능
- 다양한 브라우저를 통한 접근성
- 설계 문서 및 발표 자료 작업에 효과적
3. 버전 관리 시스템의 진화
시스템 | 특징 | 활용 |
---|---|---|
CVS | • 1985년 개발 • 클라이언트-서버 구조 • 체크인/체크아웃 개념 도입 |
• 2008년 이후에도 일부 사용 • 오픈 소스로 발전 |
SVN | • CVS의 후속 버전 • 중앙화되지 않은 방식 • 효율적인 저장소 관리 |
• 다양한 프로젝트 수행 • 협업 지원 강화 |
Git | • 분산 버전 관리 시스템 • 로컬 저장소 활용 • 풀 리퀘스트 시스템 |
• 오프라인 작업 가능 • 효율적인 코드 리뷰 |
소프트웨어 개발은 팀원들 간의 명확한 역할 분담이 중요하다. 예를 들어, 한 팀원은 사용자 인터페이스를, 다른 팀원은 서버 로직을, 또 다른 팀원은 데이터베이스를 담당하는 방식으로 진행된다. 각자 개발한 모듈은 버전 컨트롤을 통해 효과적으로 통합된다.
오픈 소스 커뮤니티의 발전으로 학생들은 무료로 다양한 개발 도구를 경험할 수 있으며, 이를 통해 개인 포트폴리오를 구성하는 것이 권장된다. 특히 한국은 오픈 소스 인프라 사용이 발전 단계에 있어, 학생들의 적극적인 참여가 중요하다.
용어 정리
구분 | 주요 용어 | 설명 |
---|---|---|
버전 관리 | CVS | 초기의 중앙집중식 버전 관리 시스템 |
SVN | CVS의 후속 버전으로, 개선된 기능을 제공 | |
Git | 분산형 버전 관리 시스템으로 현재 가장 널리 사용됨 | |
협업 도구 | 구글 닥스 | 실시간 문서 공동 작업이 가능한 클라우드 기반 도구 |
GitHub | Git 기반의 코드 호스팅 및 협업 플랫폼 | |
개발 프로세스 | 브랜치 | 독립적인 개발 라인을 만들어 작업할 수 있는 기능 |
풀 리퀘스트 | 코드 변경사항을 검토하고 통합하는 과정 | |
커밋 | 코드 변경사항을 저장하는 단위 |