오늘은 개발 상식 :)

TDD란 무엇인가?

Test-Driven Development(TDD)는 짧은 개발 사이클 반복에 의존하는 소프트웨어 개발 프로세스다.
먼저 요구되는 새로운 기능에 대한 자동화 테스트 케이스를 작성하고, 테스트를 통과하는 가장 간단한 코드를 작성한다.
즉 일단 테스트를 통과하는 코드를 작성 후, 상황에 맞게 리팩토링하는 과정을 거치는 것을 말한다.

테스트를 작성하기 위해서는 개발자가 해당 기능의 요구사항과 명세를 분명히 이해하고 있어야 한다.
Use Case와 User Experience 등이 있으며, 코드를 작성하기 전 요구사항에 보다 집중할 수 있도록 하는 것이 TDD의 장점이다.
또한 테스트 코드 작성을 통해 새로운 기능 추가로 인한 기존 기능의 Side Effect가 있는지 쉽게 확인할 수 있다는 장점이 있다.

하지만 테스트 코드 작성으로 인한 코드량이 늘어나 빠른 생산성이 요구되는 경우에는 TDD가 걸림돌이 될 수 있다.
또한 모든 상황에 테스트 코드를 쉽게 적용할 수 있는 것이 아니기 때문에 배보다 배꼽이 더 커지는 경우가 발생할 수 있다.

메모리 누수란 무엇인가? 메모리 누수를 해결하기 위한 방법은?

메모리 누수(Memory leak) 현상은 프로그램이 필요하지 않는(더이상 사용하지 않는) 메모리를 점유하고 있는 현상을 말한다.
할당한 메모리를 사용한 다음, 반환하지 않는 것이 누적되어 발생하는 현상이다.

일반적으로 라이브러리를 활용해 디버거 모드를 종료하면 메모리 누수를 확인하도록 할 수 있다.
이러한 라이브러리를 통해서 메모리 누수 지점을 확인하고, 해당 메모리를 해제하면 된다.