ݺߣ

ݺߣShare a Scribd company logo
필요해서 하는.. 
개발 자동화
개발자동화에 관심을 갖게된 이유... 
● 다른 사람일은 자동화 시켜주면서 정작 나의 일은 수동 
● 개발 외 배포나 빌드 작업등에 너무 많은 시간 소모 
● 정형화된 개발 프로세스에 대한 갈증 
● 상용 배포 작업때마다 생명 단축.. (컨디션 안좋은날 배포면…) 
● 개발하면서 진행되는 수작업을 조금이라도 줄이고 개발 시간에 투자하자!
테스트 
개발 진행 과정 
구현 
패키징 
배포 
소스 
저장 
분석 
설계 
요구사항 
전달 
모니터 
링
테스트 
조금 옛날에는... 
구현 
패키징 
배포 
소스 
저장 
분석 
설계 
요구사항 
전달 
모니터 
링 
잘 안함.. eclipse cvs 
수작업 
구두 수작업 
전화 
이메일 
메신저 
카톡.. 
svn 
저장 용도 
로만 사용 
로컬에서war 
압축 
서버에 FTP 
로 배포
테스트 
junit 
수작업 
현재는? 
구현 
패키징 
배포 
jira eclipse 
소스 
저장 
분석 
설계 
요구사항 
전달 
git maven 
jenkins 
shell 
balsamiq mockup 
staruml 
confluence 
모니터 
링 
guitar 
soapui 
수작업
신규 개발이든, 버그든, hotfix든.. 
모든 요청의 진입점은 jira 
협업대상자가 jira를 사용하여 
workflow 관리 하도록 유도하는 것 
이 가장 힘든일.. 
아무리 좋은 툴 이라도 쉽게 협업대 
상자가 사용하지 않으면 무의미..
분석이나 설계가 필요하면 
누구나 쉽게 접근할 수 있는 wiki로 관리 
wiki 메크로 등을 활용하여 스토리보드를 웹에 올리고 
스토리 보드를 기준으로 협업 진행
요구사항이 fix되었으면 개발 시작~! 
구현 작업 시작시에는 branch 생성 = 1feature 당 1branch 
jira + gitblit 연동 
해야 해당 기능 사 
용 가능
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 처음 접해보는 개발자들은 항상.. 질문.. 또 질문..
개발자 commit -> push 
gitblit hook를 이용하여 소스 push할 경우 
jenkins에게 deploy 명령을 전달 할 수 있 
음 jenkins api 호출 
개발자가 많을 경우 push가 잦은 주기로 
이루어 지므로 하루에 2번 정도 
jenkins 자동 빌드 설정도 효과적 방법
maven module 구성과 profiles 기 
능을 이용하여 배포 시 주의를 기울 
였던 설정 파일 변경에서 해방~!
Jenkins 주요 설정
필요해서 하는 개발 자동화
개발 생산성에 도움이 되었나? 
개발 기간 동안 빌드 횟수만 1,065회 
다른 모듈까지 합치면 4달동안 배포 가 
2,500 이상 배포 
수동으로 배포한다고 가정하고.. 
1회 배포시간을 10분이라 계산해보면.. 
10분 * 2,500회 = 417시간 17일
필요해서 하는 개발 자동화
마치며.. 
여기 계신 다른 분들의 개발 환경도 궁금하고 더 좋은 개발 환경에 대해서 이 
야기 해보고 싶어요..

More Related Content

필요해서 하는 개발 자동화

  • 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 기 능을 이용하여 배포 시 주의를 기울 였던 설정 파일 변경에서 해방~!
  • 14. 개발 생산성에 도움이 되었나? 개발 기간 동안 빌드 횟수만 1,065회 다른 모듈까지 합치면 4달동안 배포 가 2,500 이상 배포 수동으로 배포한다고 가정하고.. 1회 배포시간을 10분이라 계산해보면.. 10분 * 2,500회 = 417시간 17일
  • 16. 마치며.. 여기 계신 다른 분들의 개발 환경도 궁금하고 더 좋은 개발 환경에 대해서 이 야기 해보고 싶어요..