2018.07.09 판도라큐브 세미나
제작자: 프로그래밍 파트 이지수
코멘트: 질문 시간에서 질문을 못 해드린 부분은 제가 후에 조사해서 PPT에 추가했습니다.
비고: 없음
판도라큐브는 세종대학교 소프트웨어융합대학 소속의 게임 제작 동아리입니다.
매주 회의마다 게임 제작과 관련된 주제로 세미나를 개최합니다.
모든 자료는 세미나 자료 제작자의 동의 하에 업로드됩니다.
세미나의 소유 및 책임은 제작자가 지닙니다.
오늘날, 모든 기업활동에 있어서 IT는 코어 비즈니스를 보조하는 보조적인 역할에서 벗어나 코어 비즈니스 그 차제가 되는 경우를 쉽게 찾아볼 수 있다. 이러한 엔터프라이즈 어플리케이션 개발에 있어서 기존의 프로젝트 중심 패러다임에서 프로덕트 중심 패러다임으로 전환에 성공한 국내외의 사례를 살펴보고 이들 사례로 부터 Best Practice를 정제하여 보고자 한다.
2018.07.09 판도라큐브 세미나
제작자: 프로그래밍 파트 이지수
코멘트: 질문 시간에서 질문을 못 해드린 부분은 제가 후에 조사해서 PPT에 추가했습니다.
비고: 없음
판도라큐브는 세종대학교 소프트웨어융합대학 소속의 게임 제작 동아리입니다.
매주 회의마다 게임 제작과 관련된 주제로 세미나를 개최합니다.
모든 자료는 세미나 자료 제작자의 동의 하에 업로드됩니다.
세미나의 소유 및 책임은 제작자가 지닙니다.
오늘날, 모든 기업활동에 있어서 IT는 코어 비즈니스를 보조하는 보조적인 역할에서 벗어나 코어 비즈니스 그 차제가 되는 경우를 쉽게 찾아볼 수 있다. 이러한 엔터프라이즈 어플리케이션 개발에 있어서 기존의 프로젝트 중심 패러다임에서 프로덕트 중심 패러다임으로 전환에 성공한 국내외의 사례를 살펴보고 이들 사례로 부터 Best Practice를 정제하여 보고자 한다.
The 2016 North Bridge & Black Duck Future of Open Source Study marks the 10th Anniversary of this survey. The study examines open source software trends on an annual basis. Notably, the 2016 survey findings position open source as today’s preeminent architecture, the foundation for nearly all applications, operating systems, cloud computing, databases, and big data.
In terms of the strategic influence open source has on their business, respondents see it as an engine for innovation, with 90% reporting they rely on open source for improved efficiency, innovation and interoperability. The most compelling reasons cited in the survey for use of open source included flexibility and freedom from vendor lock-in; competitive features and technical capabilities; ability to customize; and overall quality.
The 2016 results also show that the rapid adoption of open source has outpaced the implementation of effective open source management and security practices. Nearly half of respondents report they have no formal processes to track their open source, and half reporting that no one has responsibility for identifying known vulnerabilities and tracking remediation.
Key 2016 Insights:
Open Source Is The Modern Architecture. Open Source is the foundation now for nearly all applications, operating systems, cloud computing, databases, big data and more.
Open Source IS the Engine of Innovation. Open Source is driving business because it facilitates faster, more agile development. This translates into quicker builds, accelerated time to market and vastly superior interoperability.
There is a new generation of companies and business models emerging. Respondents report that in the next two or three years, the business models that will generate the most revenue for open source vendors are SaaS (46%); Custom Development (42%) and Services/Support (41%).
Challenges remain: Open Source security and management practices have not kept pace with rapid adoption. In the wake of high profile breaches, there is likely to be more emphasis on security.
Participation and contribution will secure the future of open source. Investing in the open source community spurs innovation, delivers exponential value and most of all, it’s fun. It continues to grow as a key hiring and retention tool in IT shops of enterprises, governments, and startups alike.
[17.02.09] Github introduction (Korean Version)Ildoo Kim
Git 혹은 소스코드 형상관리를 아예 모르는 사람을 대상으로 작성한 Starter Guide입니다. 팀에 새로운 사람이 Join하는 등의 경우에 세미나 자료로 활용합니다.
형상관리/git 개념과 command line 혹은 source tree를 활용한 기본적인 사용 방법에 대해 소개합니다.
<팀을>이라는 책을 많이 참고하였습니다.
2018년 서울시 앱 공모전 (URL: https://mplatform.seoul.go.kr )에서 GitHub 설명을 위한 자료입니다. 이전 https://www.slideshare.net/ianychoi/git-github-46020592 자료에 모바일 앱 개발 환경 및 GitHub Desktop 프로그램에 대한 부분을 추가하였습니다.
Source Tree로 버전 관리하는 법
- Git이 필요한 이유
- Stage(=Index에 기록)하기
- Commit하기
- Remote 추가하기
- Origin Remote로 GitHub 사용
- Push하기
- Clone하기
- Reset (Soft, Hard, Mixed)
- Revert
- Checkout, Detached HEAD
- 이전 Commit 수정하기
- Pull / Fetch&Merge하기
- Branch 만들기
- Fast Forward Merge하기
- 3-Way Merge하기
- 3-Way Merge에서 발생할 수 있는 Conflict 해결하기
- Visual Studio로 Conflict 해결하는 법
- Stash로 다양한 문제 해결해보기
- 오래된 저장소에서 Pull하기
- 다른 브랜치로 Commit 옮기기
- .gitignore 파일 설정하기
2. 2
오픈 소스 프로젝트에 참여하기
• 정말로 좋은 자료가 있습니다
• Python 프로젝트에 참여한 장혜식님이 만든 자료
• 오픈소스 프로젝트에 참여하기
• 오픈소스 프로젝트 생존 가이드
• 구글 Summer of Code 필승전략
3. 3
전략
오픈소스는 기술이 아니라 설득이다.
그 당위성을 설득할 수 없다면 패치는 받아들여지지 않는
다.
-- Redis 프로젝트에 참여한 강대명님 말씀
4. 4
무엇을 설득해야 할까요
• 이걸 왜 해야 하는지
– 이미 알려진 버그를 수정하거나 구현하기로 합의한 기능을 구현
한 거라면 넘어가도 괜찮습니다
– 버그라면 올바른 동작, 현재 동작, 차이점, 차이를 볼 수 있는 재
현 방법을 적도록 합시다
• 왜 이렇게 했는지
– 여러 가지 방법이 있다면 왜 이 방법으로 했는지 말할 수 있어야
하겠습니다
• 앞으로는 어떻게 할 것인지
– 코드를 고쳤다면 자동화된 테스트를 추가해 주세요
– 기능을 추가했다면 문서화를 하는 것이 좋습니다
5. 5
신뢰를 쌓아야 합니다
• 처음에는 작게 시작합시다
• 코드는 유지보수가 필요합니다
– 작은 코드는 기존 프로젝트에 있던 사람이 맡아줄 수 있습니다
– 유지보수를 해야 하는 사람은 상대편이므로, 상대편이 요구하는
사항이 있으면 받아주도록 합시다
– 큰 코드를 공헌하려면 유지보수의 책임을 져야 합니다
– 문제가 생겼을 때 나몰라라 하지 않을 거라고 처음 보는 사람을
믿기는 어렵습니다
6. 6
전술
• 받는 사람이 편하도록
• 매뉴얼을 읽읍시다
– 참여 방법에 대한 매뉴얼이 있다면 한 줄도 빠짐없이 읽도록 합
시다
• 선례를 따릅니다
– 다른 사람은 어떻게 하나 살펴보세요
7. 7
패치 만들기
• 최신 소스를 받아서
– 예전 버전에 패치하면 받는 쪽이 불편합니다
– 다른 곳으로 개발이 옮겨갔는데 이전 소스를 받는 실수 등을 주
의
– 최근 활동을 확인하고 검색을 해봅니다
• 수정하고
– 수정은 최소한도로 하는 것이 받기 편합니다
– 자기 스타일대로 포맷을 바꾼다거나 하지 맙시다
– 수정 사항이 여럿이라면 커밋을 분리
– 리팩토링을 한다면 리팩토링 커밋은 기능 변경이 없어야 합니다
• 확인
– 자동화된 테스트가 있다면 통과되는 것을 확인하세요
8. 8
패치 보내기
• 보내라는 데로 보냅시다
– 풀 리퀘스트 (GitHub, Bitbucket, …)
– 코드 리뷰 (Gerrit, Phabricator, Review Board, …)
– 이슈 트래커 (Bugzilla, Trac, …)
– 메일링 리스트
– 개인 메일
• 제목을 잘 붙이세요
• 설명도 정성껏
• 패치 보내기의 목표는 여러분이 패치를 만들며 거쳤던
수정/확인 과정을 받는 쪽에서 재현할 수 있도록 하는 것
입니다
9. 9
패치 집어넣기
• 리뷰 코멘트는 모두 답변
• 최신 소스가 변경되어 충돌이 나면 rebase
• 반응은 빠르게
– 당장 고칠 수 없더라도, 고치겠다고 말이라도 먼저 합시다
– 언제까지 하겠다고 쓰는 것도 좋습니다 (지키도록 합니다)
• 실시간으로 논의할 수 있으면 가장 좋습니다
– 시간대를 확인
– IRC 등 실시간 채팅을 활용
• 반응이 없을 때는 어떻게?
10. 10
맺는말
• 고마움을 표현합시다
– 멋진 프로젝트라면 멋지다고 메일에 쓰고
– 하는 일에 도움이 되었다면 어떻게 도움이 되었는지 씁시다
– 받는 쪽에서는 큰 힘이 됩니다
• 패치가 아니라도 좋습니다
– 문제를 만났다면 직접 고치지 못하더라도 버그 보고를 합시다
– 인터페이스나 문서를 한국어로 번역하는 것도 좋습니다
– 블로그에 어떻게 잘 썼다는 글을 쓰는 것도 도움이 됩니다
• 모두에게 도움이 됩니다
– 코드로 세상을 이롭게
– 논술 실력과 영작 실력이 쑥쑥
– 고수 개발자들에게 개인 과외를 받을 수 있는 기회