| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 |
Tags
- 객체지향
- 생성형 인공지능
- ASR
- UMAP
- 랭그래프
- TTS
- 데이터 시각화
- python 기초
- 에이전트
- 머신러닝
- 딥러닝
- Python
- CNN
- RNN
- 트랜스포머
- 알고리즘
- 소프트웨어 개발
- 자연어처리
- CLIP
- 힙정렬
- LangGraph
- python기초
- RDBMS
- Transformer
- 데이터엔지니어
- dementional reduction
- SQL
- 기초
- 정보처리기사
- 캐글
Archives
- Today
- Total
수달이네 기술 블로그
2. 소프트웨어 개발(제품 소프트웨어 버전관리) 본문
제품 소프트웨어 버전 관리
소프트웨어 버전관리 도구
소프트웨어의 신규 개발, 변경, 개선과 관련된 수정사항을 관리하는 도구
- 코드, 라이브러리, 관련문서
공유 폴더 방식 개발 완료된 파일을 약속된 위치의 폴더에 복사
• 담당자가 자기 PC로 복사, 컴파일해 에러 관리, 정상 동작 여부 확인한다.
• 정상 동작 시 각 개발자들이 다시 확인RCS
• 파일을 한사람만 수정클라이언트/서버 방식 버전 관리 자료가 서버에 저장되어 관리
• 작업 내용 축적에 용이
• 같은 파일 작업시 경고 메세지 출력CVS(중앙서버에서 클라이언트 접속 수정)
SVN(CVS의 단점을 보완)분산 저장소 방식 로컬 저장소와 원격저장소로 분리 됨
• 중앙 저장소의 파일을 로컬에 복사하여 개발
• 개발 완료시 커밋하고, 다시 원격저장소에 pushGit
• 각 PC에 완전한 저장소
• 커밋, 푸시 기능
버전 관리 도구의 유의사항
- 버전에 대한 쉬운 정보 접근성
- 불필요한 사용자에 대한 접근 제어
- 동일 프로젝트에 대한 동시 사용성(동시에 개발되도 통합되야함)
- 빠른 오류 복구 해야함(원복)
빌드 자동화 도구
소프트웨어를 생성, 테스트, 검사해 배포하기 위해 수행하는 행위의 집합
- 저장소의 소스를 자동으로 읽어 빌드, 테스트, 검사해 실행 파일을 만든다.
- 지속적 통합: 지속해서 품질 제어를 적용하는 프로세스를 실행하는 기법
빌드 자동화 프로세스

- 컴파일→패키징→단위테스트→정적 분석→리포팅→배포→최종 빌드
구성요소
- CI(Continuous Integration)서버: 빌드 프로세스를 관리하는 서버 / Jenkins, Hudson
- SCN(Source Code Management): 소스코드 형상 관리 시스템 / SVN, Git
- 빌드 도구: 동작하는 소프트웨어 생성 / Ant, Maven
- 테스트 도구: 작성된 테스트코드로 자동으로 테스트 수행하게 해주는 도구/JUnit, Selenium
- 테스트 커버리지 도구: 테스트 코드가 대상 소스코드를 얼마나 커버하는지 확인 / Emma
- 인스펙션도구: 프로그램 실행 없이 소스코드만으로 품질 확인 / CheckStyle, Cppcheck, PMD
빌드 자동화 도구의 기능
- 컴파일, 패키징, 파일 조작(디렉토리), 개발 테스트 실행, 버전관리 도구 통합, 문서생성, 배포 기능, 코드 품질 분석
Jenkins
- CI를 가능하게 하는 도구
- 서블릿 컨테이너 서버 기반으로 구동되는 시스템 CVS, SVN, Git등 버전관리도구 지원
- 쉬운설치, 웹기반 GUI, 저장소 부하 감소, 최근 빌드 제공, 실시간 피드백, 서드파티 플로그인 확장
Gradle
- 안드로이드 앱을 만드는데 필요한 안드로이드 스튜디오 자동화 시스템
- 명령을 모아 태스크로 만들고 태스크 단위로 실행
- 자바 C/C++ 파이썬 등 지원
'공부 > 정보처리기사' 카테고리의 다른 글
| 2. 소프트웨어 개발(어플리케이션 통합 테스트) (1) | 2026.05.16 |
|---|---|
| 2. 소프트웨어 개발(어플리케이션 테스트 관리) (0) | 2026.05.14 |
| 2. 소프트웨어 개발(패키징, 표준) (0) | 2026.05.12 |
| 2. 소프트웨어 개발(통합 구현, 관리) (0) | 2026.05.10 |
| 2. 소프트웨어 개발(자료구조) (0) | 2026.05.05 |