ݺߣ

ݺߣShare a Scribd company logo
스프링캠프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 - 즐거운 개발을 위한 스마트한 습관
개발자의 신뢰도



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

Recommended

대규모 프로젝트 개발이야기 - 이승헌, 유나이트 코리아 2014
대규모 프로젝트 개발이야기 - 이승헌, 유나이트 코리아 2014
NDOORS
오픈소스 프레임워크 기반 웹 서비스 설계 (Example)
오픈소스 프레임워크 기반 웹 서비스 설계 (Example)
중선 곽
02.JBOSS EAP7(FOR CONTAINER/CLOUD)
02.JBOSS EAP7(FOR CONTAINER/CLOUD)
Opennaru, inc.
Slipp 발표 자료 20151212
Slipp 발표 자료 20151212
Jinsoo Jung
[D2 CAMPUS] tech meet up(Back-end) - 교내 웹서비스 개발 일지 (박은찬님)
[D2 CAMPUS] tech meet up(Back-end) - 교내 웹서비스 개발 일지 (박은찬님)
NAVER D2
[Td 2015] 국내에서 처음으로 선보이는 microsoft 차세대 서버 운영 체제 windows server 2016
[Td 2015] 국내에서 처음으로 선보이는 microsoft 차세대 서버 운영 체제 windows server 2016
Sang Don Kim
01.WEB SYSTEM BASED ON DOCKER
01.WEB SYSTEM BASED ON DOCKER
Opennaru, inc.
서버 개발자가 되기 위한 첫 걸음
서버 개발자가 되기 위한 첫 걸음
nexusz99
모바일게임 1인 QA 업무 경험담
모바일게임 1인 QA 업무 경험담
dgclan
JBUG Korea 소개
JBUG Korea 소개
jbugkorea
iFun Engine plugin 만들기 (for Stingray)
iFun Engine plugin 만들기 (for Stingray)
iFunFactory Inc.
삐약삐약 네트워크 엔지니어 이야기
삐약삐약 네트워크 엔지니어 이야기
InfraEngineer
[아이펀팩토리] 클라이언트 개발자, 서버 개발 시작하기
[아이펀팩토리] 클라이언트 개발자, 서버 개발 시작하기
iFunFactory Inc.
게임 QA에게 ISTQB의 가치
게임 QA에게 ISTQB의 가치
dgclan
Man's community(Man's)
Man's community(Man's)
송 준일
[MeetUp][2nd] 알아두면 쓸모있는 테라폼
[MeetUp][2nd] 알아두면 쓸모있는 테라폼
InfraEngineer
PROJECT YJC 3GC-B FIRST SEMESTER
PROJECT YJC 3GC-B FIRST SEMESTER
EugeneJJeon
정해균 포트폴리오
정해균 포트폴리오
Haegyun Jung
Laravel로 스타트업 기술 스택 구성하기
Laravel로 스타트업 기술 스택 구성하기
KwangSeob Jeong
SLiPP 스터디 - MSA
SLiPP 스터디 - MSA
Daekwon Kang
Vingle tech talk #1
Vingle tech talk #1
Tylor Shin
regular.express 발표자료
regular.express 발표자료
bdh92123
Spring Framework 튜토리얼 - 네이버 최영목님
Spring Framework 튜토리얼 - 네이버 최영목님
NAVER D2
웹-워크플로우 베스트프랙티스
웹-워크플로우 베스트프랙티스
Tai Hoon KIM
게임 서버 기술 현황 및 전망
게임 서버 기술 현황 및 전망
gueste9d250
hexa core
hexa core
Seungbae Ji
CLT 소스품질 Jenkins 사용가이드
CLT 소스품질 Jenkins 사용가이드
jSoboro
정적ѫ
정적ѫ
Yousung Kim
오래된 프로젝트에 Jenkins 적용해보기
오래된 프로젝트에 Jenkins 적용해보기
용호 최

More Related Content

What's hot (19)

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

Viewers also liked (20)

