SlideShare uma empresa Scribd logo
1 de 16
Baixar para ler offline
필요해서 하는.. 
개발 자동화
개발자동화에 관심을 갖게된 이유... 
● 다른 사람일은 자동화 시켜주면서 정작 나의 일은 수동 
● 개발 외 배포나 빌드 작업등에 너무 많은 시간 소모 
● 정형화된 개발 프로세스에 대한 갈증 
● 상용 배포 작업때마다 생명 단축.. (컨디션 안좋은날 배포면…) 
● 개발하면서 진행되는 수작업을 조금이라도 줄이고 개발 시간에 투자하자!
테스트 
개발 진행 과정 
구현 
패키징 
배포 
소스 
저장 
분석 
설계 
요구사항 
전달 
모니터 
링
테스트 
조금 옛날에는... 
구현 
패키징 
배포 
소스 
저장 
분석 
설계 
요구사항 
전달 
모니터 
링 
잘 안함.. 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일
마치며.. 
여기 계신 다른 분들의 개발 환경도 궁금하고 더 좋은 개발 환경에 대해서 이 
야기 해보고 싶어요..

Mais conteúdo relacionado

Mais procurados

[AUG]개발자와 QA가 상생하는 테스트 프로세스
[AUG]개발자와 QA가 상생하는 테스트 프로세스[AUG]개발자와 QA가 상생하는 테스트 프로세스
[AUG]개발자와 QA가 상생하는 테스트 프로세스철민 신
 
프로젝트 Xxx에 적용하고 싶은 개발방법
프로젝트 Xxx에 적용하고 싶은 개발방법프로젝트 Xxx에 적용하고 싶은 개발방법
프로젝트 Xxx에 적용하고 싶은 개발방법도형 임
 
젠킨스 설치 및 설정
젠킨스 설치 및 설정젠킨스 설치 및 설정
젠킨스 설치 및 설정중선 곽
 
Java 그쪽 동네는
Java 그쪽 동네는Java 그쪽 동네는
Java 그쪽 동네는도형 임
 
NDC13: DVCS와 코드리뷰 그리고 자동화를 통한 쾌속 개발
NDC13: DVCS와 코드리뷰 그리고 자동화를 통한 쾌속 개발NDC13: DVCS와 코드리뷰 그리고 자동화를 통한 쾌속 개발
NDC13: DVCS와 코드리뷰 그리고 자동화를 통한 쾌속 개발Jinuk Kim
 
카카오스토리 웹팀의 코드리뷰 경험
카카오스토리 웹팀의 코드리뷰 경험카카오스토리 웹팀의 코드리뷰 경험
카카오스토리 웹팀의 코드리뷰 경험Ohgyun Ahn
 
bamboo 로 PHP 프로젝트 지속적인 배포
bamboo 로 PHP 프로젝트 지속적인 배포bamboo 로 PHP 프로젝트 지속적인 배포
bamboo 로 PHP 프로젝트 지속적인 배포KwangSeob Jeong
 
애자일 스크럼과 JIRA
애자일 스크럼과 JIRA 애자일 스크럼과 JIRA
애자일 스크럼과 JIRA Terry Cho
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous IntegrationDonghyun Seo
 
임영기님 - 코드 리뷰 시스템 도입하기
임영기님 - 코드 리뷰 시스템 도입하기임영기님 - 코드 리뷰 시스템 도입하기
임영기님 - 코드 리뷰 시스템 도입하기OnGameServer
 
Jenkins를 활용한 javascript 개발
Jenkins를 활용한 javascript 개발Jenkins를 활용한 javascript 개발
Jenkins를 활용한 javascript 개발지수 윤
 
애자일활용사례
애자일활용사례애자일활용사례
애자일활용사례Dexter Jung
 
플리토 코드리뷰 - Code Review in Flitto
플리토 코드리뷰 - Code Review in Flitto플리토 코드리뷰 - Code Review in Flitto
플리토 코드리뷰 - Code Review in FlittoYongjun Kim
 
[D2]pinpoint 개발기
[D2]pinpoint 개발기[D2]pinpoint 개발기
[D2]pinpoint 개발기NAVER D2
 
