예전에는 거의 serialize()를 많이 사용했던 것 같은데, 요새는 AJAX 가 대세고, 더구나 angularJS처럼 아예 javascript로 app을 만드는 때가 되다 보니 json_encode()를 실무에서도 많이 이용하게 됩니다. json_encode()로 포맷을 잡아 놓으면 데이터 송수신하면서 따로 작업을 할 필요가 없어지게 된 거지요.
퍼포먼스 측면에서도 외국에서 벤치마킹한 결과를 보면 serialize()보다 json_encode()가 1.5~2배 이상 더 빠른 것으로 알려져 있습니다.
그럼에도 개인적으로 작업을 하다 보면, serialize()가 필요한 이유는 개인적으로 몇가지 있습니다 :
1. 자료를 복원할 때 정확하게 특정 class로 복원해야 하는 경우에는 serialize()가 아직도 더 편리합니다. 물론 단순 class나 array라면 캐스팅해버리면 되긴 하지만요.
2. 서버의 php 버전이 낮은 경우입니다. 사실 이 글을 포스팅하는 이유가 오늘 하루 종일 예전 DB의 레코드를 json_encode 해서 신규 서버 mysql에 넣었다가 다시 이용하는 작업을 하다 짜증하서 쓰게 되었는데요. 특히 PHP 5.2 이전 버전은 json과 관련된 함수들의 기능에 제한이 많습니다.
3. 이건 별 실효성은 없는 한계이지만, json_decode() 실행시 nested 계단이 127개 이상이면 에러가 발생합니다. json을 이용하는 이유가 직관적이고 사람이 바로 알아보기 편하다는 이유도 있는데.. 127 계단을 만들지는 않겠지요? ㅋㅋ 아마 PHP 개발자들도 그렇게 생각하고 한계를 127개로 한 것 같습니다.
하여튼 대세는 json 이지만, 아직도 serialize()가 더 편한 점도 남아있습니다.
'Dev > php' 카테고리의 다른 글
[php] openweathermap.org의 API를 이용한 현재 기상정보 보여주기 (4) | 2015.01.29 |
---|---|
[php] openweathermap.org의 API와 cUrl을 이용하여 기상정보 가져오기 (0) | 2014.11.06 |
application/json 포맷으로 angularJS - php script 사이에 데이터 주고받기 (0) | 2014.09.21 |
[tip] 빈 객체 만들기 stdClass() (0) | 2014.09.15 |
[그누보드5] 주요 함수 정리... (0) | 2014.08.26 |