728x90
반응형
변수가 사용되기 전에 어떤 경계 내에 위치하는지를 검사하는 기법.
주로 범위 검사, 인덱스 검사가 있고, 경계 검사에 실패한 경우 예외(exception)으로 처리된다.
- 범위 검사 : 어떤 숫자가 특정 범위(Range)내에 존재하는지 여부를 검사
ex) 월을 표현하는 변수의 경우 값이 1-12 사이에 있는지에 대한 검사
- 인덱스 검사 : 접근할 배열의 인덱스가 배열의 경계 안에 존재하는지 여부 검사. 통상 경계 검사라고 하면 인덱스 검사를 이른다. 인덱스 검사 실패는 통상적으로 에러로 인한 프로그램 종료로 이어진다.
많은 고급 프로그래밍 언어들이 인덱스 검사 기능을 내장하고 있는데, 이는 배열 경계 바깥에 데이터 읽기/쓰기가 허용되면 프로그램 오동작, 충돌, 심지어 (버퍼 오버플로와 같은) 보안 취약점 등이 발생할 수 있기 때문이다.
주로 컴퓨터 보안과 관련해 메모리 취약점 발생을 근본적으로 방지하는 목적으로 사용되지만, 성능 측면에서 상당한 오버헤드를 발생시켜 통상 모든 경우에 항상 수행되지는 않는다.
이와 관련한 컴파일러 최적화 기법 가운데 하나는 불필요한 경계 검사 코드를 제거하는 것을 목표로 하기도 한다. (Bound-checking elimination)
728x90
반응형
'Python > python 기초' 카테고리의 다른 글
break & continue (0) | 2021.05.10 |
---|---|
range로 반복문 활용하기 (0) | 2021.05.10 |
(메소드) rjust, zfill, split, startswith, endswith, replace, copy (0) | 2021.05.09 |
map 내장함수 (0) | 2021.05.09 |
정규표현식 (0) | 2021.05.06 |