CLT 소스품질 Jenkins 사용가이드
CLT 소스품질 Jenkins 사용가이드
jSoboro
정적ѫ
정적ѫ
Yousung Kim
오래된 프로젝트에 Jenkins 적용해보기
오래된 프로젝트에 Jenkins 적용해보기
용호 최
리눅스 환경에서 SonarQube 간단하게 사용해보기
리눅스 환경에서 SonarQube 간단하게 사용해보기
flashscope
Sonar 설치
Sonar 설치
Hyeonseok Yang
Jenkins
Jenkins
Huey Park
԰쾱Բ소개
԰쾱Բ소개
윤식 오
Jenkins를 활용한 javascript 개발
Jenkins를 활용한 javascript 개발
지수 윤
자바 웹프로젝트 개발환경 셋팅
자바 웹프로젝트 개발환경 셋팅
Yoonsung Jung
Docker 간단 개념 / Docker 를 이용한 MSA 기반의 Spring Boot 프로젝트 - DSmentoring 정다운
Docker 간단 개념 / Docker 를 이용한 MSA 기반의 Spring Boot 프로젝트 - DSmentoring 정다운
다운 정
젠킨스 설치 및 설정
젠킨스 설치 및 설정
중선 곽
[140315 박민근] 젠킨스를 이용한 자동빌드 시스템 구축하기(ci)
[140315 박민근] 젠킨스를 이용한 자동빌드 시스템 구축하기(ci)
MinGeun Park
Open Source 그리고 git과 github, code review
Open Source 그리고 git과 github, code review
Minsuk Lee
Getting started with_microsoft_excel
Getting started with_microsoft_excel
Pratiksha Mhatre
Reduksi oksidasi dan elektrokimia
Reduksi oksidasi dan elektrokimia
Arul Gdg
Buiding foss-community
Buiding foss-community
nghia le trung
09 -mms_complete_syllabus_new
09 -mms_complete_syllabus_new
Harshal Gandhi
Magpie InsurTech Award Presentation
Magpie InsurTech Award Presentation
The Digital Insurer
Fashion Website Research
Fashion Website Research
joelyp
Assessment techniques overview
Assessment techniques overview
Gavin Henning
CLT 소스품질 Jenkins 사용가이드
CLT 소스품질 Jenkins 사용가이드
jSoboro
오래된 프로젝트에 Jenkins 적용해보기
오래된 프로젝트에 Jenkins 적용해보기
용호 최
리눅스 환경에서 SonarQube 간단하게 사용해보기
리눅스 환경에서 SonarQube 간단하게 사용해보기
flashscope
Jenkins를 활용한 javascript 개발
Jenkins를 활용한 javascript 개발
지수 윤
자바 웹프로젝트 개발환경 셋팅
자바 웹프로젝트 개발환경 셋팅
Yoonsung Jung
Docker 간단 개념 / Docker 를 이용한 MSA 기반의 Spring Boot 프로젝트 - DSmentoring 정다운
Docker 간단 개념 / Docker 를 이용한 MSA 기반의 Spring Boot 프로젝트 - DSmentoring 정다운
다운 정
젠킨스 설치 및 설정
젠킨스 설치 및 설정
중선 곽
[140315 박민근] 젠킨스를 이용한 자동빌드 시스템 구축하기(ci)
[140315 박민근] 젠킨스를 이용한 자동빌드 시스템 구축하기(ci)
MinGeun Park
Open Source 그리고 git과 github, code review
Open Source 그리고 git과 github, code review
Minsuk Lee
Getting started with_microsoft_excel
Getting started with_microsoft_excel
Pratiksha Mhatre
Reduksi oksidasi dan elektrokimia
Reduksi oksidasi dan elektrokimia
Arul Gdg
09 -mms_complete_syllabus_new
09 -mms_complete_syllabus_new
Harshal Gandhi
Fashion Website Research
Fashion Website Research
joelyp
Assessment techniques overview
Assessment techniques overview
Gavin Henning
Ad

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

