개발자가 필수로 가져야 하는 역량
1. 필요한 기능을 빠르게 구현하는 것 -> 기술면접에서 면접관이 기능 구현을 요구하면 라이브코딩 해야하는데 이 때 필요하다.
2. 기능에 해당하는 테스트를 작성하는 것 -> 기능구현을 테스트를 통해 보여줘야 함
그럼 개발자들이 말하는 테스트는 무엇일까?
Testing : 소프트웨어 테스트를 말하며 제품 또는 서비스의 품질을 확인하고, 소프트웨어의 버그를 찾아내는 것을 말한다. 즉 제품이 예상대로 동작하는지 확인하는 것이다
그럼 TDD는 무엇일까?
Test-Driven Development(테스트 주도 개발)의 약자로 코드작성 전에 테스트 코드를 먼저 작성하는 과정을 말한다!
어떤 프레임워크나 라이브러리를 말하는게 아니고 개발 방법론이다!
필요한 하나의 케이스를 코드로 작성하고 실패하면 성공할 정도의 코드를 추가해 나간다. 이렇게 케이스를 모아서 하나의 제품을 완성해 나가는 방법이다.
그런데 이것이 왜 요즘 핫할까?
세부사항을 하나하나 점검할 수 있고, 이를 토대로 전체를 설계할 수 있기 때문이다. 그리고 개발자들은 케이스마다 실패하면 수정하고 다음 케이스로 넘어가는 과정을 반복하기 때문에 개발 집중도가 향상되는 장점이 있다고 한다!