Ui test 자동화하기 - Selenium + Jenkins
Ui test 자동화하기 - Selenium + JenkinsUi test 자동화하기 - Selenium + Jenkins
Ui test 자동화하기 - Selenium + JenkinsChang Hak Yeon
 
성장하는 스타트업의 프로세스 개척기
성장하는 스타트업의 프로세스 개척기성장하는 스타트업의 프로세스 개척기
성장하는 스타트업의 프로세스 개척기DomainDriven DomainDriven
 
[NHN_NEXT] 게임 휴먼 프로젝트 CI + GitHub 세팅 방법
[NHN_NEXT] 게임 휴먼 프로젝트 CI + GitHub 세팅 방법[NHN_NEXT] 게임 휴먼 프로젝트 CI + GitHub 세팅 방법
[NHN_NEXT] 게임 휴먼 프로젝트 CI + GitHub 세팅 방법MinGeun Park
 
소프트웨어 개발 프로세스 배경 설명
소프트웨어 개발 프로세스 배경 설명소프트웨어 개발 프로세스 배경 설명
소프트웨어 개발 프로세스 배경 설명Andrew Sungjin Kim
 

Mais procurados (20)

[AUG]개발자와 QA가 상생하는 테스트 프로세스
[AUG]개발자와 QA가 상생하는 테스트 프로세스[AUG]개발자와 QA가 상생하는 테스트 프로세스
[AUG]개발자와 QA가 상생하는 테스트 프로세스
 
프로젝트 Xxx에 적용하고 싶은 개발방법
프로젝트 Xxx에 적용하고 싶은 개발방법프로젝트 Xxx에 적용하고 싶은 개발방법
프로젝트 Xxx에 적용하고 싶은 개발방법
 
젠킨스 설치 및 설정
젠킨스 설치 및 설정젠킨스 설치 및 설정
젠킨스 설치 및 설정
 
Java 그쪽 동네는
Java 그쪽 동네는Java 그쪽 동네는
Java 그쪽 동네는
 
NDC13: DVCS와 코드리뷰 그리고 자동화를 통한 쾌속 개발
NDC13: DVCS와 코드리뷰 그리고 자동화를 통한 쾌속 개발NDC13: DVCS와 코드리뷰 그리고 자동화를 통한 쾌속 개발
NDC13: DVCS와 코드리뷰 그리고 자동화를 통한 쾌속 개발
 
Jenkins
JenkinsJenkins
Jenkins
 
카카오스토리 웹팀의 코드리뷰 경험
카카오스토리 웹팀의 코드리뷰 경험카카오스토리 웹팀의 코드리뷰 경험
카카오스토리 웹팀의 코드리뷰 경험
 
bamboo 로 PHP 프로젝트 지속적인 배포
bamboo 로 PHP 프로젝트 지속적인 배포bamboo 로 PHP 프로젝트 지속적인 배포
bamboo 로 PHP 프로젝트 지속적인 배포
 
애자일 스크럼과 JIRA
애자일 스크럼과 JIRA 애자일 스크럼과 JIRA
애자일 스크럼과 JIRA
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous Integration
 
임영기님 - 코드 리뷰 시스템 도입하기
임영기님 - 코드 리뷰 시스템 도입하기임영기님 - 코드 리뷰 시스템 도입하기
임영기님 - 코드 리뷰 시스템 도입하기
 
Jenkins를 활용한 javascript 개발
Jenkins를 활용한 javascript 개발Jenkins를 활용한 javascript 개발
Jenkins를 활용한 javascript 개발
 
애자일활용사례
애자일활용사례애자일활용사례
애자일활용사례
 
플리토 코드리뷰 - Code Review in Flitto
플리토 코드리뷰 - Code Review in Flitto플리토 코드리뷰 - Code Review in Flitto
플리토 코드리뷰 - Code Review in Flitto
 
Maven
MavenMaven
Maven
 
[D2]pinpoint 개발기
[D2]pinpoint 개발기[D2]pinpoint 개발기
[D2]pinpoint 개발기
 
