데이터 조작 프로시저와 디버깅
프로시저의 입출력·오류 처리를 이해하고 중단점과 단계 실행으로 프로그램의 동작을 추적한다.
데이터 조작 프로시저
데이터 조작 프로시저는 저장소의 데이터를 읽거나 변경하는 처리 절차다. 저장 프로시저는 데이터베이스에 정의해 두고 호출하는 루틴으로, 응용 프로그램에 같은 처리 코드를 반복 작성하는 방법과 구분한다. 저장 프로시저라는 이유만으로 항상 빠르거나 권한 확인이 불필요한 것은 아니다.
| 매개변수 모드 | 의미 |
|---|---|
| IN | 호출자가 전달한 입력을 사용 |
| OUT | 처리 결과를 호출자에게 반환 |
| INOUT | 입력을 받아 변경한 값을 반환 |
모드는 자료형과 다르다. 구체적인 호출 문법은 DBMS마다 다르므로 문제에 제시된 규칙으로 값을 추적한다.
정상·빈 결과·오류 처리
데이터 연결 → 입력 검증 → 조회·변경 → 결과 반환 → 자원 정리의 흐름을 확인한다. 정상적으로 조회했지만 행이 없는 경우와 연결 장애로 실행하지 못한 경우는 구분한다. 반환값과 오류 상태는 모든 종료 경로에서 명확히 정한다.
호출마다 출력 상태를 초기화하여 이전 성공 값이 다음 실패 결과에 남지 않도록 한다. 연결·파일 등 획득한 자원은 정상 종료와 오류 경로에서 모두 정리한다. 반환한 자원을 다시 사용하지 않는다.
프로그램 디버깅
테스트가 실패를 발견하면 디버깅으로 원인을 추적하고 수정한다. 입력·환경·재현 절차를 확인하고, 결함이 계속 나타나는 작은 입력으로 범위를 줄이면 원인을 조사하기 쉽다.
| 기능 | 동작 |
|---|---|
| 중단점 | 지정한 실행 위치에서 멈춤 |
| 조건부 중단점 | 해당 위치에 도달하고 지정 조건이 참일 때 멈춤 |
| Step Into | 호출한 함수 내부로 들어가 추적 |
| Step Over | 현재 줄의 호출을 내부 추적 없이 수행 |
| Step Out | 현재 함수를 마치고 호출자로 복귀 |
| Continue | 다음 중단 조건까지 실행 |
| 감시 창·호출 스택 | 변수 값과 함수의 호출 관계 확인 |
중단점이 줄 실행 전인지 후인지에 따라 관측 값이 다르다. 호출 스택에서는 현재 함수의 직접 호출자와 더 위쪽의 간접 호출자를 구분한다. 값의 변경 순간에 멈추는 데이터 중단점과, 멈추지 않고 기록하는 로그포인트도 구분할 수 있다.