필요해서 하는 개발 자동화

16
개발 자동화 필요해서 하는..

Upload: none

Post on 11-Jul-2015

311 views

Category:

Engineering


2 download

TRANSCRIPT

Page 1: 필요해서 하는 개발 자동화

개발 자동화필요해서 하는..

Page 2: 필요해서 하는 개발 자동화

개발자동화에 관심을 갖게된 이유...

● 다른 사람일은 자동화 시켜주면서 정작 나의 일은 수동

● 개발 외 배포나 빌드 작업등에 너무 많은 시간 소모

● 정형화된 개발 프로세스에 대한 갈증

● 상용 배포 작업때마다 생명 단축.. (컨디션 안좋은날 배포면…)

● 개발하면서 진행되는 수작업을 조금이라도 줄이고 개발 시간에 투자하자!

Page 3: 필요해서 하는 개발 자동화

테스트

개발 진행 과정

구현패키징배포

소스저장

분석설계

요구사항 전달

모니터링

Page 4: 필요해서 하는 개발 자동화

테스트

조금 옛날에는...

구현패키징배포

소스저장

분석설계

요구사항 전달

모니터링

수작업구두전화이메일메신저카톡..

eclipse cvssvn저장 용도로만 사용

로컬에서war압축

서버에 FTP로 배포

잘 안함.. 수작업

Page 5: 필요해서 하는 개발 자동화

junit수작업

테스트

현재는?

구현패키징배포

jira eclipse

소스저장

분석설계

요구사항 전달

git mavenjenkinsshell

balsamiq mockupstarumlconfluence

모니터링

guitarsoapui수작업

Page 6: 필요해서 하는 개발 자동화

신규 개발이든, 버그든, hotfix든..모든 요청의 진입점은 jira

협업대상자가 jira를 사용하여 workflow 관리 하도록 유도하는 것이 가장 힘든일..

아무리 좋은 툴 이라도 쉽게 협업대상자가 사용하지 않으면 무의미..

Page 7: 필요해서 하는 개발 자동화

분석이나 설계가 필요하면 누구나 쉽게 접근할 수 있는 wiki로 관리wiki 메크로 등을 활용하여 스토리보드를 웹에 올리고스토리 보드를 기준으로 협업 진행

Page 8: 필요해서 하는 개발 자동화

요구사항이 fix되었으면 개발 시작~!구현 작업 시작시에는 branch 생성 = 1feature 당 1branch

jira + gitblit 연동해야 해당 기능 사용 가능

Page 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 처음 접해보는 개발자들은 항상.. 질문.. 또 질문..

Page 10: 필요해서 하는 개발 자동화

개발자 commit -> push

gitblit hook를 이용하여 소스 push할 경우 jenkins에게 deploy 명령을 전달 할 수 있음 jenkins api 호출

개발자가 많을 경우 push가 잦은 주기로이루어 지므로 하루에 2번 정도 jenkins 자동 빌드 설정도 효과적 방법

Page 11: 필요해서 하는 개발 자동화

maven module 구성과 profiles 기능을 이용하여 배포 시 주의를 기울였던 설정 파일 변경에서 해방~!

Page 12: 필요해서 하는 개발 자동화

Jenkins 주요 설정

Page 13: 필요해서 하는 개발 자동화
Page 14: 필요해서 하는 개발 자동화

개발 생산성에 도움이 되었나?

개발 기간 동안 빌드 횟수만 1,065회

다른 모듈까지 합치면 4달동안 배포 가 2,500 이상 배포

수동으로 배포한다고 가정하고..1회 배포시간을 10분이라 계산해보면 ..

10분 * 2,500회 = 417시간 17일

Page 15: 필요해서 하는 개발 자동화
Page 16: 필요해서 하는 개발 자동화

마치며..

여기 계신 다른 분들의 개발 환경도 궁금하고 더 좋은 개발 환경에 대해서 이야기 해보고 싶어요..