DBMS 에서 변수 값을 '?'로 대체하여 컴파일 한 뒤, 이 후 변수 값을 대입하여 실행하는 것
장점
- 같은 질의가 여러번 실행 될 때, 컴파일이 한 번만 이루어지므로 효율적
- 자동으로 escape character()를 삽입하여 프로그램 언어에서 쿼리문으로 파싱될 때 문법 오류를 예방
- 입력 받은 값을 통째로 문자열로 바꾸어 주기 때문에 SQL injection 공격을 예방
SQL injection 공격
요약하자면 실행될 수 있는 쿼리 코드를 입력값으로 전달하여 서버의 데이터베이스를 공격하는 방법이다.
나무 위키에 설명이 잘되어 있다.
참고 자료
Abraham Silberschatz, 데이터베이스시스템 7판, 172-174