2. 개발자동화에 관심을 갖게된 이유...
● 다른 사람일은 자동화 시켜주면서 정작 나의 일은 수동
● 개발 외 배포나 빌드 작업등에 너무 많은 시간 소모
● 정형화된 개발 프로세스에 대한 갈증
● 상용 배포 작업때마다 생명 단축.. (컨디션 안좋은날 배포면…)
● 개발하면서 진행되는 수작업을 조금이라도 줄이고 개발 시간에 투자하자!
3. 테스트
개발 진행 과정
구현
패키징
배포
소스
저장
분석
설계
요구사항
전달
모니터
링
4. 테스트
조금 옛날에는...
구현
패키징
배포
소스
저장
분석
설계
요구사항
전달
모니터
링
잘 안함.. eclipse cvs
수작업
구두 수작업
전화
이메일
메신저
카톡..
svn
저장 용도
로만 사용
로컬에서war
압축
서버에 FTP
로 배포
5. 테스트
junit
수작업
현재는?
구현
패키징
배포
jira eclipse
소스
저장
분석
설계
요구사항
전달
git maven
jenkins
shell
balsamiq mockup
staruml
confluence
모니터
링
guitar
soapui
수작업
6. 신규 개발이든, 버그든, hotfix든..
모든 요청의 진입점은 jira
협업대상자가 jira를 사용하여
workflow 관리 하도록 유도하는 것
이 가장 힘든일..
아무리 좋은 툴 이라도 쉽게 협업대
상자가 사용하지 않으면 무의미..
7. 분석이나 설계가 필요하면
누구나 쉽게 접근할 수 있는 wiki로 관리
wiki 메크로 등을 활용하여 스토리보드를 웹에 올리고
스토리 보드를 기준으로 협업 진행
8. 요구사항이 fix되었으면 개발 시작~!
구현 작업 시작시에는 branch 생성 = 1feature 당 1branch
jira + gitblit 연동
해야 해당 기능 사
용 가능
9. branch 생성 시 유의사항
● 일반적인 feature 기능일 경우 develop 에서 생성
● 긴급 패치로 인한 hotfix는 master에서 생성
● gitflow 는 쓰지 않지만 프로세스는 모방하여 사용
git이 유용하다고 느꼈을때..
● 클라이언트가 featureA 요청 , featureB 요청, featureC요
청해놓고 feature A,B만 배포하자고 할때
● 같은 파일을 동일하게 수정했는데 충돌나지 않고 자동
merge 될때.. 3way merge
● feature당 새로 branch를 생성하여 시작하기 때문에 기존
소스에 영향 없이 feature에만 집중 가능
● 소스 롤백 시 branch만 이동하여 즉시 배포
가끔은 짜증날 때도 있었…
● eclipse plug in 버그가 있는 듯.. 특히 동기화 할때..
● 소스 관리를 못해서..대량으로 conflict 발생 시..
● 고급 기능까지 사용하려면 공부를 많이 해야 함..
● git 처음 접해보는 개발자들은 항상.. 질문.. 또 질문..
10. 개발자 commit -> push
gitblit hook를 이용하여 소스 push할 경우
jenkins에게 deploy 명령을 전달 할 수 있
음 jenkins api 호출
개발자가 많을 경우 push가 잦은 주기로
이루어 지므로 하루에 2번 정도
jenkins 자동 빌드 설정도 효과적 방법
11. maven module 구성과 profiles 기
능을 이용하여 배포 시 주의를 기울
였던 설정 파일 변경에서 해방~!