이과목은 3가지목표를 지향한다.
첫째, 오픈소스소프트웨어개발을위한기본개념과도구, 특히소스코드버전 컨트롤과패키지관리, 프로젝트빌드를 중점으로 배운다.
둘째, 애자일기반 소프트웨어 개발방법인 짝 프로그래밍, 테스트주도개발, 행위주도개발, 클라우드기반 데브옵스를 공부한다.
셋째, 새로운/낯선소프트웨어 개발환경 및 도구를 스스로 배우는태도를 배우는것을 목적으로 한다.
새로운추세의 컴퓨팅환경에 빠르게 적응하여 협력적인 소프트웨어개발을 주도할수있는 능력을배운다.
- 오픈소스 소프트웨어(Open Source Software, OSS)는 소스코드를 공개하고 자유롭게 사용·수정·배포할 수 있는 소프트웨어를 의미한다.
- 오픈소스 발표자료
- 대표 사례: Linux, Apache, MySQL, Python, TensorFlow
- 철학: “공유와 협업을 통해 더 나은 세상을 만든다.”
- 주요 개념: 자유(Free), 개방(Open), 협업(Collaboration)
“Free as in freedom, not free as in free beer.” – Richard Stallman
버전 관리 시스템(VCS, Version Control System)은
코드의 변경 이력을 추적하고, 협업 시 충돌을 방지하며, 과거 버전으로 복원할 수 있도록 도와주는 시스템이다.
- 중앙집중식 버전 관리 (CVCS) : 서버 중심, 예) Subversion (SVN)
- 분산 버전 관리 (DVCS) : 각 클라이언트가 전체 히스토리를 보유, 예) Git
Git은 *리누스 토르발스(Linus Torvalds)*가 개발한 분산 버전 관리 시스템(DVCS) 입니다.
빠른 속도, 데이터 무결성, 비선형 개발 지원을 특징으로 합니다.
- git init # 로컬 저장소 생성
- git clone # 원격 저장소 복제
- git add . # 변경 사항 스테이징
- git commit -m "message" # 변경 사항 커밋
- git push # 원격 저장소로 업로드
GitHub는 Git 기반 저장소를 온라인에서 관리하고 협업할 수 있는 플랫폼입니다. 오픈소스 생태계의 중심지로, 수많은 개발자들이 프로젝트를 공유하고 발전시킵니다.
- Fork → 다른 사람의 저장소를 자신의 계정으로 복제
- Pull Request (PR) → 수정된 내용을 원본 저장소에 병합 요청
- Issue & Discussion → 피드백과 제안 관리
PR(Pull Request)은 단순한 병합 요청이 아니라 “협력의 시작”이다.
기본 명령어를 넘어, Git의 고급 기능을 이해하면 협업과 프로젝트 관리가 훨씬 효율적입니다.
- main → 배포용
- develop → 개발용
- feature/ → 기능 단위
- hotfix/ → 긴급 수정
- Rebase vs Merge
- merge: 기존 히스토리를 유지하면서 병합
- rebase: 커밋 히스토리를 재정렬하여 깔끔하게 유지
Tag 사용 예시
git tag v1.0.0 git push origin v1.0.0
Markdown은 간결한 문법으로 구조화된 문서를 작성할 수 있는 경량 마크업 언어입니다. 주로 README.md, 블로그, 위키, 문서 작성 등에 활용됩니다.
기능 문법 결과
제목 # 제목 # 제목
강조 기울임, 굵게 기울임, 굵게
코드 print("hi")` print("hi")
목록 - item - item
링크 링크 링크
Markdown은 단순하지만 강력합니다. 협업 문서, 프로젝트 README, 기술 블로그 등에서 널리 사용됩니다.
