Chrome 59๋ก ์
๊ทธ๋ ์ด๋ํ ํ react-dnd๊ฐ ๋ ์ด์ ์๋ํ์ง ์์ต๋๋ค. ์ฝ๊ฐ์ ์กฐ์ฌ ํ ๋ ๋ฒ์งธ ํญ๋ชฉ/์๊ฐ์ ๋๋๊ทธํ๋ ค๊ณ ํ ๋ ๋ฐ์-dnd ์คํด๋ก ์ด์ด์ง๋ Chrome์ด ๋ ์ด์ "dragend" ์ด๋ฒคํธ๋ฅผ ํธ๋ฆฌ๊ฑฐํ์ง ์๋ ๊ฒ ๊ฐ์ต๋๋ค.
๋๊ตฌ๋ ๊ฐ์ ๋ฌธ์ ๋ฅผ ๊ฒฝํํฉ๋๊น?
๊ทธ๋ ์ง ์์ต๋๋ค. ๊ทธ๊ฒ์ ์๋ฒฝํ๊ฒ ์ ์๋ํฉ๋๋ค. ํ์ฅ ํ๋ก๊ทธ๋จ ์์ด Chrome์ ์คํํด ๋ณด์ธ์.
@theTechie Windows์ Mac์์ ํ์ธํ์ จ์ต๋๊น? Mac์์๋ ์ ์์ ์ผ๋ก ์๋ํฉ๋๋ค.
๋๋ ๋งฅ์์ ํ์ธํ๋ค. ํน์ ํ๋ซํผ์ ๋ฌธ์ ์ธ๊ฐ์?
@theTechie ์ด๋ค ์ด์ ๋ก ๋ฐ์ dnd๋ ์ ์์ ์ผ๋ก 'dragend'๋ฅผ ํธ๋ฆฌ๊ฑฐํ์ง ์์ต๋๋ค. ๋ช ๋์ ์ปดํจํฐ์์ ํ ์คํธํ๋๋ฐ ํ Mac์๋ ๋์ผํ ๋ฌธ์ ๊ฐ ์๊ณ ๋ชจ๋ Windows์๋ ์ด ๋ฌธ์ ๊ฐ ์์ต๋๋ค. ์ด๋ค ์๊ฐ?
Chrome์ Windows 8.1/Windows 7๊ณผ IE 10 ๋ฐ IE 11์์ ์ฌ๋ฌ ํ๋ซํผ์์ ํ ์คํธํ์ต๋๋ค. ์ ์๋ํฉ๋๋ค.
@hunterbmt - ์ฝ์์ ์ค๋ฅ๊ฐ ํ์๋ฉ๋๊น? ์ํฉ์ ๋ง๋ GIF๋ฅผ ๊ณต์ ํ ์ ์์ต๋๊น?
@theTechie ๋ฐ์ dnd์ ์์ ์ฌ์ดํธ์์ ํ
์คํธํ์ง๋ง ๋ฌธ์ ๊ฐ ์์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ฐ๋ฆฌ ์ ํ๋ฆฌ์ผ์ด์
์์ Chrome 59๋ Chrome 58, FF, Safari ๋ฐ IE์์๋ ์๋ฒฝํ๊ฒ ์ ์์ ์ผ๋ก ์๋ํ๋ ์ผ๋ถ ์๋๋ฆฌ์ค์์ 'dragend'๋ฅผ ํธ๋ฆฌ๊ฑฐํ์ง ์์์ต๋๋ค.
๋ธ๋ผ์ฐ์ ๊ฐ ์ ์ ํ ํธ๋ฆฌ๊ฑฐํ์ง ์์ผ๋ฉด '๋๋กญ' ํ 'dragend'๋ฅผ ์๋์ผ๋ก ํธ๋ฆฌ๊ฑฐํ์ฌ ์์ ํ์ต๋๋ค.
๋ค๋ฅธ ์ฌ๋๋ค๋ ์ด ๋ฌธ์ ์ ์คํจํ๋์ง ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. ๊ทธ๋ ๋ค๋ฉด ์์ ์ฌํญ์ react-dnd๋ก ์ฎ๊ธธ ์ ์์ต๋๋ค.
Chrome 59์ ๋ณ๊ฒฝ ๋ก๊ทธ๋ฅผ ์ดํด๋ณด์์ง๋ง ์๋ฌด ๊ฒ๋ ์ฐพ์ง ๋ชปํ์ต๋๋ค. ํต์ฐฐ๋ ฅ์ด ์์ผ๋ฉด ์ ๋ ฅํด ์ฃผ์๋ฉด ๊ฐ์ฌํ๊ฒ ์ต๋๋ค.
@hunterbmt ๊ทํ์ ์ฝ๋์ ๊ณ ์ ํ ๊ฒ์ผ ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ฌ์ง์ด ์ฌ๋ฌ ์ธ์คํด์ค์์ react-dnd๋ฅผ ์ฌ์ฉํ๋๋ฐ ๋ชจ๋ Chrome 59์์ ์ ๋๋ก ์๋ํฉ๋๋ค.
๋ถํํ๋ ์ ์ด๋ฐ ์ผ์ด ๋ฐ์ํ๋์ง ๋งํ ์ ์์ต๋๋ค. ์ด์ฉ๋ฉด ์ฌ๊ธฐ์์ ์ฝ๋๋ฅผ ๊ณต์ ํด๋ ๊ด์ฐฎ๋ค๋ฉด ๋ฌด์ธ๊ฐ๋ฅผ ์ฐพ์ผ๋ ค๊ณ ๋ ธ๋ ฅํ ์ ์์ต๋๋ค.
Windows์ Chrome 59.0.3071.86์์๋ ๋์ผํ ๋ฌธ์ ๊ฐ ์์ต๋๋ค. Firefox์์๋ ์ ๋๋ก ์๋ํ๊ณ ์ด์ Chrome ๋ฒ์ ์์๋ ์ ๋๋ก ์๋ํ์ต๋๋ค. ํจํค์ง.json:
{
"dependencies": {
"react-dnd": "2.1.4",
"react-dnd-html5-backend": "2.1.2",
}
}
๊ฒฐ๊ณผ๋ 2.4.0/2.4.1๊ณผ ๋์ผํฉ๋๋ค.
์ด ํดํน์ผ๋ก ํด๊ฒฐ๋จ:
const ModifiedBackend = (...args) => {
const instance = new HTML5Backend(...args);
// Fix Chrome 59 not sending a DragEnd after Drop, which other browsers do and react-dnd expects
const originalTopDrop = instance.handleTopDrop;
const originalTopDragEndCapture = instance.handleTopDragEndCapture;
let dragEndTimeout;
instance.handleTopDrop = (e, ...args) => {
dragEndTimeout = setTimeout(() => {
originalTopDragEndCapture(e, ...args);
}, 0);
originalTopDrop(e, ...args);
};
instance.handleTopDragEndCapture = (e, ...args) => {
clearTimeout(dragEndTimeout);
originalTopDragEndCapture(e, ...args);
};
return instance;
};
// Decorate root elements with this
export default DragDropContext(ModifiedBackend);
@awestroke ๋๋ ๊ฝค ๋น์ทํ ํดํน์ผ๋ก ๋๋์ง๋ง ๋์ ์ ์๋ ์์ญ์์ ๋น ๋ฅด๊ฒ ๋๋๊ทธ ์ค ๋๋กญํ ๋ ๋ฌธ์ ๊ฐ ๊ณ์ ๋ฐ์ํฉ๋๋ค. Chrome์ 'dragend'๋ฅผ ํธ๋ฆฌ๊ฑฐํ์ง ์์ผ๋ฉฐ ๋ฌผ๋ก 'drop'๋ ํธ๋ฆฌ๊ฑฐํ์ง ์์ต๋๋ค. ์์์ ํ์ธํด ์ฃผ์๊ฒ ์ต๋๊น?
@hunterbmt ๋จ์ด๋จ๋ฆด ์ ์๋ ์ง์ญ์ ๋จ์ด๋จ๋ฆฌ๋ ๋ฐ ๋ฌธ์ ๊ฐ ์์ต๋๋ค. ์ด๋ค ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ๋์ง ํ์ธํ์ง ์์์ง๋ง react-dnd๊ฐ ์์๋ ์ํ๋ก ๋ค์ด๊ฐ์ง ์์ ๋ชจ๋ ๊ฒ์ด ์ ์๋ํ๋ ๊ฒ ๊ฐ์ต๋๋ค.
endDrag๋ฅผ ํธ๋ฆฌ๊ฑฐํ๋ ์กฐ๊ฑด์ ๋จ์ํํ์ฌ ์ด ๋ฌธ์ ์ ์ ์ฌ์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด PR์ ๋ง๋ค์์ต๋๋ค.
https://github.com/react-dnd/react-dnd/pull/801
๋งค๋ฒ์ ์๋์ง๋ง ์ด๋ค ๊ฒฝ์ฐ์๋ ๊ฐ์ ๋ฌธ์ ๊ฐ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ๊ทธ ๊ฒฝ์ฐ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
๋๋กญ ์์ญ ์์ ๋์ ์ ์๋ ์์ ฏ์ด ์์ผ๋ฉฐ ์์ ฏ์ ๋์ ๋ ํด๋น ๋๋กญ ์์ญ์ด ์ผ๋ถ html์ ๋ ๋๋งํฉ๋๋ค. ๋น๋์ค ์์ ฏ์ ๋๊ธฐ๋ก ์ ํํ๋ฉด iframe
๊ฐ ๋ ๋๋ง๋๊ณ ๊นจ์ง๊ณ ๊ทธ ํ์ ๋ค๋ฅธ ์์ ฏ์ ๋ ์ ์์ต๋๋ค( dragend
์ด๋ฒคํธ๊ฐ ๋ฐ์ํ์ง ์์). ๊ทธ๋ฌ๋ iframe
๋ฅผ ์ผ๋ถ ํ
์คํธ ๋๋ ์ด๋ฏธ์ง๋ก ๋ฐ๊พธ๋ฉด ์๋ฒฝํ๊ฒ ์๋ํ๋ฉฐ Chrome 59 ์ด์ ์๋ ์๋ํ๊ณ ๋ค๋ฅธ ๋ธ๋ผ์ฐ์ ์์๋ ์๋ํ์ง๋ง ์์๋ผ ์ ์์ต๋๋ค. Chrome ๋๋ react-dnd?
@rogyvoje Chrome์ด 'dragend'์ ๋ํ ์ด๋ฒคํธ ํธ๋ฆฌ๊ฑฐ์์ ๋ฌด์ธ๊ฐ๋ฅผ ๋ณ๊ฒฝํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ๋ ๋ง์ ์ ๋ณด๋ฅผ ๊ฒ์ํ๋ ค๊ณ ํ์ง๋ง ์ด๋์๋ ์ธ๊ธํ์ง ์์ต๋๋ค.
Btw, 'dragstart' ์ดํ์ 'mousemove'์ ๋ฐ๋ผ ๋๋ถ๋ถ์ ๊ฒฝ์ฐ 'dragend'์ ์์กดํ๊ณ ์ด๋ค ๊ฒฝ์ฐ์๋ 'mousemove'(DOM์์ ์์๋ฅผ ๋๋๊ทธ)์ ์์กดํ๋ ๊ฒ์ด ๋ด PR๋ก ๋ ํฉ๋ฆฌ์ ์ด๊ณ ๊ฐ๋จํฉ๋๋ค.
@hunterbmt ์ดํดํด์ฃผ์
์ ๊ฐ์ฌํฉ๋๋ค ๐
ํ์ง๋ง npm/yarn์ ํตํด pull ์์ฒญ์ ์ด๋ป๊ฒ ์ฌ์ฉํ ์ ์์ต๋๊น? ๋ณํฉ๋์ง ์์ ๊ฒ ๊ฐ์์, ์๋๋ฉด ๋ด๊ฐ ์๋ชป? ๐
@rogyvoje ๋ฒ์ ๋์ ๋ด ์ง์ ์ ์ง์ ๊ฐ๋ฆฌํฌ ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. PR์ ๋ณํฉ๋์์ง๋ง react-dnd๋ ์์ง ์ ๋ฒ์ ์ด ์ถ์๋์ง ์์์ผ๋ฏ๋ก react-dnd npm/yarn์์ ์ง์ ๊ฐ์ ธ์ฌ ์ ์์ต๋๋ค.
@hunterbmt
๋๋ ์ด๊ฒ์ ๋ค์๊ณผ ๊ฐ์ด ์๋ํ๋ค.
npm install git+https://github.com/react-dnd/react-dnd.git#41eb8caa0bc106c9edf0d3ca628b49e70525090b
ํ์ง๋ง ๋ก๊ทธ์ธ ํ๋ฉด์ ํญ์ ํ์ ๋ฉ๋๋ค ๐
์ด ์ค๋ ๋์ ๋๊ตฐ๊ฐ๊ฐ ๋ฌธ์ ์ ์ฌํ ๊ฐ๋ฅํ ์ฌ๋ก๋ฅผ ์ ๊ณตํ ์ ์์ต๋๊น? ๋๋ react-dnd
๋ฅผ ๋ง์ด ์ฌ์ฉํ๊ณ ์์ง๋ง Chrome 59์์ ์ด๋ค ๋ฌธ์ ๋ ์๋ณํ ์ ์์ผ๋ฏ๋ก Chrome 59๊ฐ drag/drop
ํ์ง ์๊ธฐ ๋๋ฌธ์ react-dnd
๊ฐ ์คํจํ๋ ์ฌํ ๊ฐ๋ฅํ ์ฌ๋ก์ ๋งค์ฐ ๊ด์ฌ์ด ์์ต๋๋ค drag/drop
์ด๋ฒคํธ๊ฐ ์ฌ๋ฐ๋ฅด๊ฒ ํ์๋ฉ๋๋ค.
๋ฌธ์ ๊ฐ ์๋ ๊ฒฝ์ฐ ์ฒ์์ ๋ฌธ์ ๋ฅผ ๋ณธ ์ผ๋ถ ์ฌ์ฉ์๊ฐ ๋งค์ฐ ์ฝ๊ฒ ์ฌํํ ์ ์์ด์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ๋ฐ๋ผ์ ์๊ฐ์ ๋ด์ด ์ฌํ ๊ฐ๋ฅํ ์ฌ๋ก๋ฅผ ๊ฒ์ํด ๋ณด์ธ์(github repo ๋๋ ์ฌ๊ธฐ์ ๊ฒ์๋ ์ฝ๋๊ฐ ๋ ์ ์์). https://codesandbox.io/) ๋ฐ ์๋ฏธ ์๋ ์ ๋ณด(์: OS, react-dnd ๋ฒ์ ๋ฑ)๋ฅผ ์ ๊ณตํ๋ ค๊ณ ํฉ๋๋ค. ๊ณ ๋ง์!
@bjrmatos ์ฌ๊ธฐ, ๋ด๊ฐ ํ๋ ๋ง๋ค์์ต๋๋ค. ์ด๊ฒ์ ๋ด ๊ฒฝ์ฐ์ด๋ฉฐ ๋์์ด ๋๊ธฐ๋ฅผ ๋ฐ๋๋๋ค!
https://github.com/rogyvoje/react-dnd-chrome-59
ํฌ๋กฌ 59 ๋ฐ ํ์ฌ ์
๋ฐ์ดํธ์์ ํ
์คํธํ์ต๋๋ค.
๋ฒ์ 60.0.3112.78(๊ณต์ ๋น๋)(64๋นํธ)
Windows ์ ๋ณด:
OS ์ด๋ฆ: ๋ง์ดํฌ๋ก์ํํธ ์๋์ฐ 10 ํ๋ก
OS ๋ฒ์ : 10.0.14393 ํด๋น ์์ ๋น๋ 14393
Chrome: ๋ฒ์ 55.0.2883.87(64๋นํธ)(Linux/Mint 18)์์ ํ ์คํธ๋์์ผ๋ฉฐ ์๋ฒฝํ๊ฒ ์๋ํฉ๋๋ค...
@rogyvoje ๊ฐ์ฌํฉ๋๋ค! ๋์ค์ ์ดํด๋ณด๊ฒ ์ต๋๋ค. ๋ด Windows 7 VM์์ ๋ฌธ์ ๋ฅผ ๋ณผ ์ ์๋์ง ํ์ธํ๊ฒ ์ต๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด Windows 10์์ ๋ค๋ฅธ VM์ ์ฌ์ฉํด ๋ณด๊ฒ ์ต๋๋ค. ๊ฐ์ฌํฉ๋๋ค!
์๋ @rogyvoje ๋๋ ๋น์ ์ด ๊ฑฐ๊ธฐ์ ๊ฐ์ ๋ฌธ์ ๊ฐ ์๋ค๊ณ ๋งํ๋ฏ์ด ์ต์ ํฌ๋กฌ ๋ฆด๋ฆฌ์ค์์ ์ง์ ์ ์ฅ์๋ฅผ ์๋ํ์ต๋๋ค(๋ฒ์ 60.0.3112.78(๊ณต์ ๋น๋)(64๋นํธ)-Windows 10 PRO). ๊ทธ๋ฌ๋ ๋๋ ๋ณด์ด์ง ์์ต๋๋ค ๋ชจ๋ ์ค๋ฅ.
์์ํ ๊ฒฐ๊ณผ์ฃ ?
๋ฌธ์ ๋ฅผ ์ฌํํ๊ธฐ ์ํ ๋ค๋ฅธ ๋จ๊ณ๊ฐ ์์ต๋๊น/๋ ์์ต๋๊น?
[email protected]
( yarn
๋ฅผ ์ฌ์ฉํ๋ ๋์ )๋ฅผ ์ฌ์ฉํ์ฌ ์ข
์์ฑ์ ์ค์นํ์ผ๋ฉฐ ์ฌ๊ธฐ์ ๊ธฐ๋ก์ ์ํด ์ค์น๋ ์ข
์์ฑ์ ์ ํํ ๋ฒ์ ์ด ์์ต๋๋ค.
์ฐธ๊ณ : ์ ๋ Windows 10 PRO VM์ ์ฌ์ฉํ๊ณ ์์ต๋๋ค(๋ด ์ฃผ์ OS๋ ํฌ๋กฌ ๋ฌธ์ ๊ฐ ์๋ OSX El Capitan์ด๊ธฐ ๋๋ฌธ์)
๋ด ๋ชจ๋ ํฌ๋กฌ ํ์ฅ ํ๋ก๊ทธ๋จ์ด ๋นํ์ฑํ๋ ๋์ผํ ๊ฒฐ๊ณผ:
@rogyvoje ๋ฐฉ๊ธ ๊ทํ์ ๊ณผ๊ฑฐ ์๊ฒฌ์ ์ฝ์์ผ๋ฉฐ ์ด์ ์ฒซ ๋ฒ์งธ ๋๋๊ทธ๊ฐ ์๋ํ๋ค๊ณ ๋งํ๋ฏ์ด ๋ฌธ์ ๋ฅผ ์ฌํํ ์ ์์ง๋ง ๋๊ตฐ๊ฐ๊ฐ ๋ ๋ฒ์งธ ๋๋๊ทธ๋ฅผ ์๋ํ๋ฉด Cannot call hover after drop
์ค๋ฅ๊ฐ ๋ํ๋ฉ๋๋ค.
๋ฆฌํฌ์งํ ๋ฆฌ์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค. ๋ฌธ์ ๋ฅผ ์์ธํ ์ดํด๋ณด๊ณ ๋ชจ๋๋ฅผ ํ๋ณตํ๊ฒ ๋ง๋๋ ์๋ฃจ์ ์ ์ฐพ๋๋ก ๋ ธ๋ ฅํ๊ฒ ์ต๋๋ค.
๊ธฐ๋ก์ ์ํด Chrome(60) Mac OS(El Capitan)์์๋ ๋์ผํ ์์ ๋ก ์ค๋ฅ๋ฅผ ์ฌํํ ์ ์์ผ๋ฏ๋ก(Mac์ฉ Chrome 59์๋ ์๋์ง ํ์คํ์ง ์์) Chrome์ ์ฌ์ฉํ ๋ ๋ชจ๋ ๊ณณ์์ ์คํจํฉ๋๋ค(> =59) iframe์ ์ฌ์ฉํ ๋ ๐
@bjrmatos ํ๋ฅญํฉ๋๋ค. ์ฑ๊ณต์ ์ผ๋ก ์ฌํํด ์ฃผ์
์ ๊ธฐ์ฉ๋๋ค ๐
๋ค์์ ๋ฌด์จ ์ผ์ด ์ผ์ด๋ ์ง ์ ๋ชจ๋ฅด๊ฒ ์ง๋ง Chrome 61์ ๊ธฐ๋ค๋ ค์ผ ํ๋์? ๐
๋ค์์ ๋ฌด์จ ์ผ์ด ์ผ์ด๋ ์ง ์ ๋ชจ๋ฅด๊ฒ ์ง๋ง Chrome 61์ ๊ธฐ๋ค๋ ค์ผ ํ๋์?
์๋ง๋ ์ด์จ๋ Chrome 59, 60์์ react-dnd๊ฐ ์๋ํ๋๋ก ํ๋ ๋ฉ์ง ํจ์น๋ฅผ ์ฐพ์ผ๋ ค๊ณ ๋ ธ๋ ฅํ๊ณ ์์ผ๋ฏ๋ก ๋์ค์ ์ฌ๊ธฐ์ ๋ ๋ง์ ์ ๋ฐ์ดํธ๋ฅผ ๊ฒ์ํ๊ฒ ์ต๋๋ค ๐
์ด๊ฒ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ค๊ณ ์๊ฐํฉ๋๋ค. https://github.com/react-dnd/react-dnd/pull/820
์ด๋ฏธ ๋ณํฉ๋์์ง๋ง ๋ฆด๋ฆฌ์ค๋์ง ์์์ต๋๋ค.
์ด ๋ฌธ์ ์ ๋ํ ์์์ด ์์ต๋๊น?
์ต์ ํฌ๋กฌ์์ ๊ณ์ ๋ฌธ์ ๊ฐ ๋ฐ์ํฉ๋๋ค...
@ms88privat #820์ ์์ธ๋ฅผ ํด๊ฒฐํ์ง๋ง Chrome(67์ ์ฌ์ฉํ๊ณ ์์)์์ iframe์ด ๋ ๋๋ง๋ ๋ source.endDrag
๊ฐ ํธ์ถ๋์ง ์๋ ์ด๊ธฐ ๋ฌธ์ ๋ ํด๊ฒฐํ์ง ๋ชปํ์ต๋๋ค.
3.0 ์ด์ ์๋ @0rvar ์์ ์ ๊ณตํ๋ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ์ง๋ง ๋ ์๊ฒฉํ TS ์ ํ์ ์ฌ์ฉํ๋ฉด ์ธ์คํด์ค ๋ฉ์๋๋ ๊ฐ์ธ ํด๋์ค ๋ฉ์๋๋ฅผ ์ฌ์ ์ํ ์ ์์ต๋๋ค.
@rogyvoje์ ํ
์คํธ ๋ฆฌํฌ์งํ ๋ฆฌ์์ Video.js
์ endDrag๋ฅผ ์ถ๊ฐํ์ฌ ์ฌํํ ์ ์์ต๋๋ค.
const source = {
beginDrag(props) {
return {
renderVideo: true
};
},
// Add end drag
endDrag(props, monitor) {
if (!monitor) return;
// Only gets called when the iframe is already rendered
console.log("endDrag");
}
};
์ฒ์ ๋๋๊ทธํ๋ฉด Chrome์์ endDrag
๊ฐ ํธ์ถ๋์ง ์์ต๋๋ค.
chrome ๋ด๋ถ ํ์ด์ง์ iframe์ ํฌํจํ ๋๋ ๋ฉ์ถฅ๋๋ค(ํ์ฌ๊น์ง 59) @0rvar ์ ์์ ์ฌํญ์ ์ด ๊ฒฝ์ฐ์๋ ์๋ํฉ๋๋ค.
์ด๊ฒ์ ์ด์ ์ถ์๋ ํฌ๋กฌ 72์์ ์์ ๋์์ต๋๋ค.
์ด ๋ฌธ์ ๋ ์ต๊ทผ ํ๋์ด ์์๊ธฐ ๋๋ฌธ์ ์๋์ผ๋ก ์ค๋๋ ๊ฒ์ผ๋ก ํ์๋์์ต๋๋ค. ๋ ์ด์ ํ๋์ด ์์ผ๋ฉด ํ์๋ฉ๋๋ค. ๊ทํ์ ๊ธฐ์ฌ์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
์ด ํดํน์ผ๋ก ํด๊ฒฐ๋จ: