![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/Fr4pe/btsAy5sCHMR/w9wOoQdiMlLTPG2xy2fku1/img.png)
TDD는 Test Driven Development의 약자로써, 테스트 주도 개발을 의미이며 XP(eXtreme Programming)라는 애자일 기반의 개발 방법론이다. 전통적인 개발 프로세스의 경우 설계-> 코드 작성-> 테스트의 순서를 가진다. 하지만 TDD의 경우 테스트가 핵심이다. 전통적인 개발 프로세스와는 달리 설계 -> 테스트 -> 코드 작성의 순으로 진행이 되며 테스트 코드는 최소한의 코드만을 작성하여 진행하면서 고도화를 시킨다. 전통적인 개발 프로세스의 경우는 아래와 같다. 개발 절차대로 개발을 진행하면 단점은 아래와 같다. 1. 고객이 개발자에게 요구사항을 전달할 때 추상적인 요구사항이 포함되면 개발하는 사람 입장에서는 잘못 이해할 수 있고, 그 결과 산출물이 고객의 요구사항과 달라질 ..
![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/nC4C6/btsAD1JHonU/nS1TGKymCMyDW3K7sx7DWK/img.png)
1. Generics란? - 자바 컬렉션 프레임워크는 자료구조로써 여러 타입의 객체를 저장할 수 있다. 컬렉션은 여러 타입의 객체를 저장하기 위해 기본적으로 입력 타입을 최상위 부모 클래스인 Object 형태로 저장되고 관리되도록 설계되었다. 하지만 런타임 시에 컬렉션을 사용하는 메소드에서 의도한 객체를 다루는 로직을 수행 중에 의도되지 않는 객체가 나와 에러를 발생시킬 수 있다. - Generics는 컬렉션의 입력되는 객체의 형안정성을 위해 사용되었다. 입력으로 정해진 객체 타입만을 받는다고 명시를 하는 것이다. - 이로 인해 입력으로 받아들이면 안 되는 객체 타입을 입력 단계에서 걸러버린다. * Generics 타입 매개변수 E: Element를 의미, 컬렉션의 요소 표시할 때 사용 T: Class ..