스프링캠프2014 - 즐거운 개발을 위한 스마트한 습관
목차
• 즐거운 개발이란 무엇일까?
• 통합개발환경 - 필요한 이유
• 통합개발환경 - 구축 과정
• 통합개발환경 - 활용
즐거운 개발
개발(Development)은 멘탈 스포츠
즐거운 개발의 조건
• 개발과 관련된 요소들이 통합되고
• 인프라와 문화가 잘 구축되면
• 보다 수월한 개발이 가능하고
• 구성원 간 의사소통이 원활해지면 
• 생산성과 신뢰도 향상
그리고 좋은 컨디션
그리고 좋은 컨디션
그리고 좋은 컨디션
하지만…
이것으론 충분하지 않습니다.


해결해야할 다양한 문제들이 많이 있죠
외부 방해요소
스프링캠프2014 - 즐거운 개발을 위한 스마트한 습관
스프링캠프2014 - 즐거운 개발을 위한 스마트한 습관
스프링캠프2014 - 즐거운 개발을 위한 스마트한 습관
스프링캠프2014 - 즐거운 개발을 위한 스마트한 습관
자신에게 관대함
무리한 일정 제시
통합개발환경 - 필요한 이유
image : http://www.presentationzen.com/presentationzen/2005/10/apple_special_e.html
통합개발환경 없던 시절
• 형상관리가 안되서 소스코드 변경이력 추적이 굉장히 어려
웠고 작업내용 롤백도 쉽지 않았고
• 이슈관리도구와 같은 커뮤니케이션 도구의 부재로 제로보
드와 같은 게시판을 활용하고
• 빌드서버의 부재로 각자 로컬에서 빌드 결국 "제 컴에선 잘
되는데요"라는 이야기를 어렵지 않게 접했고
• 무분별한 copy & paste로 인해 소스코드량이 기하급수
적으로 늘어던 시절
스프링캠프2014 - 즐거운 개발을 위한 스마트한 습관
스프링캠프2014 - 즐거운 개발을 위한 스마트한 습관
동영상 링크 : 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 : 품질지표 분석
스프링캠프2014 - 즐거운 개발을 위한 스마트한 습관
스프링캠프2014 - 즐거운 개발을 위한 스마트한 습관
스프링캠프2014 - 즐거운 개발을 위한 스마트한 습관
스프링캠프2014 - 즐거운 개발을 위한 스마트한 습관
주요 기술셋 구성요소 설정
• Redmine Subversion 관련된 개정판 설정
• Redmine Hudson 플러그인 설정
• Redmine 설정 자동화 적용
• Redmine 서비스 백업
Subversion 관련된 개정판 설정
스프링캠프2014 - 즐거운 개발을 위한 스마트한 습관
Subversion History로
안목 키우는 방법
스프링캠프2014 - 즐거운 개발을 위한 스마트한 습관
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
스프링캠프2014 - 즐거운 개발을 위한 스마트한 습관
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년 전 오늘 시간기록
시간기록 세부내역
스프링캠프2014 - 즐거운 개발을 위한 스마트한 습관
스프링캠프2014 - 즐거운 개발을 위한 스마트한 습관
스프링캠프2014 - 즐거운 개발을 위한 스마트한 습관
스프링캠프2014 - 즐거운 개발을 위한 스마트한 습관
개발자의 신뢰도



소프트웨어 기술자경력관리시스템의 경력
증명서로 알 수 있을까요?
자신의 인맥들이 추천 해주는 것이 진짜가 아닐런지?…
질의 응답
감사합니다.

More Related Content