Ui test 자동화하기 - Selenium + Jenkins
Ui test 자동화하기 - Selenium + JenkinsUi test 자동화하기 - Selenium + Jenkins
Ui test 자동화하기 - Selenium + Jenkins
 
성장하는 스타트업의 프로세스 개척기
성장하는 스타트업의 프로세스 개척기성장하는 스타트업의 프로세스 개척기
성장하는 스타트업의 프로세스 개척기
 
[NHN_NEXT] 게임 휴먼 프로젝트 CI + GitHub 세팅 방법
[NHN_NEXT] 게임 휴먼 프로젝트 CI + GitHub 세팅 방법[NHN_NEXT] 게임 휴먼 프로젝트 CI + GitHub 세팅 방법
[NHN_NEXT] 게임 휴먼 프로젝트 CI + GitHub 세팅 방법
 
소프트웨어 개발 프로세스 배경 설명
소프트웨어 개발 프로세스 배경 설명소프트웨어 개발 프로세스 배경 설명
소프트웨어 개발 프로세스 배경 설명
 

Destaque

Atlassian confluence WIKI를 활용한 공유와 협업 환경 구성
Atlassian confluence WIKI를 활용한 공유와 협업 환경 구성Atlassian confluence WIKI를 활용한 공유와 협업 환경 구성
Atlassian confluence WIKI를 활용한 공유와 협업 환경 구성KwangSeob Jeong
 
[140315 박민근] 젠킨스를 이용한 자동빌드 시스템 구축하기(ci)
[140315 박민근] 젠킨스를 이용한 자동빌드 시스템 구축하기(ci)[140315 박민근] 젠킨스를 이용한 자동빌드 시스템 구축하기(ci)
[140315 박민근] 젠킨스를 이용한 자동빌드 시스템 구축하기(ci)MinGeun Park
 
[오픈소스컨설팅]애플리케이션 빌드 및_배포가이드_v1.0_20140211
[오픈소스컨설팅]애플리케이션 빌드 및_배포가이드_v1.0_20140211[오픈소스컨설팅]애플리케이션 빌드 및_배포가이드_v1.0_20140211
[오픈소스컨설팅]애플리케이션 빌드 및_배포가이드_v1.0_20140211Ji-Woong Choi
 
4회.세제적격연금 qn a_및_사례
4회.세제적격연금 qn a_및_사례4회.세제적격연금 qn a_및_사례
4회.세제적격연금 qn a_및_사례준헌 이
 
c++ API디자인 ch9. 발표자료
c++ API디자인 ch9. 발표자료c++ API디자인 ch9. 발표자료
c++ API디자인 ch9. 발표자료Mungyu Choi
 
현대고등학교 PHP 강의 - 번외편 PHP 설치! (설리번 프로젝트)
현대고등학교 PHP 강의 - 번외편 PHP 설치! (설리번 프로젝트)현대고등학교 PHP 강의 - 번외편 PHP 설치! (설리번 프로젝트)
현대고등학교 PHP 강의 - 번외편 PHP 설치! (설리번 프로젝트)Ukjae Jeong
 
Node.js 를 이용한 문서화 실전 사례 20130618
Node.js 를 이용한 문서화 실전 사례 20130618Node.js 를 이용한 문서화 실전 사례 20130618
Node.js 를 이용한 문서화 실전 사례 20130618광명 우
 
About IssueTracker
About IssueTrackerAbout IssueTracker
About IssueTrackerManjong Han
 
공개SW와 개발방법론(오픈소스 성공요인 사례)
공개SW와 개발방법론(오픈소스 성공요인 사례)공개SW와 개발방법론(오픈소스 성공요인 사례)
공개SW와 개발방법론(오픈소스 성공요인 사례)mosaicnet
 
오픈소스 개발 방법론 - Mozilla 사례 중심 (2010)
오픈소스 개발 방법론 - Mozilla 사례 중심 (2010)오픈소스 개발 방법론 - Mozilla 사례 중심 (2010)
오픈소스 개발 방법론 - Mozilla 사례 중심 (2010)Channy Yun
 
공간정보아카데미 - Day1 오픈소스개발 일반
공간정보아카데미 - Day1 오픈소스개발 일반공간정보아카데미 - Day1 오픈소스개발 일반
공간정보아카데미 - Day1 오픈소스개발 일반BJ Jang
 
