스프링캠프2014 - 즐거운 개발을 위한 스마트한 습관

4,014 views

Published on

즐거운 개발을 위한 3가지 요소(신뢰, 안목, 컨디션) 발전 방향을 공유합니다.

잘 갖춰진 개발 프로세스와 도구들을 통해 "신뢰도"를 끌어 올리고,
가치 있는 시간들로 채울 수 있도록 누울자리 선택하는 "안목"을 키우면서
머리를 비우고 좋은 "컨디션"으로 당면한 문제만을 집중할 수 있는 워크플로우!

Published in: Self Improvement
0 Comments
56 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
4,014
On SlideShare
0
From Embeds
0
Number of Embeds
12
Actions
Shares
0
Downloads
113
Comments
0
Likes
56
Embeds 0
No embeds

No notes for slide

스프링캠프2014 - 즐거운 개발을 위한 스마트한 습관

  1. 1. 목차 • 즐거운 개발이란 무엇일까? • 통합개발환경 - 필요한 이유 • 통합개발환경 - 구축 과정 • 통합개발환경 - 활용
  2. 2. 즐거운 개발 개발(Development)은 멘탈 스포츠
  3. 3. 즐거운 개발의 조건 • 개발과 관련된 요소들이 통합되고 • 인프라와 문화가 잘 구축되면 • 보다 수월한 개발이 가능하고 • 구성원 간 의사소통이 원활해지면  • 생산성과 신뢰도 향상
  4. 4. 그리고 좋은 컨디션
  5. 5. 그리고 좋은 컨디션
  6. 6. 그리고 좋은 컨디션
  7. 7. 하지만… 이것으론 충분하지 않습니다. 
 해결해야할 다양한 문제들이 많이 있죠
  8. 8. 외부 방해요소
  9. 9. 자신에게 관대함
  10. 10. 무리한 일정 제시
  11. 11. 통합개발환경 - 필요한 이유 image : http://www.presentationzen.com/presentationzen/2005/10/apple_special_e.html
  12. 12. 통합개발환경 없던 시절 • 형상관리가 안되서 소스코드 변경이력 추적이 굉장히 어려 웠고 작업내용 롤백도 쉽지 않았고 • 이슈관리도구와 같은 커뮤니케이션 도구의 부재로 제로보 드와 같은 게시판을 활용하고 • 빌드서버의 부재로 각자 로컬에서 빌드 결국 "제 컴에선 잘 되는데요"라는 이야기를 어렵지 않게 접했고 • 무분별한 copy & paste로 인해 소스코드량이 기하급수 적으로 늘어던 시절
  13. 13. 동영상 링크 : http://www.youtube.com/watch?v=8_lfxPI5ObM&t=3m6s 03:06 ~ 03:40
  14. 14. 통합개발환경 - 구축 과정 image : http://www.presentationzen.com/presentationzen/2005/10/apple_special_e.html
  15. 15. 통합개발환경 기술셋 선정 ! • 이슈관리도구 • Redmine • 형상관리 • Subversion • 빌드자동화 도구 • Maven ! • 빌드서버 • Jenkins • 품질지표 분석 • SonarQube • 저장소 관리 도구 • Sonatype Nexus
  16. 16. 기술셋 선정 기준
  17. 17. 통합개발환경 기술셋 구성 • Bitnami Redmine Stack • Redmine! • Subversion! • MySQL • Apache
  18. 18. 통합개발환경 기술셋 구성 • Tomcat • Jenkins : 빌드서버 • Nexus : 저장소 관리 도구 • SonarQube : 품질지표 분석
  19. 19. 주요 기술셋 구성요소 설정 • Redmine Subversion 관련된 개정판 설정 • Redmine Hudson 플러그인 설정 • Redmine 설정 자동화 적용 • Redmine 서비스 백업
  20. 20. Subversion 관련된 개정판 설정
  21. 21. Subversion History로 안목 키우는 방법
  22. 22. Redmine Hudson 플러그인 설정
  23. 23. 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
  24. 24. Redmine 설정 자동화 적용
  25. 25. # 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!
  26. 26. • 관리 • ‘설정’ 항목 중 [일반], [표시방식], [인증], [메일 알 림], [저장소]에 대한 기본값 변경 • 5명 기본 ‘사용자’ 생성 • Non Member ‘역활 및 권한’ 변경 • 플러그인 설정 • Tab Plugin 활용해 SonarQube 탭 설정 • Redmine Mylyn Plugin 설치 • 베이스캠프 프로젝트 • 프로젝트 생성 및 모듈, 저장소 설정 • 프로젝트 수행단계 템플릿 일감 생성 • 참고자료 파일, 문서, 위키 데이터 생성
  27. 27. 서비스 백업
  28. 28. 통합개발환경 - 활용 image : http://www.presentationzen.com/presentationzen/2005/10/apple_special_e.html
  29. 29. “기록을 바탕으로 성장한다.”
  30. 30. 2년 전 기록했던 시간
  31. 31. 2년 전 오늘 시간기록
  32. 32. 시간기록 세부내역
  33. 33. 개발자의 신뢰도
 
 소프트웨어 기술자경력관리시스템의 경력 증명서로 알 수 있을까요?
  34. 34. 자신의 인맥들이 추천 해주는 것이 진짜가 아닐런지?…
  35. 35. 질의 응답
  36. 36. 감사합니다.

×