PPTX
대규모 프로젝트 개발이야기 - 이승헌, 유나이트 코리아 2014
PPTX
오픈소스 프레임워크 기반 웹 서비스 설계 (Example)
PPTX
02.JBOSS EAP7(FOR CONTAINER/CLOUD)
PDF
Slipp 발표 자료 20151212
PDF
[D2 CAMPUS] tech meet up(Back-end) - 교내 웹서비스 개발 일지 (박은찬님)
PDF
[Td 2015] 국내에서 처음으로 선보이는 microsoft 차세대 서버 운영 체제 windows server 2016
PPTX
01.WEB SYSTEM BASED ON DOCKER
PDF
서버 개발자가 되기 위한 첫 걸음
대규모 프로젝트 개발이야기 - 이승헌, 유나이트 코리아 2014
오픈소스 프레임워크 기반 웹 서비스 설계 (Example)
02.JBOSS EAP7(FOR CONTAINER/CLOUD)
Slipp 발표 자료 20151212
[D2 CAMPUS] tech meet up(Back-end) - 교내 웹서비스 개발 일지 (박은찬님)
[Td 2015] 국내에서 처음으로 선보이는 microsoft 차세대 서버 운영 체제 windows server 2016
01.WEB SYSTEM BASED ON DOCKER
서버 개발자가 되기 위한 첫 걸음

What's hot (19)

PPTX
모바일게임 1인 QA 업무 경험담
PDF
JBUG Korea 소개
PPT
iFun Engine plugin 만들기 (for Stingray)
PDF
삐약삐약 네트워크 엔지니어 이야기
PDF
[아이펀팩토리] 클라이언트 개발자, 서버 개발 시작하기
PDF
게임 QA에게 ISTQB의 가치
PPTX
Man's community(Man's)
PDF
[MeetUp][2nd] 알아두면 쓸모있는 테라폼
PDF
Mean stack Start
PPTX
PROJECT YJC 3GC-B FIRST SEMESTER
PPTX
정해균 포트폴리오
PDF
Laravel로 스타트업 기술 스택 구성하기
PDF
SLiPP 스터디 - MSA
PPTX
Vingle tech talk #1
PPTX
regular.express 발표자료
PDF
Spring Framework 튜토리얼 - 네이버 최영목님
PDF
웹-워크플로우 베스트프랙티스
PPT
게임 서버 기술 현황 및 전망
PDF
hexa core
모바일게임 1인 QA 업무 경험담
JBUG Korea 소개
iFun Engine plugin 만들기 (for Stingray)
삐약삐약 네트워크 엔지니어 이야기
[아이펀팩토리] 클라이언트 개발자, 서버 개발 시작하기
게임 QA에게 ISTQB의 가치
Man's community(Man's)
[MeetUp][2nd] 알아두면 쓸모있는 테라폼
Mean stack Start
PROJECT YJC 3GC-B FIRST SEMESTER
정해균 포트폴리오
Laravel로 스타트업 기술 스택 구성하기
SLiPP 스터디 - MSA
Vingle tech talk #1
regular.express 발표자료
Spring Framework 튜토리얼 - 네이버 최영목님
웹-워크플로우 베스트프랙티스
게임 서버 기술 현황 및 전망
hexa core
Ad

Viewers also liked (20)

PPTX
CLT 소스품질 Jenkins 사용가이드
PPTX
정적분석
PPTX
오래된 프로젝트에 Jenkins 적용해보기
PDF
리눅스 환경에서 SonarQube 간단하게 사용해보기
PDF
Sonar 설치
PPTX
Jenkins
PPTX
Jenkins소개
PPTX
Jenkins를 활용한 javascript 개발
PDF
자바 웹프로젝트 개발환경 셋팅
PDF
Docker 간단 개념 / Docker 를 이용한 MSA 기반의 Spring Boot 프로젝트 - DSmentoring 정다운
PDF
젠킨스 설치 및 설정
PPTX
[140315 박민근] 젠킨스를 이용한 자동빌드 시스템 구축하기(ci)
PPTX
Open Source 그리고 git과 github, code review
DOC
Getting started with_microsoft_excel
PPTX
Reduksi oksidasi dan elektrokimia
PDF
Buiding foss-community
DOC
09 -mms_complete_syllabus_new
PDF
Magpie InsurTech Award Presentation
PPT
Fashion Website Research
PPTX
Assessment techniques overview
CLT 소스품질 Jenkins 사용가이드
정적분석
오래된 프로젝트에 Jenkins 적용해보기
리눅스 환경에서 SonarQube 간단하게 사용해보기
Sonar 설치
Jenkins
Jenkins소개
Jenkins를 활용한 javascript 개발
자바 웹프로젝트 개발환경 셋팅
Docker 간단 개념 / Docker 를 이용한 MSA 기반의 Spring Boot 프로젝트 - DSmentoring 정다운
젠킨스 설치 및 설정
[140315 박민근] 젠킨스를 이용한 자동빌드 시스템 구축하기(ci)
Open Source 그리고 git과 github, code review
Getting started with_microsoft_excel
Reduksi oksidasi dan elektrokimia
Buiding foss-community
09 -mms_complete_syllabus_new
Magpie InsurTech Award Presentation
Fashion Website Research
Assessment techniques overview
Ad

