hy30nq's blog

PHP에서 serialize와 unserialize 기능 활용하기 본문

ELITE HACKER bootcamp/Main.Web

PHP에서 serialize와 unserialize 기능 활용하기

hy30nq 2024. 5. 7. 22:54
728x90

serialize 함수의 기본 사용법

PHP에서 serialize() 함수는 데이터 구조나 객체를 바이트 스트림으로 변환하는 기능을 제공해요. 이렇게 변환된 데이터는 데이터베이스에 저장하거나 세션 간에 데이터를 전송할 때 유용하게 사용할 수 있죠.

unserialize 함수의 사용 방법

반대로 unserialize() 함수는 serialize() 함수로 변환된 바이트 스트림을 원래의 PHP 데이터 타입이나 객체로 복원해요. 이 함수는 데이터를 복원할 때, 해당 데이터가 원래 어떤 형태였는지 알고 있어야 제대로 작동해요.

사용 예시

이제 serialize()unserialize()를 어떻게 사용하는지 간단한 예시를 통해 알아볼게요.

// 배열을 정의합니다.
$myArray = array('name' => '홍길동', 'age' => 30, 'city' => '서울');

// 배열을 serialize하여 문자열로 변환합니다.
$serializedArray = serialize($myArray);
echo 'Serialized data: ' . $serializedArray . "<br>";

// serialize된 데이터를 다시 배열로 복원합니다.
$unserializedArray = unserialize($serializedArray);
print_r($unserializedArray);

예시의 실행 결과

위 코드를 실행하면 다음과 같은 결과를 볼 수 있어요.

Serialized data: a:3:{s:4:"name";s:9:"홍길동";s:3:"age";i:30;s:4:"city";s:6:"서울";}
Array ( [name] => 홍길동 [age] => 30 [city] => 서울 )

첫 번째 출력에서는 배열이 어떻게 문자열로 변환되었는지 보여줍니다. 두 번째 출력에서는 이 문자열을 다시 배열로 복원한 결과를 보여주죠.

활용 시 주의사항

serialize()unserialize()를 사용할 때는 보안에 주의해야 해요. 특히 외부에서 제공받은 데이터를 unserialize() 할 때는 그 데이터가 신뢰할 수 있는 출처에서 온 것인지 확인하는 것이 중요합니다. 그렇지 않으면 코드 삽입 공격이나 데이터 손상 같은 보안 문제가 발생할 수 있어요.

마무리

serialize()unserialize()는 PHP에서 데이터를 효율적으로 저장하고 전송할 수 있게 해주는 유용한 함수들이에요. 하지만 사용할 때는 보안 측면을 항상 신경 쓰면서 사용해야 한다는 점, 잊지 마세요!


이 글이 도움이 되셨나요? 궁금한 점이나 추가적으로 알고 싶은 내용이 있다면 언제든지 문의해주세요. 더욱 유익한 정보를 제공하기 위해 노력하겠습니다.

728x90