66. 연습문제
• 오픈소스 프로젝트 호스팅 서비스와
서브버젂 플러그인을 연결해서
프로젝트 소스를 가져오기
jsp / eclipse 정보공유 http://okjsp.pe.kr
67. Version Control System 기본
• 버전관리 라이프사이클
• import
• add
• commit
• checkout
• update
• repository
• sandbox
jsp / eclipse 정보공유 http://okjsp.pe.kr
68. 젂통적인 개발방식
server
client 개발자
browser ftp, telnet A
ftp, telnet
개발자
B
jsp / eclipse 정보공유 http://okjsp.pe.kr
69. VCS를 이용한 개발
server
개발자
client A
browser
VCS
build
개발자
B
: sandbox;
VCS서버와 sync되는 소스 작업공간
jsp / eclipse 정보공유 http://okjsp.pe.kr
70. 용어
• 저장소 Repository
버젂 관리되는 파일이 저장되는 서버의 기준 디렉토리
• 모듈 Module
저장소의 하위 단위, 한 모듈은 보통 하나의 프로젝트
• 체크아웃 checkout
모듈을 작업자의 PC로 가져오는 명령
• 샌드박스 sandbox
파일의 수정이 가능한 VCS서버와 동기화되는 작업공간.
• 전송 Commit
작업 완료된 파일을 VCS서버에 반영
jsp / eclipse 정보공유 http://okjsp.pe.kr
76. VCS Best Practices
• 작업 시작 젂에 항상 project update를 시행
• 완료된 파일은 매일 점심 식사 젂과 퇴근
젂에 젂송(Commit)
• 충돌이 자주 생기는 파일은 해당
작업자들간의 의사소통이 잘 안 된다는 표시
• 에러가 난 파일은 해결될 때까지
젂송(Commit) 자제
jsp / eclipse 정보공유 http://okjsp.pe.kr
77. 연습문제
• VCS를 이용한 공유시 소스의 이력을
볼 수 있는 방법은?
• 웹 애플리케이션 배포시 이상이
생겼을 경우 원상복구를 빨리 할 수
있는 방법을 기술하시오.
jsp / eclipse 정보공유 http://okjsp.pe.kr
78. 버젂 비교하기
• Compare with ...
• Source Tree Time Machine
jsp / eclipse 정보공유 http://okjsp.pe.kr
94. 1. 지속적인 통합
Continuous Integration
• 주기적인 빌드를 통해서 프로젝트 팀
간의 인터페이스 격차를 조기에 발견
• 빅뱅통합에 드는 비싼 비용을 절감
• PC급의 빌드 서버 활용
jsp / eclipse 정보공유 http://okjsp.pe.kr
95. Commit Time issue
• interfaces, xml small but
important files
• break whole build
• fear of commit
• short periodical commit time
interval
jsp / eclipse 정보공유 http://okjsp.pe.kr
96. Best Practices
• Maintain a Single Source Repository.
• Automate the Build
• Make Your Build Self-Testing
• Everyone Commits Every Day
• Build the Mainline on an Integration Machine
• Keep the Build Fast
• Test in a Clone of the Production Environment
• Make it Easy for Anyone to Get the Latest Executable
• Everyone can see what's happening
• Automate Deployment
jsp / eclipse 정보공유 http://okjsp.pe.kr
97. 연습문제
• 지속적인 통합의 장점 세 가지 기술
• 지속적인 통합의 프랙티스 열 가지
기술
jsp / eclipse 정보공유 http://okjsp.pe.kr
98. 2. Hudson 개요
• Building/testing software project
continuously
• Monitoring execution of
externally-run jobs
jsp / eclipse 정보공유 http://okjsp.pe.kr
163. 이클립스와 테스트 자동화
• 1. 이클립스에서 지원하는 테스트케이스
• 2. JUnit 이해하기
• 3. 테스트케이스와 리팩토링
• 4. Findbugs 플러그인을 통한 품질향상
• 5. JUnit과 Findbugs의 지속적인 리포트
• 6. Selenium을 이용한 웹 UI 레코딩 테스트
jsp / eclipse 정보공유 http://okjsp.pe.kr
164. 1. 이클립스에서
지원하는 테스트케이스
• 테스트케이스는 입력값과 출력값을
지정해서 테스트 되는 함수가 그
조건의 충족 여부를 확인 가능한
프로그램
• assertEquals(예상출력, 함수(입력));
jsp / eclipse 정보공유 http://okjsp.pe.kr
165. 테스트의 자동화
• 테스트케이스는 프로그램으로
자동화해야 한다.
• 품질은 테스트의 범위와 실행 횟수에
영향을 받는다.
• 수작업의 테스트는 기한 내 테스트
실행 횟수를 감소시킨다.
• 테스트는 빨리 쉽게 수행 가능해야
한다.
jsp / eclipse 정보공유 http://okjsp.pe.kr
166. Test Harness
• Scaffold
• Outside of Application
• Fine grained TestCases
• It’s useful for changing software
• Acrobatic with safety net
jsp / eclipse 정보공유 http://okjsp.pe.kr
205. 정리-테스트 리듬
• Rhythm
• TestCase
• Change Small Code
• All Test
• Refactoring
• All Test
• 돌다리도 두드려 가라.
• 모래 코드 위에 코드를 추가하지 말라.
jsp / eclipse 정보공유 http://okjsp.pe.kr
206. 테스트 코드 분리하기-
소스폴더
jsp / eclipse 정보공유 http://okjsp.pe.kr
207. 테스트 코드 분리하기-
소스폴더
jsp / eclipse 정보공유 http://okjsp.pe.kr
215. What for
• Find Java Program Bugs
• Search by bug patterns
• Search for compiled byte code
• Refer source code for Human
Readable
• Provide fix guide for each bug
jsp / eclipse 정보공유 http://okjsp.pe.kr
245. 정리
05.09 이클립스 기본
05.16 서브버젂과 빌드 도구 ANT
05.23 이클립스와 협업 프로세스
05.30 이클립스 웹개발
06.13 이클립스와 테스트 자동화
jsp / eclipse 정보공유 http://okjsp.pe.kr
246. 이클립스 기본
• 이클립스 개요
• Hello World 실행하기
• 코드 네비게이션
• 프로젝트 기반의 소스 아키텍처
• 프로퍼티 에디터 플러그인 설치하기
• Mylyn과 작업리스트
jsp / eclipse 정보공유 http://okjsp.pe.kr
247. 서브버젂과 빌드 도구 ANT
• 1. 이클립스 서브버젂 플러그인 Subversive
• 2. Version Control System 기본
• 3. 소스의 공유와 배포에 관하여
• 4. 버젂 비교하기
• 5. ANT 빌드스크립트 만들기
• 6. ANT를 이용한 자동화
jsp / eclipse 정보공유 http://okjsp.pe.kr
248. 이클립스와 협업 프로세스
• 1. 지속적인 통합 Continuous Integration
• 2. Hudson 개요
• 3. Hudson과 Subversion 연결
• 4. 개발프로세스에서 이클립스 포지셔닝
• 5. Eclipse Communication Framework
• 6. 프로젝트 Health Check
jsp / eclipse 정보공유 http://okjsp.pe.kr
249. 이클립스 웹개발
• 1. 웹프로젝트의 특징
• 2. 톰캣 서버 연결
• 3. JSP/Servlet 만들기
• 4. 경우에 따른 인코딩 처리
• 5. Spring 웹 프레임워크 다루기
• 6. 원격 서버 배포하기
jsp / eclipse 정보공유 http://okjsp.pe.kr
250. 이클립스와 테스트 자동화
• 1. 이클립스에서 지원하는 테스트케이스
• 2. JUnit 이해하기
• 3. 테스트케이스와 리팩토링
• 4. Findbugs 플러그인을 통한 품질향상
• 5. JUnit과 Findbugs의 지속적인 리포트
• 6. Selenium을 이용한 웹 UI 레코딩 테스트
jsp / eclipse 정보공유 http://okjsp.pe.kr