Doxygen 사용법
Doxygen 사용법Doxygen 사용법
Doxygen 사용법YoungSu Son
 
Aug seoul 활동 가이드라인
Aug seoul 활동 가이드라인Aug seoul 활동 가이드라인
Aug seoul 활동 가이드라인철민 신
 
E1_Deview nhn애자일개발 세션소개
E1_Deview nhn애자일개발 세션소개E1_Deview nhn애자일개발 세션소개
E1_Deview nhn애자일개발 세션소개NAVER D2
 
Redmine키노트
Redmine키노트Redmine키노트
Redmine키노트명규 장
 
최종Ppt
최종Ppt최종Ppt
최종Ppt성관 천
 
[오픈소스컨설팅] Atlassian webinar 기본 트러블슈팅(1 of 2)
[오픈소스컨설팅] Atlassian webinar 기본 트러블슈팅(1 of 2)[오픈소스컨설팅] Atlassian webinar 기본 트러블슈팅(1 of 2)
[오픈소스컨설팅] Atlassian webinar 기본 트러블슈팅(1 of 2)Osc Osc
 
대용량 로그분석 Bigquery로 간단히 사용하기
대용량 로그분석 Bigquery로 간단히 사용하기대용량 로그분석 Bigquery로 간단히 사용하기
대용량 로그분석 Bigquery로 간단히 사용하기Jaikwang Lee
 
[전문가 발표] DRC참가기 & 로봇 정신 (한재권 박사)
[전문가 발표] DRC참가기 & 로봇 정신 (한재권 박사)[전문가 발표] DRC참가기 & 로봇 정신 (한재권 박사)
[전문가 발표] DRC참가기 & 로봇 정신 (한재권 박사)KOS-ROBOT
 

Destaque (20)

Atlassian confluence WIKI를 활용한 공유와 협업 환경 구성
Atlassian confluence WIKI를 활용한 공유와 협업 환경 구성Atlassian confluence WIKI를 활용한 공유와 협업 환경 구성
Atlassian confluence WIKI를 활용한 공유와 협업 환경 구성
 
[140315 박민근] 젠킨스를 이용한 자동빌드 시스템 구축하기(ci)
[140315 박민근] 젠킨스를 이용한 자동빌드 시스템 구축하기(ci)[140315 박민근] 젠킨스를 이용한 자동빌드 시스템 구축하기(ci)
[140315 박민근] 젠킨스를 이용한 자동빌드 시스템 구축하기(ci)
 
[오픈소스컨설팅]애플리케이션 빌드 및_배포가이드_v1.0_20140211
[오픈소스컨설팅]애플리케이션 빌드 및_배포가이드_v1.0_20140211[오픈소스컨설팅]애플리케이션 빌드 및_배포가이드_v1.0_20140211
[오픈소스컨설팅]애플리케이션 빌드 및_배포가이드_v1.0_20140211
 
4회.세제적격연금 qn a_및_사례
4회.세제적격연금 qn a_및_사례4회.세제적격연금 qn a_및_사례
4회.세제적격연금 qn a_및_사례
 
c++ API디자인 ch9. 발표자료
c++ API디자인 ch9. 발표자료c++ API디자인 ch9. 발표자료
c++ API디자인 ch9. 발표자료
 
현대고등학교 PHP 강의 - 번외편 PHP 설치! (설리번 프로젝트)
현대고등학교 PHP 강의 - 번외편 PHP 설치! (설리번 프로젝트)현대고등학교 PHP 강의 - 번외편 PHP 설치! (설리번 프로젝트)
현대고등학교 PHP 강의 - 번외편 PHP 설치! (설리번 프로젝트)
 
Node.js 를 이용한 문서화 실전 사례 20130618
Node.js 를 이용한 문서화 실전 사례 20130618Node.js 를 이용한 문서화 실전 사례 20130618
Node.js 를 이용한 문서화 실전 사례 20130618
 
About IssueTracker
About IssueTrackerAbout IssueTracker
About IssueTracker
 
