시소당
결론
JDK 1.0의 이벤트 모델을 사용하던 개발자가 JDK 1.1부터 적용된 위임형 이벤트 모델을 사용해야 하는 경우와 비슷하게, Assertion을 사용하는 것은 아직 많은 개발자에게 익숙하지 못한 기능이다. 물론, Assertion 개념을 포함하고 있던 언어를 사용해본 경험이 있는 개발자들은 자바의 Assertion 기능을 적극적으로 사용하겠지만, 자바 1.4 이전 버전의 예외 처리 방식에 익숙한 개발자들의 경우는 Assertion 기능을 알맞게 사용하기 까지 시간이 걸릴 것이다.
하지만 Assertion 기능을 사용하기까지 시간이 걸린다 하더라도, 콜렉션 API가 그랬던 것처럼 Assertion 기능도 점차 많은 개발자들에게서 사용될 것으로 생각되며 차기 버전에서는 보다 발전된 모습으로 다가올 것이라 믿는다. 지금부터라도 Assertion 기능을 활용하는 습관을 들인다면 깔끔한 코드를 작성할 수 있는 개발자로 거듭날 수 있게 될 것이다.
강제적으로 Assertion 기능을 사용하도록 만드는 방법
자바실행환경은 기본적으로 Assertion 기능을 사용하지 않기 때문에, 강제적으로 Assertion 기능을 사용하도록 유도하는 방법이 필요하다. 이런 경우에 사용할 수 있는 코드가 바로 다음과 같다.
static {
boolean assertsEnabled = false;
assert assertsEnabled = true;
if (!assertsEnabled)
throw new RuntimeException("Assertion 기능이 사용가능해야 합니다!");
}
위 코드를 main() 메소드가 있는 클래스에 추가하면 Assertion 기능을 사용하도록 유도할 수 있다. 예를 들어, Assertion 기능을 사용하지 않는 경우 위 코드의 assert 문장이 실행되지 않으므로 assertsEnabled 변수의 값이 false인 상태로 남게 될 것이며 RuntimeException이 발생하게 될 것이다.