์จ๋ผ์ธ ๊ฐ์
>PHP - ๊ณ ๊ธ
๐ PHP ๊ณ ๊ธ - 4์ฃผ์ฐจ: RESTful API ๊ฐ๋ฐ ๊ธฐ์ด - 03 JSON ๋ฐ์ดํฐ ํ์ ๋ค๋ฃจ๊ธฐ
				์ฃผ์ ํ๋ก๊ทธ๋จ ์คํ
- ํ์ : 10.0
 - ๋ผ์ด์ ์ค: free
 - ์ด์์ฒด์ :
 - ํ์ผ ํฌ๊ธฐ: 0
 
ํผ๋๋ฐฑ ๋ฐ ๋ค์ด๋ก๋
- ์ฌ์ฉ์ ํ์ : 10.0
 - ๋ค์ด๋ก๋ ์: 1
 - ์กฐํ์: 42
 
์ ์กฐ์ฌ ๋ฐ ๋ฑ๋ก ์ ๋ณด
- ์ ์์ฌ: LUZENSOFT
 - ๋ฑ๋ก์ผ: 2025-09-14 15:02:07
 
- ์ค๋ช
#JSON์ #๊ฐ๋ ๊ณผ #ํน์ง
#JSON (JavaScript Object Notation)์ #๊ฒฝ๋์ #๋ฐ์ดํฐ ๊ตํ #ํ์์ผ๋ก, #์ฌ๋์ด ์ฝ๊ณ ์ฐ๊ธฐ ์ฌ์ฐ๋ฉฐ ๊ธฐ๊ณ๊ฐ ํ์ฑํ๊ณ ์์ฑํ๊ธฐ ์ฌ์ด ํํ์ ๋๋ค. #JavaScript์์ #๊ฐ์ฒด๋ฅผ ํํํ๋ ๋ฐฉ์์ ๊ธฐ๋ฐ์ ๋๊ณ ์์ง๋ง, ์ฌ์ค์ ๊ฑฐ์ ๋ชจ๋ #ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์์ ์ง์ํ๋ฉฐ #RESTful API์์ #๊ฐ์ฅ ๋๋ฆฌ ์ฌ์ฉ๋๋ ๋ฐ์ดํฐ ํ์์ ๋๋ค.
#JSON์ ์ฃผ์ #ํน์ง์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
#๊ฐ์ฒด (Object):
{}์ค๊ดํธ๋ก ๋๋ฌ์ธ์ด๋ฉฐ, #ํค-๊ฐ #์์ #๋น์ ๋ ฌ ์งํฉ์ ๋๋ค. ํค๋ #๋ฌธ์์ด์ด์ด์ผ ํ๋ฉฐ, ๊ฐ์ ๋ชจ๋ #์ ํจํ JSON ๋ฐ์ดํฐ ์ ํ์ด ๋ ์ ์์ต๋๋ค.JSON
{ "name": "ํ๊ธธ๋", "age": 30 }#๋ฐฐ์ด (Array):
[]๋๊ดํธ๋ก ๋๋ฌ์ธ์ด๋ฉฐ, #๊ฐ๋ค์ #์ ๋ ฌ๋ ๋ฆฌ์คํธ์ ๋๋ค. ๊ฐ์ ๋ชจ๋ #์ ํจํ JSON ๋ฐ์ดํฐ ์ ํ์ด ๋ ์ ์์ต๋๋ค.JSON
[ "apple", "banana", "cherry" ]#๋ฐ์ดํฐ ์ ํ: #๋ฌธ์์ด (ํฐ๋ฐ์ดํ๋ก ๋ฌถ์ธ ์ ๋์ฝ๋), #์ซ์ (์ ์ ๋๋ ์ค์), #๋ถ๋ฆฌ์ธ (true/false), #null์ ์ง์ํฉ๋๋ค.
#PHP์์ #JSON #๋ฐ์ดํฐ ๋ค๋ฃจ๊ธฐ
#PHP๋ #JSON ๋ฐ์ดํฐ๋ฅผ ์์ฝ๊ฒ ๋ค๋ฃฐ ์ ์๋๋ก #๋ด์ฅ ํจ์๋ฅผ ์ ๊ณตํฉ๋๋ค. ์ฃผ๋ก ๋ค์ ๋ ๊ฐ์ง ํจ์๊ฐ ์ฌ์ฉ๋ฉ๋๋ค.
1. json_encode(): #PHP #๋ฐ์ดํฐ๋ฅผ #JSON #๋ฌธ์์ด๋ก #๋ณํ
์ด ํจ์๋ #PHP์ #๋ฐฐ์ด์ด๋ #๊ฐ์ฒด๋ฅผ #JSON ํ์์ #๋ฌธ์์ด๋ก ๋ณํํฉ๋๋ค.
PHP
<?php
$data = [
    'name' => '๊น์ฒ ์',
    'age' => 25,
    'hobbies' => ['reading', 'coding'],
    'isStudent' => true
];
$json_string = json_encode($data);
echo $json_string;
// ๊ฒฐ๊ณผ: {"name":"๊น์ฒ ์","age":25,"hobbies":["reading","coding"],"isStudent":true}
$object_data = new stdClass();
$object_data->title = "PHP ๊ณ ๊ธ ๊ฐ์";
$object_data->duration = "4์ฃผ์ฐจ";
$json_object_string = json_encode($object_data);
echo $json_object_string;
// ๊ฒฐ๊ณผ: {"title":"PHP ๊ณ ๊ธ ๊ฐ์","duration":"4์ฃผ์ฐจ"}
?>
json_encode() ํจ์๋ ๋ ๋ฒ์งธ ์ธ์๋ก ๋ค์ํ #์ต์
์ ๋ฐ์ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, JSON_PRETTY_PRINT ์ต์
์ ์ฌ์ฉํ๋ฉด ๊ฐ๋
์ฑ ์ข๊ฒ #๋ค์ฌ์ฐ๊ธฐ๋ #JSON ๋ฌธ์์ด์ ์ป์ ์ ์์ต๋๋ค.
PHP
<?php
$data = ['item1' => 'value1', 'item2' => 'value2'];
echo json_encode($data, JSON_PRETTY_PRINT);
/* ๊ฒฐ๊ณผ:
{
    "item1": "value1",
    "item2": "value2"
}
*/
?>
2. json_decode(): #JSON #๋ฌธ์์ด์ #PHP #๋ฐ์ดํฐ๋ก #๋ณํ
์ด ํจ์๋ #JSON ํ์์ #๋ฌธ์์ด์ #PHP์ #๋ฐฐ์ด์ด๋ #๊ฐ์ฒด๋ก ๋ณํํฉ๋๋ค.
PHP
<?php
$json_string = '{"name":"๋ฐ์ํฌ","age":30,"city":"Seoul"}';
// ๋ ๋ฒ์งธ ์ธ์๊ฐ true์ด๋ฉด ์ฐ๊ด ๋ฐฐ์ด๋ก ๋ณํ
$data_array = json_decode($json_string, true);
print_r($data_array);
/* ๊ฒฐ๊ณผ:
Array
(
    [name] => ๋ฐ์ํฌ
    [age] => 30
    [city] => Seoul
)
*/
// ๋ ๋ฒ์งธ ์ธ์๊ฐ ์๊ฑฐ๋ false์ด๋ฉด ๊ฐ์ฒด๋ก ๋ณํ (๊ธฐ๋ณธ๊ฐ)
$data_object = json_decode($json_string);
print_r($data_object);
/* ๊ฒฐ๊ณผ:
stdClass Object
(
    [name] => ๋ฐ์ํฌ
    [age] => 30
    [city] => Seoul
)
*/
echo $data_object->name; // ๋ฐ์ํฌ
echo $data_array['city']; // Seoul
?>
json_decode() ํจ์ ์ฌ์ฉ ์ #์ค๋ฅ ์ฒ๋ฆฌ๋ ์ค์ํฉ๋๋ค. json_last_error() ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ๋ง์ง๋ง์ผ๋ก ๋ฐ์ํ JSON ์ค๋ฅ ์ฝ๋๋ฅผ ํ์ธํ  ์ ์์ต๋๋ค.
PHP
<?php
$malformed_json = '{"name": "์๋ชป๋ JSON", "age":}'; // ๋ฌธ๋ฒ ์ค๋ฅ
$data = json_decode($malformed_json);
if (json_last_error() !== JSON_ERROR_NONE) {
    echo "JSON ๋์ฝ๋ฉ ์ค๋ฅ: " . json_last_error_msg();
}
// ๊ฒฐ๊ณผ: JSON ๋์ฝ๋ฉ ์ค๋ฅ: Syntax error
?>
#API #ํต์ ์์ #JSON #ํ์ฉ
#RESTful API์์ ํด๋ผ์ด์ธํธ์ ์๋ฒ๋ ์ฃผ๋ก #JSON์ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ์ต๋๋ค.
#์์ฒญ ๋ณธ๋ฌธ (Request Body): ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ๋ก ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ผ ๋,
POST๋PUT,PATCH์์ฒญ์ ๋ณธ๋ฌธ์ #JSON ํ์์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ๋ด์ ๋ณด๋ ๋๋ค. ์ด๋ HTTP ํค๋Content-Type: application/json์ ๋ช ์ํ์ฌ ์๋ฒ์ JSON ๋ฐ์ดํฐ์์ ์๋ ค์ค๋๋ค.#์๋ต ๋ณธ๋ฌธ (Response Body): ์๋ฒ๊ฐ ํด๋ผ์ด์ธํธ์ ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ผ ๋, ์๋ต ๋ณธ๋ฌธ์ #JSON ํ์์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ๋ด์ ๋ณด๋ ๋๋ค. ์ด๋ HTTP ํค๋
Content-Type: application/json์ ๋ช ์ํ์ฌ ํด๋ผ์ด์ธํธ์ JSON ๋ฐ์ดํฐ์์ ์๋ ค์ค๋๋ค.
#PHP์์ ์ด๋ฌํ ํ๋ฆ์ ์ฒ๋ฆฌํ๋ ค๋ฉด, ๋ค์ด์ค๋ #JSON ๋ฐ์ดํฐ๋ฅผ file_get_contents('php://input')์ผ๋ก ์ฝ์ ํ json_decode()ํ๊ณ , ๋๊ฐ๋ ๋ฐ์ดํฐ๋ json_encode()ํ์ฌ header('Content-Type: application/json')๊ณผ ํจ๊ป ์ถ๋ ฅํฉ๋๋ค.
#JSON์ #๊ฐ๊ฒฐํ๊ณ #์ ์ฐํ๋ฉฐ #์ฝ๊ธฐ ์ฌ์ด ํ์์ผ๋ก, ํ๋ #์น ์ ํ๋ฆฌ์ผ์ด์ ์์ #๋ฐ์ดํฐ ๊ตํ์ ํ์ค์ผ๋ก ์๋ฆฌ๋งค๊นํ์ต๋๋ค. PHP ๊ฐ๋ฐ์๋ก์ JSON์ ํจ๊ณผ์ ์ผ๋ก ๋ค๋ฃจ๋ ๋ฅ๋ ฅ์ RESTful API ๊ฐ๋ฐ์ ์์ด ํ์์ ์ ๋๋ค.
PHP ๊ณ ๊ธ RESTful API ๊ฐ๋ฐ ๊ธฐ์ด JSON ๋ฐ์ดํฐ ํ์ ๋ค๋ฃจ๊ธฐ ๊ฐ๋  ํน์ง PHP JSON ๋ฐ์ดํฐ ๋ค๋ฃจ๊ธฐ json_encode json_decode API ํต์ JSON ํ์ฉ
๊ณ ํ์ง ์ฐฉํ๊ฐ๊ฒฉ ํต์ ์ฌIP ๊ณ ์ IP ์์ ํVPN ์ด๊ณ ์VPN / ๊ฒ์,๊ด๊ณ ,์ฐํ์ฉ