Let'Swift 2023 iOS 애플리케이션 개발 생산성 고찰
- 정시 퇴근을 위해 우리는 어떻게 해야할 것인가?
Let'Swift 2023 iOS 애플리케이션 개발 생산성 고찰
- 정시 퇴근을 위해 우리는 어떻게 해야할 것인가?
정민 안
DevOps 시대의 새로운 Role - Full Cycle Developer
DevOps 시대의 새로운 Role - Full Cycle Developer
창훈 현
CI/CD in embedded dev process
CI/CD in embedded dev process
Jaejoon Jung
꿀밋업시리즈3탄_Spring Boot를 활용한 마이크로서비스 개발과 페어프로그래밍(TDD)
꿀밋업시리즈3탄_Spring Boot를 활용한 마이크로서비스 개발과 페어프로그래밍(TDD)
VMware Tanzu Korea
U&i insight2012스터디설명회
U&i insight2012스터디설명회
Amy Young Ah Kim
[TECHCON 2019: MOBILE - Android]3.안드로이드 개발자 로드맵
[TECHCON 2019: MOBILE - Android]3.안드로이드 개발자 로드맵
NAVER Engineering
TOAST Meetup2015 - 구름 Cloud IDE (류성태)
TOAST Meetup2015 - 구름 Cloud IDE (류성태)
TOAST_NHNent
2014 공개소프트웨어 대회 소프트웨어 개발 트렌드의 변화
2014 공개소프트웨어 대회 소프트웨어 개발 트렌드의 변화
Terry Cho
01.개발환경 교육교재
01.개발환경 교육교재
Hankyo
[오픈소스컨설팅]Session 6. scrum과 jira 기반의 소프트웨어 개발 프로세스
[오픈소스컨설팅]Session 6. scrum과 jira 기반의 소프트웨어 개발 프로세스
Hee Jae Lee
지속적인 통합
지속적인 통합
중선 곽
객체지향프로그래밍 특강
객체지향프로그래밍 특강
uEngine Solutions
UI/UX 개선을 위한 빠른 프로토타이핑
UI/UX 개선을 위한 빠른 프로토타이핑
Dongsik Yang
웹 Front-End 실무 이야기
웹 Front-End 실무 이야기
JinKwon Lee
개발자로써 갖춰야할 스킬들 - 최용호
개발자로써 갖춰야할 스킬들 - 최용호
용호 최
20221131ᅦᅳᅳᅱᅳᅳ2022徱ƢᄇơᆯᅦᅥᅡᆯᄋơƮᄆƧᆫᅩᇂᄋƳᆫƥᆺᅳᆯ.
20221131ᅦᅳᅳᅱᅳᅳ2022徱ƢᄇơᆯᅦᅥᅡᆯᄋơƮᄆƧᆫᅩᇂᄋƳᆫƥᆺᅳᆯ.
정민 안
ٲɾڳ(강민귵ӊ커,안정민서포터).ٳ
ٲɾڳ(강민귵ӊ커,안정민서포터).ٳ
ssuser2601f7
코드로 인프라 관리하기 - 자동화 툴 소개
코드로 인프라 관리하기 - 자동화 툴 소개
태준 문
SOSCON2015 SI이노베이션
SOSCON2015 SI이노베이션
DoHyun Jung
EMOCON 2015 - 품질과 테스트는 다르다
EMOCON 2015 - 품질과 테스트는 다르다
이상모임
Let'Swift 2023 iOS 애플리케이션 개발 생산성 고찰
- 정시 퇴근을 위해 우리는 어떻게 해야할 것인가?
Let'Swift 2023 iOS 애플리케이션 개발 생산성 고찰
- 정시 퇴근을 위해 우리는 어떻게 해야할 것인가?
정민 안
DevOps 시대의 새로운 Role - Full Cycle Developer
DevOps 시대의 새로운 Role - Full Cycle Developer
창훈 현
CI/CD in embedded dev process
CI/CD in embedded dev process
Jaejoon Jung
꿀밋업시리즈3탄_Spring Boot를 활용한 마이크로서비스 개발과 페어프로그래밍(TDD)
꿀밋업시리즈3탄_Spring Boot를 활용한 마이크로서비스 개발과 페어프로그래밍(TDD)
VMware Tanzu Korea
U&i insight2012스터디설명회
U&i insight2012스터디설명회
Amy Young Ah Kim
[TECHCON 2019: MOBILE - Android]3.안드로이드 개발자 로드맵
[TECHCON 2019: MOBILE - Android]3.안드로이드 개발자 로드맵
NAVER Engineering
TOAST Meetup2015 - 구름 Cloud IDE (류성태)
TOAST Meetup2015 - 구름 Cloud IDE (류성태)
TOAST_NHNent
2014 공개소프트웨어 대회 소프트웨어 개발 트렌드의 변화
2014 공개소프트웨어 대회 소프트웨어 개발 트렌드의 변화
Terry Cho
01.개발환경 교육교재
01.개발환경 교육교재
Hankyo
[오픈소스컨설팅]Session 6. scrum과 jira 기반의 소프트웨어 개발 프로세스
[오픈소스컨설팅]Session 6. scrum과 jira 기반의 소프트웨어 개발 프로세스
Hee Jae Lee
객체지향프로그래밍 특강
객체지향프로그래밍 특강
uEngine Solutions
UI/UX 개선을 위한 빠른 프로토타이핑
UI/UX 개선을 위한 빠른 프로토타이핑
Dongsik Yang
웹 Front-End 실무 이야기
웹 Front-End 실무 이야기
JinKwon Lee
개발자로써 갖춰야할 스킬들 - 최용호
개발자로써 갖춰야할 스킬들 - 최용호
용호 최
20221131ᅦᅳᅳᅱᅳᅳ2022徱ƢᄇơᆯᅦᅥᅡᆯᄋơƮᄆƧᆫᅩᇂᄋƳᆫƥᆺᅳᆯ.
20221131ᅦᅳᅳᅱᅳᅳ2022徱ƢᄇơᆯᅦᅥᅡᆯᄋơƮᄆƧᆫᅩᇂᄋƳᆫƥᆺᅳᆯ.
정민 안
ٲɾڳ(강민귵ӊ커,안정민서포터).ٳ
ٲɾڳ(강민귵ӊ커,안정민서포터).ٳ
ssuser2601f7
코드로 인프라 관리하기 - 자동화 툴 소개
코드로 인프라 관리하기 - 자동화 툴 소개
태준 문
SOSCON2015 SI이노베이션
SOSCON2015 SI이노베이션
DoHyun Jung
EMOCON 2015 - 품질과 테스트는 다르다
EMOCON 2015 - 품질과 테스트는 다르다
이상모임
Ad

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