세미나
-
[OKKYCON: 2018] 이규원 - 당신들의 TDD가 실패하는 이유세미나 2020. 9. 27. 13:00
1. 개요 성공하는 팀이 어떻게 하고 있는지 하나의 사례를 엿본다. 우리 프로젝트 - Non-Startup - Business Service (B2B) - Global Market - Competitors (경쟁사들 존재) - Message-Driven (메시지 기반) - Multitenancy (멀티테넨시: 여러 사용자가 동시에 한 서비스를 공유하여 사용) - Scalable (범위성: 확장하거나 커져도 기존의 기능이 제대로 작동하는 능력) - Responsive (반응형) 우리 팀 - 본인 - 1년차 1명 - 신입 2명 초급 개발자들이 위와 같은 요구사항에 어떻게 적응하였는지 얘기해보려 한다. 2. TDD가 실패하는 이유 (개인과 조직의 시각) 준비가 안됐기 때문 성급하게 도입하고 성급하게 결과를 보..
-
[OKKYCON: 2018] 박재성 - 의식적인 연습으로 TDD, 리팩토링 연습하기세미나 2020. 9. 13. 19:28
TDD는 무작정 연습하기보다 의식적으로 연습해야 한다. 책에서 추천하는 의식적인 연습 원칙 한 단계 발전하기 위해서는 컴포트 존(익숙하고 편안한 수준)을 벗어난 지점에서 연습을 한다. 피드백을 받을 수 있는 환경(코드리뷰나 테스트 코드 등)을 만들어서 피드백에 따라 다음 단계를 연습해야 한다. 한 번에 많은걸 연습하기보다 한 가지 특정 부분을 개선하는 것이 효과적인 연습이다. 의식적인 TDD, 리팩토링 연습 과정 1단계 - 단위 테스트 연습 내가 사용하는 API (String 클래스의 split, substring 등) Input과 Output이 명확한 클래스 메서드 (보통 Util 성격의 메서드) 알고리즘 2단계 - TDD 연습 연습은 토이 프로젝트에 진행 ( 회사 프로젝트는 일정 압박에 연습이 잘 안..
-
[OKKYCON: 2018] 정진욱 - 테스트하기 쉬운 코드로 개발하기세미나 2020. 9. 6. 23:22
테스트하기 쉬운 코드란? 같은 입력에 항상 같은 결과를 반환하는 코드 (Deterministic) 외부상태를 변경하지 않는 코드 (No side effects) 테스트하기 어려운 단계는? (2, 3) ConferenceRegistration (VO) 유효성 검사 이미 등록된 좌석 수 DB에서 읽어오기 (Not Deterministic) 요청한 좌석 수가 확보 가능한지 판단 등록 정보 저장 (Side effects) HTTP 결과 반환 테스트 코드를 만족하는 만큼만 최소한으로 구현을 하라 테스트는 1만 작성했지만 구현은 1, 2, 3을 하게되면 구현 코드 2, 3은 테스트에 커버되지 않음 TDD의 점진적인 접근 방법의 긍정적인 효과를 잃어버림 방법 테스트하기 쉬운 코드와 어려운 코드를 분리 두 부류의 코드..