필요해서 하는 개발 자동화

Post on 11-Jul-2015

312 Views

Category:

Engineering

2 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

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

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

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

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

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

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

테스트

개발 진행 과정

구현패키징배포

소스저장

분석설계

요구사항 전달

모니터링

테스트

조금 옛날에는...

구현패키징배포

소스저장

분석설계

요구사항 전달

모니터링

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

eclipse cvssvn저장 용도로만 사용

로컬에서war압축

서버에 FTP로 배포

잘 안함.. 수작업

junit수작업

테스트

현재는?

구현패키징배포

jira eclipse

소스저장

분석설계

요구사항 전달

git mavenjenkinsshell

balsamiq mockupstarumlconfluence

모니터링

guitarsoapui수작업

신규 개발이든, 버그든, 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일

마치며..

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

top related