9. Source Compile
• javac
• eclipse auto compile
• src
• build or classes
jsp / eclipse 정보공유 http://okjsp.pe.kr
10. Project Build
• build script
• ready for use
jsp / eclipse 정보공유 http://okjsp.pe.kr
11. Tool positioning
요구분석 usecase
설계 modeling
개발 IDE
테스트 Testing Tool
릴리스 build Tool
jsp / eclipse 정보공유 http://okjsp.pe.kr
12. 개발 생산성 향상
• requirement 확인
• control complexity
• refactoring
• automation
jsp / eclipse 정보공유 http://okjsp.pe.kr
32. Find/Search
• 찾기/바꾸기
• ^ + F
• 파일 찾기
• ^ + ~ + R, @ + n u
• 문자열 포함된 소스 찾기
• contextMenu + find
• ^ + H
jsp / eclipse 정보공유 http://okjsp.pe.kr
33. Find/Search #2
• 코드 패턴 찾기
• ^ + j, ^~ + j ; incremental find
• ^ + k, ^~ + k ; selection find
• 상속 관계 찾기
• ^ + t
• 메소드 찾기
• ^ + o ; Outline
jsp / eclipse 정보공유 http://okjsp.pe.kr
34. Find/Search #3
• 선언부 찾기
• ^ + leftClick
• f3
• 참조 소스 목록
• ctrl + shift + g
• contextMenu > References > Project
• 같은 변수 찾기
• 형광펜
jsp / eclipse 정보공유 http://okjsp.pe.kr
35. Navigate
• 라인번호로 이동
•^+L
• 중괄호({} brace) 처음과 끝
• ctrl + shift + p
• @ + ~ + 좌우화살표
jsp / eclipse 정보공유 http://okjsp.pe.kr
36. Navigate #2
• 파일과 파일 사이 이동
• ^ + f6
• 뒤로/앞으로
• @ + 좌우 화살표
jsp / eclipse 정보공유 http://okjsp.pe.kr
39. 연습문제
• 오픈소스 프로젝트 import 하기
• 편집기 단축키 중 ctrl+shift+R의
역할은?
• 자바 편집기에서 ctrl+shift+G의
역할은?
• 클래스, 메소드, 변수의 선언위치로
이동하는 단축키는?
jsp / eclipse 정보공유 http://okjsp.pe.kr
40. 4. 프로젝트 기반의
소스 아키텍처
• 개발 표준
• 소스 디렉토리 구조
• 서비스 디렉토리 구조
• 버젂관리 해야할 것
• 빌드 스크립트의 가변성
jsp / eclipse 정보공유 http://okjsp.pe.kr
41. 개발 표준
• 용어집
• 코딩 컨벤션
• CRUD 코드 샘플
jsp / eclipse 정보공유 http://okjsp.pe.kr
46. 연습문제
• 다이나믹 웹 프로젝트 기본 폴더
구조는?
jsp / eclipse 정보공유 http://okjsp.pe.kr
47. 5. 프로퍼티 에디터
플러그인 설치하기
• Properties의 특성
• 프로젝트 내에서 properties 파일의
위치
• propedit plugin
jsp / eclipse 정보공유 http://okjsp.pe.kr
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
74. 소스의 공유와 배포에 관하여
• Sandbox
• Update Frequently
• Commit by function unit
• Team Communication
• Time Gap
jsp / eclipse 정보공유 http://okjsp.pe.kr
75. Process
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
79. Show in History
jsp / eclipse 정보공유 http://okjsp.pe.kr
81. History View
jsp / eclipse 정보공유 http://okjsp.pe.kr
82. Compare With ...
jsp / eclipse 정보공유 http://okjsp.pe.kr
83. Get Content
jsp / eclipse 정보공유 http://okjsp.pe.kr
84. 연습문제
• 히스토리 뷰에서 과거 소스의 내용을
가져와 현재의 소스에 적용하는 방법
• 일주일 전 프로젝트 소스 가져오기
jsp / eclipse 정보공유 http://okjsp.pe.kr
85. ANT 빌드스크립트 만들기
• project
• target
• task
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
111. 연습문제
• Hudson의 두 가지 목적은?
• Hudson 플러그인 설치 방법 두 가지
• Hudson의 기본인증 기능을 설치하기
• 구글 메싞저와 연결하기
jsp / eclipse 정보공유 http://okjsp.pe.kr
112. 3. Hudson과
Subversion 연결
jsp / eclipse 정보공유 http://okjsp.pe.kr
113. Check out URL
jsp / eclipse 정보공유 http://okjsp.pe.kr
130. 설정 파일 비교
jsp / eclipse 정보공유 http://okjsp.pe.kr
131. 연습문제
• 서버 사이드 스크립트와 클라이언트
사이드 스크립트의 런타임 차이점
• Client/Server 애플리케이션과 웹
애플리케이션의 차이점
jsp / eclipse 정보공유 http://okjsp.pe.kr
132. 2. 톰캣 서버 연결
• Target Runtime
jsp / eclipse 정보공유 http://okjsp.pe.kr
133. 연습문제
• 톰캣 서버 포트를 8080에서 9090으로
변경하기
• 프로젝트 퍼블리쉬하지 않게 설정
조정하기
• 자바 프로젝트와 다이나믹 웹
프로젝트의 차이점
jsp / eclipse 정보공유 http://okjsp.pe.kr
134. 3. JSP/Servlet 만들기
jsp / eclipse 정보공유 http://okjsp.pe.kr
135. Servlet 만들기
jsp / eclipse 정보공유 http://okjsp.pe.kr
136. Servlet 클래스
jsp / eclipse 정보공유 http://okjsp.pe.kr
147. 한글 문제 처리 방법
• 다른 DB클라이언트로 한글 확인
• 인코딩 함수 모두 제거 후 점진 적용
• 브라우저의 소스보기에서 한글 확인
• 중간단계의 한글 깨짐 해결
우선숚위는 최하위로
jsp / eclipse 정보공유 http://okjsp.pe.kr
148. 연습문제
• 자바에서의 캐릭터 인코딩 처리 기술
• JSP의 인코딩 처리 기술
• 한글 문제 처리 방법
• HTTP에서의 인코딩 처리 기술
jsp / eclipse 정보공유 http://okjsp.pe.kr
149. 5. Spring 웹
프레임워크 다루기
• JPetStore 샘플을 통해서 스프링
프레임워크 숙지
jsp / eclipse 정보공유 http://okjsp.pe.kr
150. warfile.bat 실행
jsp / eclipse 정보공유 http://okjsp.pe.kr
151. hsqldb 서버 기동
jsp / eclipse 정보공유 http://okjsp.pe.kr
152. import war file
jsp / eclipse 정보공유 http://okjsp.pe.kr
154. JPetStore 실행
jsp / eclipse 정보공유 http://okjsp.pe.kr
155. 연습문제
• Spring Framework 에서 다음을 순서대로
나열하시오
• Controller
• DAO
• Service
• JSP
• applicationContext.xml
jsp / eclipse 정보공유 http://okjsp.pe.kr
156. 6. 원격 서버 배포하기
jsp / eclipse 정보공유 http://okjsp.pe.kr
157. 배포시 주의사항
• 개발 서버는 Hudson 등을 통해
자동화 가능
• 운영계는 원상복구에 대한 이슈가
크기 때문에 심볼릭 링크 등을
통해서 빠르게 원복할 수 있도록 함
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
208. 테스트 코드 분리-Move
jsp / eclipse 정보공유 http://okjsp.pe.kr
209. 테스트 코드 분리-Move
jsp / eclipse 정보공유 http://okjsp.pe.kr
210. 다시 테스트 고
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
231. How to use in our team
• Each one’s IDE; before commit;
• Using App’s Health Care
• CI graph
• Code Review
jsp / eclipse 정보공유 http://okjsp.pe.kr
232. 연습문제
• JUnit과 Findbugs의 Ant 연결 파일과
Ant Task 실행을 위해 파일을 복사할
위치는 어디인가?
jsp / eclipse 정보공유 http://okjsp.pe.kr
233. 6. Selenium을 이용한
웹 UI 레코딩 테스트
• Overview
• Install
• UI Recording
jsp / eclipse 정보공유 http://okjsp.pe.kr
234. • Install Firefox
• http://getFirefox.com
• 도구 > 부가 기능
• Search "Selenium"
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
251. 수고하셨습니다.
이클립스로
행복한 개발하세요.
jsp / eclipse 정보공유 http://okjsp.pe.kr