216.73.216.25 TODAY : 8,451

์˜จ๋ผ์ธ ๊ฐ•์˜

 > 

PHP - ๊ณ ๊ธ‰

๐Ÿ“š PHP ๊ณ ๊ธ‰ - 4์ฃผ์ฐจ: RESTful API ๊ฐœ๋ฐœ ๊ธฐ์ดˆ - 03 JSON ๋ฐ์ดํ„ฐ ํ˜•์‹ ๋‹ค๋ฃจ๊ธฐ

๐Ÿ“š PHP ๊ณ ๊ธ‰ - 4์ฃผ์ฐจ: RESTful API ๊ฐœ๋ฐœ ๊ธฐ์ดˆ - 03 JSON ๋ฐ์ดํ„ฐ ํ˜•์‹ ๋‹ค๋ฃจ๊ธฐ

์ฃผ์š” ํ”„๋กœ๊ทธ๋žจ ์ŠคํŽ™

  • ํ‰์ : 10.0
  • ๋ผ์ด์„ ์Šค: free
  • ์šด์˜์ฒด์ œ:
  • ํŒŒ์ผ ํฌ๊ธฐ: 0

ํ”ผ๋“œ๋ฐฑ ๋ฐ ๋‹ค์šด๋กœ๋“œ

  • ์‚ฌ์šฉ์ž ํ‰์ : 10.0
  • ๋‹ค์šด๋กœ๋“œ ์ˆ˜: 1
  • ์กฐํšŒ์ˆ˜: 42

์ œ์กฐ์‚ฌ ๋ฐ ๋“ฑ๋ก ์ •๋ณด

  • ์ œ์ž‘์‚ฌ: LUZENSOFT
  • ๋“ฑ๋ก์ผ: 2025-09-14 15:02:07
  •  

- ์„ค๋ช…

#JSON์˜ #๊ฐœ๋…๊ณผ #ํŠน์ง•

uploadImage


#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 #๋ฐ์ดํ„ฐ ๋‹ค๋ฃจ๊ธฐ

uploadImage


#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 #ํ™œ์šฉ

uploadImage


#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 / ๊ฒŒ์ž„,๊ด‘๊ณ ,์šฐํšŒ์šฉ

https://vpn.luzensoft.com