공개SW와 개발방법론(오픈소스 성공요인 사례)
공개SW와 개발방법론(오픈소스 성공요인 사례)공개SW와 개발방법론(오픈소스 성공요인 사례)
공개SW와 개발방법론(오픈소스 성공요인 사례)
 
오픈소스 개발 방법론 - Mozilla 사례 중심 (2010)
오픈소스 개발 방법론 - Mozilla 사례 중심 (2010)오픈소스 개발 방법론 - Mozilla 사례 중심 (2010)
오픈소스 개발 방법론 - Mozilla 사례 중심 (2010)
 
공간정보아카데미 - Day1 오픈소스개발 일반
공간정보아카데미 - Day1 오픈소스개발 일반공간정보아카데미 - Day1 오픈소스개발 일반
공간정보아카데미 - Day1 오픈소스개발 일반
 
Doxygen 사용법
Doxygen 사용법Doxygen 사용법
Doxygen 사용법
 
Aug seoul 활동 가이드라인
Aug seoul 활동 가이드라인Aug seoul 활동 가이드라인
Aug seoul 활동 가이드라인
 
E1_Deview nhn애자일개발 세션소개
E1_Deview nhn애자일개발 세션소개E1_Deview nhn애자일개발 세션소개
E1_Deview nhn애자일개발 세션소개
 
Redmine키노트
Redmine키노트Redmine키노트
Redmine키노트
 
최종Ppt
최종Ppt최종Ppt
최종Ppt
 
[오픈소스컨설팅] Atlassian webinar 기본 트러블슈팅(1 of 2)
[오픈소스컨설팅] Atlassian webinar 기본 트러블슈팅(1 of 2)[오픈소스컨설팅] Atlassian webinar 기본 트러블슈팅(1 of 2)
[오픈소스컨설팅] Atlassian webinar 기본 트러블슈팅(1 of 2)
 
Jenkins소개
Jenkins소개Jenkins소개
Jenkins소개
 
대용량 로그분석 Bigquery로 간단히 사용하기
대용량 로그분석 Bigquery로 간단히 사용하기대용량 로그분석 Bigquery로 간단히 사용하기
대용량 로그분석 Bigquery로 간단히 사용하기
 
[전문가 발표] DRC참가기 & 로봇 정신 (한재권 박사)
[전문가 발표] DRC참가기 & 로봇 정신 (한재권 박사)[전문가 발표] DRC참가기 & 로봇 정신 (한재권 박사)
[전문가 발표] DRC참가기 & 로봇 정신 (한재권 박사)
 

Semelhante a 필요해서 하는 개발 자동화

오픈소스 컨트리뷰톤 2020 backend.ai 발표자료
오픈소스 컨트리뷰톤 2020 backend.ai 발표자료오픈소스 컨트리뷰톤 2020 backend.ai 발표자료
오픈소스 컨트리뷰톤 2020 backend.ai 발표자료지원 정
 
레가시 프로젝트의 빌드 자동화
레가시 프로젝트의 빌드 자동화레가시 프로젝트의 빌드 자동화
레가시 프로젝트의 빌드 자동화Jaehoon Choi
 
[123] electron 김성훈
[123] electron 김성훈[123] electron 김성훈
[123] electron 김성훈NAVER D2
 
청강대 특강 - 프로젝트 제대로 해보기
청강대 특강 - 프로젝트 제대로 해보기청강대 특강 - 프로젝트 제대로 해보기
청강대 특강 - 프로젝트 제대로 해보기Chris Ohk
 
프로젝트 관리 및 지켜야 할 사항들
프로젝트 관리 및 지켜야 할 사항들프로젝트 관리 및 지켜야 할 사항들
프로젝트 관리 및 지켜야 할 사항들Lee Geonhee
 
AngularJS In Production
AngularJS In ProductionAngularJS In Production
AngularJS In ProductionMooYeol Lee
 
Kubernetes를 통한 laravel 개발프로세스 개선하기
Kubernetes를 통한 laravel 개발프로세스 개선하기Kubernetes를 통한 laravel 개발프로세스 개선하기
Kubernetes를 통한 laravel 개발프로세스 개선하기Changyeop Kim
 