Similar to 스프링캠프2014 - 즐거운 개발을 위한 스마트한 습관 (20)

PDF
Let'Swift 2023 iOS 애플리케이션 개발 생산성 고찰
- 정시 퇴근을 위해 우리는 어떻게 해야할 것인가?
PDF
DevOps 시대의 새로운 Role - Full Cycle Developer
PDF
CI/CD in embedded dev process
PDF
꿀밋업시리즈3탄_Spring Boot를 활용한 마이크로서비스 개발과 페어프로그래밍(TDD)
PDF
U&i insight2012스터디설명회
PDF
[TECHCON 2019: MOBILE - Android]3.안드로이드 개발자 로드맵
PDF
TOAST Meetup2015 - 구름 Cloud IDE (류성태)
PPTX
2014 공개소프트웨어 대회 소프트웨어 개발 트렌드의 변화
PDF
01.개발환경 교육교재
PDF
[오픈소스컨설팅]Session 6. scrum과 jira 기반의 소프트웨어 개발 프로세스
PDF
지속적인 통합
PPTX
객체지향프로그래밍 특강
PPTX
UI/UX 개선을 위한 빠른 프로토타이핑
PDF
웹 Front-End 실무 이야기
PDF
개발자로써 갖춰야할 스킬들 - 최용호
PDF
20221131_레츠스위프트_2022_iOS개발에서_알아두면_좋은것들.pdf
PPTX
LetsSwift(강민규스피커,안정민서포터).pptx
PPTX
코드로 인프라 관리하기 - 자동화 툴 소개
PPTX
SOSCON2015 SI이노베이션
PDF
EMOCON 2015 - 품질과 테스트는 다르다
Let'Swift 2023 iOS 애플리케이션 개발 생산성 고찰
- 정시 퇴근을 위해 우리는 어떻게 해야할 것인가?
DevOps 시대의 새로운 Role - Full Cycle Developer
CI/CD in embedded dev process
꿀밋업시리즈3탄_Spring Boot를 활용한 마이크로서비스 개발과 페어프로그래밍(TDD)
U&i insight2012스터디설명회
[TECHCON 2019: MOBILE - Android]3.안드로이드 개발자 로드맵
TOAST Meetup2015 - 구름 Cloud IDE (류성태)
2014 공개소프트웨어 대회 소프트웨어 개발 트렌드의 변화
01.개발환경 교육교재
[오픈소스컨설팅]Session 6. scrum과 jira 기반의 소프트웨어 개발 프로세스
지속적인 통합
객체지향프로그래밍 특강
UI/UX 개선을 위한 빠른 프로토타이핑
웹 Front-End 실무 이야기
개발자로써 갖춰야할 스킬들 - 최용호
20221131_레츠스위프트_2022_iOS개발에서_알아두면_좋은것들.pdf
LetsSwift(강민규스피커,안정민서포터).pptx
코드로 인프라 관리하기 - 자동화 툴 소개
SOSCON2015 SI이노베이션
EMOCON 2015 - 품질과 테스트는 다르다

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