[책] 조대협의 서버 사이드 - 소프트웨어 개발과 테스트, 프리렉
Note
- p38. 개발자가 하루에 코딩하는 시간: 계획10:안정화25:나머지65(회의/리뷰25:엔지니어링75(설계10:코딩90)) ==> 4주 20일 기준 13일이 구현에 소요되며, 회의/잡무(3.25일) 제외시 10일 전후가 실제 디자인/코딩에 소요됨
- p52. 엑셀을 이용한 태스크관리
- - 태스크#; 카테고리; 서브태스크; 태스크 상세; 담당자; 우선순위; 종료일; 상태(신규/할당됨/진행 중/연기됨/종료)
- - 이터레이션 주기는 한 달이하가 적절
- - 태스크는 각 팀원의 가동률(Utilization)을 80%수준으로 잡기
- - 설계:구현:테스트 = 1:1:1
- p57. 요구사항 정의
- - 누가 왜 이 행위를 원하는 것이며, : Who, Why
- - 이 행위의 결과로 얻을 수 있는 비지니스 가치는 무엇인가 : What
- - 이 비지니스 가치를 얻으려고 하는 행위가 무엇인지에 대한 명확한 정의 : How
- p74. UX 프로토타입 설계 도구: balsamiq, layoutit
- p111. 프로젝트 매니저: 어떻게든 프로젝트를 성공적으로 끝내는 역할 ==> 인원, 일정, 돈(Budget), 위험 요소(Risk), 커뮤니케이션
- - 프로젝트 일정만 체크하는 수동적 자세가 아니라, 매주 단위로 각 개발 인원의 일정과 작업량을 체크하고 탄력적인 일정/범위 조정 필요
- - 어떤 업무를 할 때 현재 가용한 자원을 가지고 프로젝트에 필요한 가치를 생산할 수 있는 지 없는 지가 결정의 포인트가 되어야 함
- p118. walkthrough: 단체로 하는 코드 리뷰 기법 중 가장 비정형; 사례에 대한 정보 공유나 아이디어 수집; 발표자가 리뷰를 주관하며 발표하는 역할
- p124. 효과적인 코드 리뷰를 막는 요인들: "내가 만든 코드를 남이 잘못되었다고 이야기하는 것"
- - 리뷰의 목적= 결함의 발견과 개선 방안
- - 리뷰를 중재하는 사람 필요; 사람사이의 관계에 대한 '문화' 필요; 시간, 리소스 배려
- - 코드 리뷰용 도구: reviewboard(오픈소스), crusible(상용 by 아틀란시아), gerrit(git 기반의 오픈소스 코드 리뷰 도구, p273), gitLab(오픈소스)
- * git (p275) 참고
- - http://rogerdudler.github.io/git-guide/index.ko.html
- - http://pcottle.github.io/learnGitBranching/
- p126. Michael Bosworth - "Solution Selling"
- - 똑똑한 세일즈는 인식하지 못하는 요구사항(Latent Pain)을 문제 인식하도록 하여(Admitted Pain) 고객이 해결안을 가지도록(Solution Vision) 하는 흐름으로.
- p136. 비기능 테스트
- - 성능 지표: TPS(초당 처리량), 응답시간(Response Time) --> 가상 사용자의 수를 늘려가면서 부하의 양을 점차 늘려가는 데, 이 때 임계 성능을 측정해야 함; TPS는 임계점을 넘어가면 일정 수준을 유지하게 되므로 이때의 TPS가 시스템의 최대 성능임; 응답시간의 경우, 부하량이 늘어날 때, 목표한 응답 시간 이상으로 올라가는 시점을 임계 성능으로 파악
- - CPU는 70~80%를 사용하는 때를 목표치로 함
- p173. 오픈소스 부하 테스팅: SoapUI, JMeter, nGrinder, Gatling
- p186. 새로운 비지니스 모델 만들기: 파트너십 확보, 수익 모델 확보, 변화 관리(예: 애플의 스마트폰을 사용할 수 있도록 변화를 유도하고 이에 대한 장애물을 제거)
- p187. 테스트도구: DBUnit (데이터베이스 단위 테스트), Easy Mock (Java 기반의 Mock 객체), Cactus (서블릿과 관련된 테스팅 프레임워크)
- - HTTP 요청/응답에 대한 블랙박스 테스팅: HttpUnit, SoapUI, Selenium
- p210. 코드 커버리지 분석: 상용(Clover, Code Pro Analytix), 오픈소스(EMMA, Cobertura)
- p228. 부하테스트: HP Load Runner, nGrinder(오픈소스, NHN에서 Grinder를 개선)
- - nGrinder: Groovy와 Jytho 기반
- p231. 테스트케이스 관리 도구: TestLink(오픈소스; 테스트를 중심으로 프로젝트 관리)
- - PSI-probe: 톰캣 모니터링 도구
- - 인프라(CPU, 메모리, IO) 모니터링: top, glance
- p248. 오픈소스 시대 공부하는 법: stackoverflow, code school, code academy, bitnami, infoq, dzone
- - 구인사이트: monster.com, career 2.0
- - 공개자료: slideshare.net
- p278. 빌드 : 실행 환경에 맞춰서 소스 코드를 실행 가능한 형태의 바이너리로 변경하고 패키징하는 일련의 과정 (make, ant, maven, gradle)
- - p280: Jersey + MyBatis + Spring + Maven 개발 환경 구축 및 RPM 패키징 예제
- - Maven 저장소 : Sonatype의 Nexus (기본 기능은 무료로 제공) p311
- p348. 개발환경 가상화: Vagrant, Docker
댓글 없음:
댓글 쓰기