이승재, 박경재, NDC Replay 제작기: static website, static backoffice, NDC2017
이승재, 박경재, NDC Replay 제작기: static website, static backoffice, NDC2017이승재, 박경재, NDC Replay 제작기: static website, static backoffice, NDC2017
이승재, 박경재, NDC Replay 제작기: static website, static backoffice, NDC2017devCAT Studio, NEXON
 
[부스트캠프 Tech Talk] 최재필_P 스테이지에서 Git으로 협업하기
[부스트캠프 Tech Talk] 최재필_P 스테이지에서 Git으로 협업하기[부스트캠프 Tech Talk] 최재필_P 스테이지에서 Git으로 협업하기
[부스트캠프 Tech Talk] 최재필_P 스테이지에서 Git으로 협업하기CONNECT FOUNDATION
 
svn 능력자를 위한 git 개념 가이드
svn 능력자를 위한 git 개념 가이드svn 능력자를 위한 git 개념 가이드
svn 능력자를 위한 git 개념 가이드Insub Lee
 
[Play.node] node.js 를 사용한 대규모 글로벌(+중국) 서비스
[Play.node] node.js 를 사용한 대규모 글로벌(+중국) 서비스[Play.node] node.js 를 사용한 대규모 글로벌(+중국) 서비스
[Play.node] node.js 를 사용한 대규모 글로벌(+중국) 서비스Dan Kang (강동한)
 
[HYSS 2016] 쉽고 빠르게 시작하는 Volatility Plugin 개발
[HYSS 2016] 쉽고 빠르게 시작하는 Volatility Plugin 개발[HYSS 2016] 쉽고 빠르게 시작하는 Volatility Plugin 개발
[HYSS 2016] 쉽고 빠르게 시작하는 Volatility Plugin 개발동현 김
 
[Kerference] 쉽고 빠르게 시작하는 Volatility plugin 개발 - 김동현(BoB)
[Kerference] 쉽고 빠르게 시작하는 Volatility plugin 개발 - 김동현(BoB)[Kerference] 쉽고 빠르게 시작하는 Volatility plugin 개발 - 김동현(BoB)
[Kerference] 쉽고 빠르게 시작하는 Volatility plugin 개발 - 김동현(BoB)NAVER D2
 
제13회컨퍼런스 조대협 서버사이드개발
제13회컨퍼런스 조대협 서버사이드개발제13회컨퍼런스 조대협 서버사이드개발
제13회컨퍼런스 조대협 서버사이드개발Terry Cho
 
20년된 Naver Cafe 서비스가 Modularization으로 진화 하기_정동진.pdf
20년된 Naver Cafe 서비스가 Modularization으로 진화 하기_정동진.pdf20년된 Naver Cafe 서비스가 Modularization으로 진화 하기_정동진.pdf
20년된 Naver Cafe 서비스가 Modularization으로 진화 하기_정동진.pdfeastarJeong2
 
[NDC17] 왓 스튜디오 서비스파트
[NDC17] 왓 스튜디오 서비스파트[NDC17] 왓 스튜디오 서비스파트
[NDC17] 왓 스튜디오 서비스파트Chanwoong Kim
 
Python Korea 2014년 6월 세미나 - Windows 환경에서 Python 개발환경 세팅하기
Python Korea 2014년 6월 세미나 - Windows 환경에서 Python 개발환경 세팅하기Python Korea 2014년 6월 세미나 - Windows 환경에서 Python 개발환경 세팅하기
Python Korea 2014년 6월 세미나 - Windows 환경에서 Python 개발환경 세팅하기Joongi Kim
 
멸종하는 공룡이 되지 않으려면
멸종하는 공룡이 되지 않으려면멸종하는 공룡이 되지 않으려면
멸종하는 공룡이 되지 않으려면Byeongsu Kang
 
웹 Front-End 실무 이야기
웹 Front-End 실무 이야기웹 Front-End 실무 이야기
웹 Front-End 실무 이야기JinKwon Lee
 

Semelhante a 필요해서 하는 개발 자동화 (20)

