스프링캠프2014 - 즐거운 개발을 위한 스마트한 습관
Post on 26-May-2015
2.884 Views
Preview:
DESCRIPTION
TRANSCRIPT
목차
• 즐거운 개발이란 무엇일까?
• 통합개발환경 - 필요한 이유
• 통합개발환경 - 구축 과정
• 통합개발환경 - 활용
즐거운 개발개발(Development)은 멘탈 스포츠
즐거운 개발의 조건
• 개발과 관련된 요소들이 통합되고
• 인프라와 문화가 잘 구축되면
• 보다 수월한 개발이 가능하고
• 구성원 간 의사소통이 원활해지면
• 생산성과 신뢰도 향상
그리고 좋은 컨디션
그리고 좋은 컨디션
그리고 좋은 컨디션
하지만…이것으론 충분하지 않습니다.
해결해야할 다양한 문제들이 많이 있죠
외부 방해요소
자신에게 관대함
무리한 일정 제시
통합개발환경 - 필요한 이유image : http://www.presentationzen.com/presentationzen/2005/10/apple_special_e.html
통합개발환경 없던 시절• 형상관리가 안되서 소스코드 변경이력 추적이 굉장히 어려웠고 작업내용 롤백도 쉽지 않았고
• 이슈관리도구와 같은 커뮤니케이션 도구의 부재로 제로보드와 같은 게시판을 활용하고
• 빌드서버의 부재로 각자 로컬에서 빌드 결국 "제 컴에선 잘 되는데요"라는 이야기를 어렵지 않게 접했고
• 무분별한 copy & paste로 인해 소스코드량이 기하급수적으로 늘어던 시절
동영상 링크 : http://www.youtube.com/watch?v=8_lfxPI5ObM&t=3m6s
03:06 ~ 03:40
통합개발환경 - 구축 과정image : http://www.presentationzen.com/presentationzen/2005/10/apple_special_e.html
통합개발환경 기술셋 선정!
• 이슈관리도구
• Redmine
• 형상관리
• Subversion
• 빌드자동화 도구
• Maven
!
• 빌드서버
• Jenkins
• 품질지표 분석
• SonarQube
• 저장소 관리 도구
• Sonatype Nexus
기술셋 선정 기준
통합개발환경 기술셋 구성
• Bitnami Redmine Stack
• Redmine!
• Subversion!
• MySQL
• Apache
통합개발환경 기술셋 구성
• Tomcat
• Jenkins : 빌드서버
• Nexus : 저장소 관리 도구
• SonarQube : 품질지표 분석
주요 기술셋 구성요소 설정
• Redmine Subversion 관련된 개정판 설정
• Redmine Hudson 플러그인 설정
• Redmine 설정 자동화 적용
• Redmine 서비스 백업
Subversion 관련된 개정판 설정
Subversion History로 안목 키우는 방법
Redmine Hudson 플러그인 설정
Redmine Hudson 플러그인• Author : Toshiyuki Ando
• Show Job List
• Show build result on issue
• Show build history on activity
• Search issues related particular build.
• Show Build History
http://www.redmine.org/plugins/t-ando_redmine_hudson
Redmine 설정 자동화 적용
# encoding: UTF-8!!class UgrinderRedmineSettings < ActiveRecord::Migration!! def up ! # [Hudson] -> [설정]! HudsonSettings.connection.execute("INSERT INTO #{HudsonSettings.table_name} (project_id, url, show_compact, job_filter) VALUES (#{@project.id}, 'http://#{@ip}:9090/jenkins/', 1, 'easy-company2-with-testcase-guide,')")! HudsonJob.connection.execute("INSERT INTO #{HudsonJob.table_name} (project_id, hudson_id, name, created_at) VALUES (#{@project.id}, 1, 'easy-company2-with-testcase-guide', now())")! HudsonJobSettings.connection.execute("INSERT INTO #{HudsonJobSettings.table_name} (hudson_job_id, build_rotate, build_rotator_days_to_keep, build_rotator_num_to_keep) VALUES (1, 0, -1, -1)")!!! # [관리] -> [설정] -> [저장소]! Setting.create(:name => 'enabled_scm', :value => %w(Subversion Git))! Setting.create(:name => 'autofetch_changesets', :value => '1')! Setting.create(:name => 'sys_api_enabled', :value => '1')! Setting.create(:name => 'sys_api_key', :value => 'fu0cLRSRrdWudOMuQdlD')! Setting.create(:name => 'commit_ref_keywords', :value => 'refs,references,IssueID,*,task')! end !!end!
• 관리
• ‘설정’ 항목 중 [일반], [표시방식], [인증], [메일 알림], [저장소]에 대한 기본값 변경
• 5명 기본 ‘사용자’ 생성
• Non Member ‘역활 및 권한’ 변경
• 플러그인 설정
• Tab Plugin 활용해 SonarQube 탭 설정
• Redmine Mylyn Plugin 설치
• 베이스캠프 프로젝트
• 프로젝트 생성 및 모듈, 저장소 설정
• 프로젝트 수행단계 템플릿 일감 생성
• 참고자료 파일, 문서, 위키 데이터 생성
서비스 백업
통합개발환경 - 활용image : http://www.presentationzen.com/presentationzen/2005/10/apple_special_e.html
“기록을 바탕으로 성장한다.”
2년 전 기록했던 시간
2년 전 오늘 시간기록
시간기록 세부내역
개발자의 신뢰도
소프트웨어 기술자경력관리시스템의 경력증명서로 알 수 있을까요?
자신의 인맥들이 추천 해주는 것이 진짜가 아닐런지?…
질의 응답
감사합니다.
top related