논리 오류
논리 오류(또는 논리적 오류)는 프로그램의 소스 코드에 있는 실수로 인해 잘못되거나 예상하지 못한 동작이 발생하는 것을 말합니다. 논리 오류는 단순히 잘못된 출력을 생성할 수도 있고, 실행 중인 프로그램이 중단되게 할 수도 있는 일종의 런타임 오류입니다.
프로그래밍 실수의 유형은 매우 다양하며, 이로 인해 논리 오류가 발생할 수 있습니다. 예를 들어 값을 잘못된 변수에 할당하면 일련의 예상하지 못한 프로그램 오류가 발생할 수 있습니다. 두 수를 더하는 대신 곱하면 원하지 않는 결과가 나올 수도 있습니다. 구문 오류를 발생시키지 않는 작은 오타도 논리 오류를 일으킬 수 있습니다. 아래의 PHP 코드 예제에서는 등호 하나(=)가 등호 두 개(==)여야 하므로 if 문에서 논리 오류가 발생할 수 있습니다.
잘못된 코드: if ($i=1) { ... }
올바른 코드: if ($i==1) { ... }
PHP에서 "=="는 "같다"는 뜻이고, "="는 "된다"는 뜻입니다. 따라서 잘못된 if 문은 변수 $i에 1을 할당하면 TRUE 값이 반환되므로 항상 TRUE를 반환합니다. 올바른 코드에서는 $i가 1과 같을 때만 if 문이 TRUE를 반환합니다. 그러나 잘못된 코드의 구문은 허용되므로 구문 오류가 발생하지 않고 코드가 성공적으로 컴파일됩니다. 논리 오류는 런타임 중에야 발견될 수 있습니다. 논리 오류는 소스 코드에 숨겨져 있는 경우가 많기 때문에 일반적으로 구문 오류보다 찾아내고 디버깅하기가 더 어렵습니다.
지식 테스트하기