์ฝ์ด์ฃผ์ธ์ : ํ ํ๋ฆฟ์ ์์ฑํด์ผํฉ๋๋ค! ์ ๋ณด๊ฐ ์ถฉ๋ถํ์ง ์์ ๋ฌธ์ ๋ ์ ํ๋์ง ์์ ์ ์์ต๋๋ค. ์ด์ ํ ํ๋ฆฟ์ ์ฌ์ฉํ์ฌ ์์ฑ๋์ง ์์ ์ด์๋ ์ข ๋ฃ๋ฉ๋๋ค. Laravel-Excel์ ๊ธฐ์ฌ ์ง์นจ (https://laravel-excel.maatwebsite.nl/docs/3.1/getting-started/contributing) ๋ฐ ํ๋ ๊ฐ๋ น (https://github.com/Maatwebsite/Laravel-Excel/)์ ์ฝ์์ต๋๊น? blob / 3.1 / CODE_OF_CONDUCT.md)? ๋ฌธ์ ๋ฅผ ์ ๊ธฐํ๋ฉด ๋ชจ๋ ์ฌ๋์ ์กด์คํ๋ ๊ฒ์ ํฌํจํ์ฌ ๋ฌธ์ ๋ฅผ ์ค์ํด์ผํฉ๋๋ค. ๋ฌธ์ ์์ [BUG]๋ฅผ ์ ๋ ฅํ์ธ์.
์คํ๋ ๋ ์ํธ๋ฅผ ๊ฐ์ ธ์ค๊ณ WithCalculatedFormulas
ํน์ฑ์ ํฌํจ ํ ๋ =metadata!B10
์์์ด์๋ ์
(์ฆ, ๋ค๋ฅธ ์ํฌ ์ํธ ์ฐธ์กฐ)์ด ํ๊ฐ ๋ ๋ ๋ค์ ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค.
null์์ ๋ฉค๋ฒ ํจ์ has () ํธ์ถ
์ ์ฒด ์คํ ์ถ์ ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
๋ด๊ฐ ์ ์ ์๋ฏ์ด ์
์ด ํ๊ฐ๋๊ธฐ ์ ์ ๋ค๋ฅธ ์ํธ์ ์ฐ๊ฒฐ์ด ๋์ด ์ก๊ธฐ ๋๋ฌธ์ ์์์ ํ๊ฐํ ์ ์์ต๋๋ค. ๋๋ Sheet->disconnect()
๋ด์ ์ฝ๋๋ฅผ ์ฃผ์ ์ฒ๋ฆฌํ์ฌ์ด ์์ฌ์ ํ์ธํ์ผ๋ฉฐ ๊ทธ ํ์ ์๋ํ์ต๋๋ค.
๋ฌธ์ ๋ ์์
์
์๊ฐ WithMultipleSheets
ํน์ฑ์ ๊ฐ์ง ๋ค๋ฅธ ์์
์
์๋ก๋ถํฐ ์คํ๋๊ณ ๋ ๋ฒ์งธ ์ํธ๋ก ์ด๋ํ ๋ ์ฑ๋ฅ์์ ์ด์ ๋ก ์ฒซ ๋ฒ์งธ ์์
์
์์ ์ฐ๊ฒฐ์ ๋๋๋ค๊ณ ๊ฐ์ ํฉ๋๋ค.
์ฒซ ๋ฒ์งธ ์ํธ๋ฅผ ์ฐธ์กฐํ๋ ์์์ด ํฌํจ ๋ tracks!G2
์
์ด์๋ ์๋ชป๋ ์ํธ๊ฐ ์ฒจ๋ถ๋์์ต๋๋ค.
bundle-metadata-reference.xlsx
์์๋๋ ๋์ :
์ํธ๋ฅผ ๊ฐ์ ธ์ฌ ๊ฒ์ผ๋ก ์์ํฉ๋๋ค.
์ค์ ํ๋ :
์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค.
์คํ ์ถ์ :
#0 \/var\/www\/vendor\/phpoffice\/phpspreadsheet\/src\/PhpSpreadsheet\/Calculation\/Calculation.php(3870): PhpOffice\\PhpSpreadsheet\\Worksheet\\Worksheet->cellExists('B10')
#1 \/var\/www\/vendor\/phpoffice\/phpspreadsheet\/src\/PhpSpreadsheet\/Calculation\/Calculation.php(2944): PhpOffice\\PhpSpreadsheet\\Calculation\\Calculation->processTokenStack(Array, 'G2', Object(PhpOffice\\PhpSpreadsheet\\Cell\\Cell))
#2 \/var\/www\/vendor\/phpoffice\/phpspreadsheet\/src\/PhpSpreadsheet\/Calculation\/Calculation.php(2734): PhpOffice\\PhpSpreadsheet\\Calculation\\Calculation->_calculateFormulaValue('metadata!B10', 'G2', Object(PhpOffice\\PhpSpreadsheet\\Cell\\Cell))
#3 \/var\/www\/vendor\/phpoffice\/phpspreadsheet\/src\/PhpSpreadsheet\/Cell\/Cell.php(262): PhpOffice\\PhpSpreadsheet\\Calculation\\Calculation->calculateCellValue(Object(PhpOffice\\PhpSpreadsheet\\Cell\\Cell), true)
#4 \/var\/www\/vendor\/maatwebsite\/excel\/src\/Cell.php(61): PhpOffice\\PhpSpreadsheet\\Cell\\Cell->getCalculatedValue()
#5 \/var\/www\/vendor\/maatwebsite\/excel\/src\/Row.php(65): Maatwebsite\\Excel\\Cell->getValue(NULL, true, false)
#6 \/var\/www\/vendor\/maatwebsite\/excel\/src\/Sheet.php(283): Maatwebsite\\Excel\\Row->toArray(NULL, true, false)
#7 \/var\/www\/vendor\/maatwebsite\/excel\/src\/Sheet.php(245): Maatwebsite\\Excel\\Sheet->toArray(Object(Wata\\Upload\\Imports\\AlbumTracksImport), 2, NULL, true)
#8 \/var\/www\/vendor\/maatwebsite\/excel\/src\/Reader.php(111): Maatwebsite\\Excel\\Sheet->import(Object(Wata\\Upload\\Imports\\AlbumTracksImport), 2)
#9 \/var\/www\/vendor\/laravel\/framework\/src\/Illuminate\/Database\/Concerns\/ManagesTransactions.php(29): Maatwebsite\\Excel\\Reader->Maatwebsite\\Excel\\{closure}(Object(Illuminate\\Database\\MySqlConnection))
#10 \/var\/www\/vendor\/maatwebsite\/excel\/src\/Transactions\/DbTransactionHandler.php(30): Illuminate\\Database\\Connection->transaction(Object(Closure))
#11 \/var\/www\/vendor\/maatwebsite\/excel\/src\/Reader.php(115): Maatwebsite\\Excel\\Transactions\\DbTransactionHandler->__invoke(Object(Closure))
#12 \/var\/www\/vendor\/maatwebsite\/excel\/src\/Excel.php(146): Maatwebsite\\Excel\\Reader->read(Object(Wata\\Upload\\Imports\\AlbumBundleImport), '\/tmp\/reqfile_Jj...', 'Xlsx', NULL)
#13 \/var\/www\/vendor\/maatwebsite\/excel\/src\/Concerns\/Importable.php(37): Maatwebsite\\Excel\\Excel->import(Object(Wata\\Upload\\Imports\\AlbumBundleImport), '\/tmp\/reqfile_Jj...', NULL, 'Xlsx')
#14 \/var\/www\/app\/Wata\/Upload\/BundleService.php(60): Wata\\Upload\\Imports\\AlbumBundleImport->import('\/tmp\/reqfile_Jj...', NULL, 'Xlsx')
#15 \/var\/www\/app\/Http\/Controllers\/Upload\/BundleController.php(70): Wata\\Upload\\BundleService->buildBundleFromExcelFileRequest(Object(Wata\\Upload\\Requests\\ExcelFileRequest), 's3')
#16 [internal function]: App\\Http\\Controllers\\Upload\\BundleController->store(Object(Wata\\Upload\\Requests\\ExcelFileRequest))
#17 \/var\/www\/vendor\/laravel\/framework\/src\/Illuminate\/Routing\/Controller.php(54): call_user_func_array(Array, Array)
#18 \/var\/www\/vendor\/laravel\/framework\/src\/Illuminate\/Routing\/ControllerDispatcher.php(45): Illuminate\\Routing\\Controller->callAction('store', Array)
#19 \/var\/www\/vendor\/laravel\/framework\/src\/Illuminate\/Routing\/Route.php(212): Illuminate\\Routing\\ControllerDispatcher->dispatch(Object(Illuminate\\Routing\\Route), Object(App\\Http\\Controllers\\Upload\\BundleController), 'store')
#20 \/var\/www\/vendor\/laravel\/framework\/src\/Illuminate\/Routing\/Route.php(169): Illuminate\\Routing\\Route->runController()
#21 \/var\/www\/vendor\/laravel\/framework\/src\/Illuminate\/Routing\/Router.php(665): Illuminate\\Routing\\Route->run()
#22 \/var\/www\/vendor\/laravel\/framework\/src\/Illuminate\/Routing\/Pipeline.php(30): Illuminate\\Routing\\Router->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))
#23 \/var\/www\/vendor\/laravel\/framework\/src\/Illuminate\/Routing\/Middleware\/ThrottleRequests.php(57): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))
#24 \/var\/www\/vendor\/laravel\/framework\/src\/Illuminate\/Pipeline\/Pipeline.php(151): Illuminate\\Routing\\Middleware\\ThrottleRequests->handle(Object(Illuminate\\Http\\Request), Object(Closure), 1000, '1')
#25 \/var\/www\/vendor\/laravel\/framework\/src\/Illuminate\/Routing\/Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#26 \/var\/www\/vendor\/laravel\/framework\/src\/Illuminate\/Routing\/Middleware\/SubstituteBindings.php(41): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))
#27 \/var\/www\/vendor\/laravel\/framework\/src\/Illuminate\/Pipeline\/Pipeline.php(151): Illuminate\\Routing\\Middleware\\SubstituteBindings->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#28 \/var\/www\/vendor\/laravel\/framework\/src\/Illuminate\/Routing\/Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#29 \/var\/www\/vendor\/laravel\/framework\/src\/Illuminate\/Auth\/Middleware\/Authenticate.php(43): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))
#30 \/var\/www\/vendor\/laravel\/framework\/src\/Illuminate\/Pipeline\/Pipeline.php(151): Illuminate\\Auth\\Middleware\\Authenticate->handle(Object(Illuminate\\Http\\Request), Object(Closure), 'api')
#31 \/var\/www\/vendor\/laravel\/framework\/src\/Illuminate\/Routing\/Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#32 \/var\/www\/vendor\/laravel\/framework\/src\/Illuminate\/Foundation\/Http\/Middleware\/TransformsRequest.php(31): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))
#33 \/var\/www\/vendor\/laravel\/framework\/src\/Illuminate\/Pipeline\/Pipeline.php(151): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#34 \/var\/www\/vendor\/laravel\/framework\/src\/Illuminate\/Routing\/Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#35 \/var\/www\/vendor\/laravel\/framework\/src\/Illuminate\/Foundation\/Http\/Middleware\/TransformsRequest.php(31): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))
#36 \/var\/www\/vendor\/laravel\/framework\/src\/Illuminate\/Pipeline\/Pipeline.php(151): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#37 \/var\/www\/vendor\/laravel\/framework\/src\/Illuminate\/Routing\/Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#38 \/var\/www\/app\/Http\/Middleware\/Localisation.php(38): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))
#39 \/var\/www\/vendor\/laravel\/framework\/src\/Illuminate\/Pipeline\/Pipeline.php(151): App\\Http\\Middleware\\Localisation->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#40 \/var\/www\/vendor\/laravel\/framework\/src\/Illuminate\/Routing\/Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#41 \/var\/www\/app\/Http\/Middleware\/ConvertToApiResponse.php(20): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))
#42 \/var\/www\/vendor\/laravel\/framework\/src\/Illuminate\/Pipeline\/Pipeline.php(151): App\\Http\\Middleware\\ConvertToApiResponse->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#43 \/var\/www\/vendor\/laravel\/framework\/src\/Illuminate\/Routing\/Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#44 \/var\/www\/vendor\/laravel\/framework\/src\/Illuminate\/Pipeline\/Pipeline.php(104): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))
#45 \/var\/www\/vendor\/laravel\/framework\/src\/Illuminate\/Routing\/Router.php(667): Illuminate\\Pipeline\\Pipeline->then(Object(Closure))
#46 \/var\/www\/vendor\/laravel\/framework\/src\/Illuminate\/Routing\/Router.php(642): Illuminate\\Routing\\Router->runRouteWithinStack(Object(Illuminate\\Routing\\Route), Object(Illuminate\\Http\\Request))
#47 \/var\/www\/vendor\/laravel\/framework\/src\/Illuminate\/Routing\/Router.php(608): Illuminate\\Routing\\Router->runRoute(Object(Illuminate\\Http\\Request), Object(Illuminate\\Routing\\Route))
#48 \/var\/www\/vendor\/laravel\/framework\/src\/Illuminate\/Routing\/Router.php(597): Illuminate\\Routing\\Router->dispatchToRoute(Object(Illuminate\\Http\\Request))
#49 \/var\/www\/vendor\/laravel\/framework\/src\/Illuminate\/Foundation\/Http\/Kernel.php(176): Illuminate\\Routing\\Router->dispatch(Object(Illuminate\\Http\\Request))
#50 \/var\/www\/vendor\/laravel\/framework\/src\/Illuminate\/Routing\/Pipeline.php(30): Illuminate\\Foundation\\Http\\Kernel->Illuminate\\Foundation\\Http\\{closure}(Object(Illuminate\\Http\\Request))
#51 \/var\/www\/vendor\/fideloper\/proxy\/src\/TrustProxies.php(57): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))
#52 \/var\/www\/vendor\/laravel\/framework\/src\/Illuminate\/Pipeline\/Pipeline.php(151): Fideloper\\Proxy\\TrustProxies->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#53 \/var\/www\/vendor\/laravel\/framework\/src\/Illuminate\/Routing\/Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#54 \/var\/www\/vendor\/barryvdh\/laravel-cors\/src\/HandleCors.php(36): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))
#55 \/var\/www\/vendor\/laravel\/framework\/src\/Illuminate\/Pipeline\/Pipeline.php(151): Barryvdh\\Cors\\HandleCors->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#56 \/var\/www\/vendor\/laravel\/framework\/src\/Illuminate\/Routing\/Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#57 \/var\/www\/vendor\/laravel\/framework\/src\/Illuminate\/Foundation\/Http\/Middleware\/CheckForMaintenanceMode.php(62): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))
#58 \/var\/www\/vendor\/laravel\/framework\/src\/Illuminate\/Pipeline\/Pipeline.php(151): Illuminate\\Foundation\\Http\\Middleware\\CheckForMaintenanceMode->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#59 \/var\/www\/vendor\/laravel\/framework\/src\/Illuminate\/Routing\/Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#60 \/var\/www\/vendor\/laravel\/framework\/src\/Illuminate\/Pipeline\/Pipeline.php(104): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))
#61 \/var\/www\/vendor\/laravel\/framework\/src\/Illuminate\/Foundation\/Http\/Kernel.php(151): Illuminate\\Pipeline\\Pipeline->then(Object(Closure))
#62 \/var\/www\/vendor\/laravel\/framework\/src\/Illuminate\/Foundation\/Http\/Kernel.php(116): Illuminate\\Foundation\\Http\\Kernel->sendRequestThroughRouter(Object(Illuminate\\Http\\Request))
#63 \/var\/www\/public\/index.php(55): Illuminate\\Foundation\\Http\\Kernel->handle(Object(Illuminate\\Http\\Request))
#64 {main}"]
https://github.com/Maatwebsite/Laravel-Excel/issues/2392 ์ ๋ณต์ ๋ณธ์ฒ๋ผ
@patrickbrouwers ์ด ์์ธ๋ ๋ฐ์ํฉ๋๋ค. Call to a member function has() on null
ํ ์ํธ๊ฐ ์
์์์ ๋ํด ๋ค๋ฅธ ์ํธ๋ฅผ ์ฐธ์กฐ ํ ๋.
๋ฆด๋ฆฌ์ค ๋์ ์ต์ 3.1 ๋ธ๋์น๋ฅผ ํ์๋กํ์ง๋ง PR์์ด ํน์ ๋ฌธ์ ์ ์๋ฌด๋ฐ ์ฐจ์ด๊ฐ ์์ต๋๋ค.
์ฐ๊ฒฐ ๋๊ธฐ ํธ์ถ์ ์ ๊ฑฐํ๋ฉด ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋๋ค๋ OP๊ฐ ์ ํํฉ๋๋ค.
์ด๊ฒ์ด ์ ์ฌ์ ์ผ๋ก ๋ฌธ์ ๊ฐ ๋ ์ ์์ต๋๊น? DoesNotDisconnect ... ๊ทธ ๋ผ์ธ์ ๋ฐ๋ผ ๋ญ๊ฐ? ๊ทธ๋ฐ ๋ค์ ํน์ ์ํธ์ ์ฐ๊ฒฐ์ ๋์ง ์๋๋ก ๊ฒ์ฌ๋ฅผ ์ํ ํ ์ ์์ต๋๋ค. ๋น์ฐํ ์ด๊ฒ์ ๋ ํฐ ์คํ๋ ๋ ์ํธ์์ ๋ฉ๋ชจ๋ฆฌ ๋ฌธ์ ๋ฅผ ์ผ์ผํฌ ์ ์์ต๋๋ค.
๋ํ ReadChunk ์์ ์ ๋ณ๊ฒฝํด์ผํฉ๋๋ค.
@ plogic-aaron ์ด์ ์ ๋งํ๋ฏ์ด ์์ ์ฌํญ์ด ๋ณํฉ๋์์ผ๋ฉฐ ๋ค์ ๋ฆด๋ฆฌ์ค์ ํฌํจ๋ ์์ ์ ๋๋ค.
@patrickbrouwers ๊ฐ์ฌํฉ๋๋ค.ํ์ง๋ง ๋งํ๋ฏ์ด ์ต๊ทผ ์ปค๋ฐ์์ ์์ ์ฌํญ์ ํ์ธํ๊ณ ์ฌ์ ํ ๋์ผํ ๋ฌธ์ ๋ฅผ ํ์ธํ๋ ค๋ฉด 3.1 ๋ถ๊ธฐ๊ฐ ํ์ํ์ต๋๋ค. ๊ทธ๋์ ์ด๊ฒ์ด ๋ค๋ฅธ ๋ถ๊ธฐ์ ๋ณํฉ ๋์์ต๋๊น?
ํธ์ง : ์ํธ 2 (์ํธ 1 ์ฐธ์กฐ)๊ฐ ๋จผ์ ์ฒ๋ฆฌ๋๋๋ก ๊ฐ์ ธ ์ค๊ธฐ ์์๋ฅผ ๋ณ๊ฒฝํ๋ฉด ๋ฌธ์ ๋ ํด๊ฒฐ๋ฉ๋๋ค. ์ด๋ ๋ ๋ค ์ฒซ ๋ฒ์งธ ์ฐ๊ฒฐ ํด์ ํธ์ถ ์ ์๋ก๋๋๊ธฐ ๋๋ฌธ์ ๋๋ค.
๊ทธ๋ฌ๋ฉด ๋ค๋ฅธ ๋ฌธ์ ๊ฐ์์ ์ ์์ต๋๋ค. ์๋ง๋ ๊ทํ์ ๊ฒฝ์ฐ ์ฐธ์กฐ ๊ฐ์ด ํ์ผ์ ์บ์๋์ง ์์ต๋๋ค. ์ฐ๊ฒฐ ํด์ ์ฌ๋ถ๋ฅผ ๊ฒฐ์ ํ ์์๋ ์ค์ ์ด ์์ด๋ ๊ด์ฐฎ์ต๋๋ค. ์์ ๋กญ๊ฒ ํ๋ณดํ์ธ์
์๋ ํ์ธ์ @patrickbrouwers , @ eprop-aaron ๋ฐ @ archy-bold์ ๋์ผํ ๋ฌธ์ ๋ # 2392์ ๊ด๋ จ์ด ์์ผ๋ฉฐ 3.1.18 ๋ฆด๋ฆฌ์ค์ ์์ต๋๋ค. ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐ ํ์ต๋๊น?
์๋ฌด๋ ์์ง ํ๋ณดํ์ง ์์์ต๋๋ค.
๋ฏธ์ํฉ๋๋ค. ์ ๋์ด ๋ชจ๋ ๊ฒ์ ์ฒ์ ์ ํ์ง๋ง์ด ๋ฌธ์ ๋ฅผ ๊ณ ์น ์ปค๋ฐ์ด ์์๋ ๊ฒ ๊ฐ์ต๋๋ค. ๊ทธ๋์ ํ๋ ๋ง๋ค์ด ๋ณด์์ต๋๋ค. ์ฌ๊ธฐ ์์ต๋๋ค.
@jpagarcia ๊ทธ ์ปค๋ฐ์์ PR์ ์ด ์ ์์ต๋๋ค. ๊ฑฐ๊ธฐ์์ ๊ฒํ ํ๊ฒ ์ต๋๋ค.