오픈소스 컨트리뷰톤 2020 backend.ai 발표자료
오픈소스 컨트리뷰톤 2020 backend.ai 발표자료오픈소스 컨트리뷰톤 2020 backend.ai 발표자료
오픈소스 컨트리뷰톤 2020 backend.ai 발표자료
 
레가시 프로젝트의 빌드 자동화
레가시 프로젝트의 빌드 자동화레가시 프로젝트의 빌드 자동화
레가시 프로젝트의 빌드 자동화
 
[123] electron 김성훈
[123] electron 김성훈[123] electron 김성훈
[123] electron 김성훈
 
청강대 특강 - 프로젝트 제대로 해보기
청강대 특강 - 프로젝트 제대로 해보기청강대 특강 - 프로젝트 제대로 해보기
청강대 특강 - 프로젝트 제대로 해보기
 
프로젝트 관리 및 지켜야 할 사항들
프로젝트 관리 및 지켜야 할 사항들프로젝트 관리 및 지켜야 할 사항들
프로젝트 관리 및 지켜야 할 사항들
 
Git workflow
Git workflowGit workflow
Git workflow
 
AngularJS In Production
AngularJS In ProductionAngularJS In Production
AngularJS In Production
 
Kubernetes를 통한 laravel 개발프로세스 개선하기
Kubernetes를 통한 laravel 개발프로세스 개선하기Kubernetes를 통한 laravel 개발프로세스 개선하기
Kubernetes를 통한 laravel 개발프로세스 개선하기
 
이승재, 박경재, NDC Replay 제작기: static website, static backoffice, NDC2017
이승재, 박경재, NDC Replay 제작기: static website, static backoffice, NDC2017이승재, 박경재, NDC Replay 제작기: static website, static backoffice, NDC2017
이승재, 박경재, NDC Replay 제작기: static website, static backoffice, NDC2017
 
[부스트캠프 Tech Talk] 최재필_P 스테이지에서 Git으로 협업하기
[부스트캠프 Tech Talk] 최재필_P 스테이지에서 Git으로 협업하기[부스트캠프 Tech Talk] 최재필_P 스테이지에서 Git으로 협업하기
[부스트캠프 Tech Talk] 최재필_P 스테이지에서 Git으로 협업하기
 
svn 능력자를 위한 git 개념 가이드
svn 능력자를 위한 git 개념 가이드svn 능력자를 위한 git 개념 가이드
svn 능력자를 위한 git 개념 가이드
 
[Play.node] node.js 를 사용한 대규모 글로벌(+중국) 서비스
[Play.node] node.js 를 사용한 대규모 글로벌(+중국) 서비스[Play.node] node.js 를 사용한 대규모 글로벌(+중국) 서비스
[Play.node] node.js 를 사용한 대규모 글로벌(+중국) 서비스
 
[HYSS 2016] 쉽고 빠르게 시작하는 Volatility Plugin 개발
[HYSS 2016] 쉽고 빠르게 시작하는 Volatility Plugin 개발[HYSS 2016] 쉽고 빠르게 시작하는 Volatility Plugin 개발
[HYSS 2016] 쉽고 빠르게 시작하는 Volatility Plugin 개발
 
[Kerference] 쉽고 빠르게 시작하는 Volatility plugin 개발 - 김동현(BoB)
[Kerference] 쉽고 빠르게 시작하는 Volatility plugin 개발 - 김동현(BoB)[Kerference] 쉽고 빠르게 시작하는 Volatility plugin 개발 - 김동현(BoB)
[Kerference] 쉽고 빠르게 시작하는 Volatility plugin 개발 - 김동현(BoB)
 
제13회컨퍼런스 조대협 서버사이드개발
제13회컨퍼런스 조대협 서버사이드개발제13회컨퍼런스 조대협 서버사이드개발
제13회컨퍼런스 조대협 서버사이드개발
 
20년된 Naver Cafe 서비스가 Modularization으로 진화 하기_정동진.pdf
20년된 Naver Cafe 서비스가 Modularization으로 진화 하기_정동진.pdf20년된 Naver Cafe 서비스가 Modularization으로 진화 하기_정동진.pdf
20년된 Naver Cafe 서비스가 Modularization으로 진화 하기_정동진.pdf
 
