개발/자바
Java의 Assert 문: 디버깅을 위한 강력한 도구
피터JK
2025. 2. 11. 15:32
728x90
Java에서 assert는 특정 조건이 참인지 확인하고, 거짓일 경우 AssertionError를 발생시키는 기능입니다. 이는 주로 디버깅 및 테스트 목적으로 사용됩니다.
1. assert 문법 및 사용 방법
(1) 기본 문법
assert 키워드는 두 가지 형태로 사용할 수 있습니다.
① 단순 조건 검사
assert 조건식;
- 조건식이 true이면 아무런 문제 없이 실행됩니다.
- 조건식이 false이면 AssertionError가 발생하여 프로그램이 종료됩니다.
예제:
int x = -5;
assert x > 0; // x가 0보다 크지 않으면 AssertionError 발생
② 오류 메시지 포함
assert 조건식 : 오류_메시지;
- 조건식이 false일 경우, AssertionError가 발생하며, 지정한 오류 메시지가 출력됩니다.
예제:
int age = -1;
assert age >= 0 : "나이는 0 이상이어야 합니다.";
2. assert 활성화 및 비활성화
Java에서 assert는 기본적으로 비활성화되어 있으며, 실행 시 옵션을 추가해야 활성화됩니다.
(1) 활성화 방법 (-ea 옵션 사용)
java -ea Main
(2) 비활성화 방법 (-da 옵션 사용, 기본값)
java -da Main
3. assert 사용 사례
(1) 내부 논리 검증
public int divide(int a, int b) {
assert b != 0 : "0으로 나눌 수 없습니다!";
return a / b;
}
- b가 0이면 AssertionError가 발생하여 프로그램이 종료됩니다.
(2) 코드 실행 흐름 보장
public int getPositiveNumber(int n) {
assert n > 0 : "입력값은 양수여야 합니다!";
return n;
}
- n이 0 이하이면 예외 발생.
4. assert 사용 시 주의점
- 실제 서비스 코드에서는 사용하지 않는 것이 일반적
- assert는 기본적으로 비활성화되어 있으므로, 중요한 검증 로직에는 if 문을 사용하는 것이 좋습니다.
- 입력값 검증에는 사용하지 말 것
- 외부에서 입력받은 데이터 검증에는 if 문과 throw를 사용하는 것이 안전합니다.
if (age < 0) { throw new IllegalArgumentException("나이는 0 이상이어야 합니다."); } - 테스트 및 디버깅 목적에 적합
- assert는 개발 중 논리 검증이나 예상되지 않는 상태를 확인하는 데 유용합니다.
5. 결론
- assert는 디버깅과 테스트를 위한 기능으로, 특정 조건이 만족되지 않으면 AssertionError를 발생시킵니다.
- 기본적으로 비활성화되어 있으며, 실행 시 -ea 옵션을 추가해야 활성화됩니다.
- 실제 서비스 코드에서는 중요한 검증 로직으로 사용하지 않는 것이 일반적입니다.
개발 중 논리 검증을 강화하고 디버깅을 효율적으로 수행하려면 assert를 적극 활용하세요!
728x90