실제 웹개발에 쓰이는 PHP 퀴즈 10문제
아래 PHP 퀴즈는 웹개발자가 꼭 알아야 할 기본 개념과 실무 감각을 테스트할 수 있습니다.
1. 세션(session)과 쿠키(cookie)의 차이점은 무엇인가?
정답: 세션은 서버에 저장되고, 쿠키는 클라이언트(브라우저)에 저장됨. 세션은 보안에 더 안전하며, 쿠키는 사용자의 브라우저에서 쉽게 조작 가능. 세션은 서버 메모리를 사용하므로 서버 자원이 더 소모됨. 쿠키는 만료 시간을 지정할 수 있음.
2. 아래 PHP 코드를 실행했을 때 출력 결과는?
$a = "5 apples";
$b = 10;
echo $a + $b;
정답: 15
PHP는 문자열 앞에 숫자가 있으면 자동으로 숫자 부분만 연산에 사용한다. "5 apples"에서 숫자 5만 추출되어 5 + 10 = 15 출력됨.
3. 파일 업로드 시 보안을 위해 꼭 확인해야 하는 것은?
- 파일 크기 제한
- 확장자 검사
- MIME 타입 검사
- 업로드 경로 권한 설정
- 모든 항목
정답: 모든 항목
4. 아래 코드는 무엇을 의미하는가?
require_once 'config.php';
정답: config.php 파일을 한 번만 불러오며, 만약 파일이 없으면 에러가 발생해 스크립트 실행이 중단된다.
5. PHP에서 배열에 값을 추가하는 방법으로 옳지 않은 것은?
- $arr[] = "값";
- array_push($arr, "값");
- $arr[5] = "값";
- push($arr, "값");
정답: push($arr, "값"); 는 존재하지 않는 함수.
6. PHP에서 $_POST와 $_GET의 차이는?
정답: $_GET은 URL 쿼리스트링으로 전달된 데이터이고, $_POST는 HTTP POST 방식으로 전달된 데이터. GET 방식은 데이터가 URL에 노출됨, POST 방식은 상대적으로 보안성이 높음 (하지만 절대적 보안 아님).
7. 다음 중 PHP에서 변수의 유효 범위(scope)가 아닌 것은?
- 전역 변수(global)
- 지역 변수(local)
- 정적 변수(static)
- 비동기 변수(async)
정답: 비동기 변수(async)는 PHP 변수 유효 범위 개념이 아님.
8. MySQL 데이터베이스 연결 후 쿼리 실행 시 보안상의 이유로 반드시 해야 하는 것은?
사용자의 입력값을 mysqli_real_escape_string() 또는 준비된 문장(Prepared Statements)을 사용하여 SQL Injection 방지.
9. PHP에서 세션 시작 함수는?
session_start(); 함수를 호출해야 세션을 사용할 수 있다.
10. 아래 코드를 실행할 때 에러가 발생하는 이유는?
echo "Hello";
require 'missingfile.php';
echo "World";
require는 포함할 파일이 없으면 치명적 에러를 발생시켜 스크립트 실행이 중단되므로 "World"는 출력되지 않는다.