[NDC17] 왓 스튜디오 서비스파트
[NDC17] 왓 스튜디오 서비스파트[NDC17] 왓 스튜디오 서비스파트
[NDC17] 왓 스튜디오 서비스파트
 
Python Korea 2014년 6월 세미나 - Windows 환경에서 Python 개발환경 세팅하기
Python Korea 2014년 6월 세미나 - Windows 환경에서 Python 개발환경 세팅하기Python Korea 2014년 6월 세미나 - Windows 환경에서 Python 개발환경 세팅하기
Python Korea 2014년 6월 세미나 - Windows 환경에서 Python 개발환경 세팅하기
 
멸종하는 공룡이 되지 않으려면
멸종하는 공룡이 되지 않으려면멸종하는 공룡이 되지 않으려면
멸종하는 공룡이 되지 않으려면
 
웹 Front-End 실무 이야기
웹 Front-End 실무 이야기웹 Front-End 실무 이야기
웹 Front-End 실무 이야기
 

Último

실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석
실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석
실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석JMP Korea
 
데이터 분석 문제 해결을 위한 나의 JMP 활용법
데이터 분석 문제 해결을 위한 나의 JMP 활용법데이터 분석 문제 해결을 위한 나의 JMP 활용법
데이터 분석 문제 해결을 위한 나의 JMP 활용법JMP Korea
 
(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?
(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?
(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?Jay Park
 
JMP를 활용한 전자/반도체 산업 Yield Enhancement Methodology
JMP를 활용한 전자/반도체 산업 Yield Enhancement MethodologyJMP를 활용한 전자/반도체 산업 Yield Enhancement Methodology
JMP를 활용한 전자/반도체 산업 Yield Enhancement MethodologyJMP Korea
 
공학 관점에서 바라본 JMP 머신러닝 최적화
공학 관점에서 바라본 JMP 머신러닝 최적화공학 관점에서 바라본 JMP 머신러닝 최적화
공학 관점에서 바라본 JMP 머신러닝 최적화JMP Korea
 
JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개
JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개
JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개JMP Korea
 
JMP가 걸어온 여정, 새로운 도약 JMP 18!
JMP가 걸어온 여정, 새로운 도약 JMP 18!JMP가 걸어온 여정, 새로운 도약 JMP 18!
JMP가 걸어온 여정, 새로운 도약 JMP 18!JMP Korea
 
JMP를 활용한 가속열화 분석 사례
JMP를 활용한 가속열화 분석 사례JMP를 활용한 가속열화 분석 사례
JMP를 활용한 가속열화 분석 사례JMP Korea
 

Último (8)

실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석
실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석
실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석
 
데이터 분석 문제 해결을 위한 나의 JMP 활용법
데이터 분석 문제 해결을 위한 나의 JMP 활용법데이터 분석 문제 해결을 위한 나의 JMP 활용법
데이터 분석 문제 해결을 위한 나의 JMP 활용법
 
(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?
(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?
(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?
 
JMP를 활용한 전자/반도체 산업 Yield Enhancement Methodology
JMP를 활용한 전자/반도체 산업 Yield Enhancement MethodologyJMP를 활용한 전자/반도체 산업 Yield Enhancement Methodology
JMP를 활용한 전자/반도체 산업 Yield Enhancement Methodology
 
공학 관점에서 바라본 JMP 머신러닝 최적화
공학 관점에서 바라본 JMP 머신러닝 최적화공학 관점에서 바라본 JMP 머신러닝 최적화
공학 관점에서 바라본 JMP 머신러닝 최적화
 
JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개
JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개
JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개
 
JMP가 걸어온 여정, 새로운 도약 JMP 18!
JMP가 걸어온 여정, 새로운 도약 JMP 18!JMP가 걸어온 여정, 새로운 도약 JMP 18!
JMP가 걸어온 여정, 새로운 도약 JMP 18!
 
JMP를 활용한 가속열화 분석 사례
JMP를 활용한 가속열화 분석 사례JMP를 활용한 가속열화 분석 사례
JMP를 활용한 가속열화 분석 사례
 

필요해서 하는 개발 자동화

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