정보처리기사 필기
시험 직전 요약장
판단 기준과 헷갈리는 개념, 대표 예제를 짧게 확인하세요.
코드 안전성·인증·인가·세션 통제
원래 이론 →판단 기준
코드 안전성은 입력뿐 아니라 메모리 경계·계산·객체 수명·자원·동시 실행을 올바르게 다루는 문제다. 인증은 주체가 누구인지 확인하고, 인가는 그 주체가 무엇을 할 수 있는지 결정한다. 세션은 인증 이후의 요청을 사용자 상태와 연결하므로 생성·사용·변경·종료를 안전하게 관리해야 한다.
헷갈리는 개념
| 약점 | 원인·의미 | 기본 대응 |
|---|---|---|
| 널 포인터 역참조 | 유효 객체가 없는 참조 사용 | 반환·초기화 상태 확인 |
| 초기화되지 않은 값 사용 | 정의되지 않은 상태에 의존 | 사용 전 명확한 초기화 |
| 해제 후 사용(UAF) | 수명이 끝난 메모리·객체를 다시 사용 | 소유권·수명 관리 |
| 이중 해제 | 같은 자원을 중복 해제 | 해제 책임과 경로 일관화 |
| 메모리·자원 누수 | 더 이상 필요 없는 자원을 반환하지 않음 | 정상·오류 경로 모두에서 정리 |
대표 계산·예제
버퍼 오버플로는 허용된 저장 영역을 넘어 데이터를 기록하는 문제다. 인접 데이터 손상, 프로그램 중단, 보안 통제 우회 등으로 이어질 수 있다. 경계 밖 읽기는 메모리의 민감한 내용을 노출할 수 있다.
배열의 유효 인덱스, 입력 길이와 버퍼 용량, 문자열 종료 문자에 필요한 공간을 확인한다. 오프바이원(Off-by-one)은 반복이나 경계 조건이 한 칸 어긋나는 오류다. 길이가 n인 배열의 인덱스가 0부터 시작한다면 마지막 유효 인덱스는 n−1이다.
정수 오버플로·언더플로는 계산 결과가 표현 범위를 벗어나는 문제다. 특히 요소 개수 × 요소 크기로 메모리 크기를 구할 때 계산이 넘치면 실제 필요한 크기보다 작은 공간을 할당할 수 있다. 계산 이후 값만 확인하는 것보다 계산 전 허용 범위와 자료형을 확인해야 한다.
부호 있는 값과 없는 값을 섞어 비교하거나 더 작은 자료형으로 변환할 때도 의미가 달라질 수 있다. 언어·자료형에 따라 오류 처리와 결과가 다르므로 모든 오버플로가 같은 방식으로 순환한다고 단정하지 않는다.
내 최근 연습 오답
현재 브라우저의 연습 채점 기록에서 공개된 단원과 연결된 오답을 확인합니다.
오답 기록을 확인하고 있습니다.