์ต๊ทผ ํ๋ก์ ํธ๋ฅผ ์งํํ๋ฉด์ ํด๋ผ์ด์ธํธ ์ฌ์ด๋ ๋ ๋๋ง(CSR)๊ณผ ์๋ฒ ์ฌ์ด๋ ๋ ๋๋ง(SSR)์ ๋ํด ๊ณ ๋ฏผํ๊ณ ํ์ตํ๋ ๊ณผ์ ์ ์์ฑํ๋ ค ํฉ๋๋ค.
ํญ์ ๋ฆฌ์กํธ๋ ๋ทฐ๋ก๋ง js๋ฅผ ์ฌ์ฉํด๋ดค์ง, ํ ํ๋ฆฟ ์์ง์ ์ฌ์ฉํ ๋ฐ๋๋ผ js๋ก์ ์น ํ์ด์ง ๊ตฌํ์ ์ฒ์์ด๋ผ ๋ง์ด ๋ฏ์ค๊ธฐ๋ ํ๊ณ , ์ด๋ ต๊ธฐ๋ ํ ๊ฒ ๊ฐ์ต๋๋ค.
๋จผ์ ์ฒ์์๋ CSR๊ณผ SSR์ ์ฐจ์ด๋ฅผ โํ์ด์ง๊ฐ ๊น๋ฐ์ด๋์งโ ์ฌ๋ถ๋ก ๋จ์ํ๊ฒ ์๊ฐํ์์ต๋๋ค.
ํ์ง๋ง ์ค์ ๋ก๋ ํจ์ฌ ๋ ๊น๊ณ ๋ณต์กํ ๊ฐ๋ ๋ค์ด ์กด์ฌํ๋ค๋ ๊ฒ์ ์๊ฒ ๋์์ต๋๋ค.
๊ทธ๋์ ์ด๋ฒ ๊ธ์์๋ ์ ๊ฐ ์ง์ ์์ฑํ ์ฝ๋์์ ๊ณ ๋ฏผํ๋ ๋ถ๋ถ์ CSR๊ณผ SSR์ ์ฐจ์ด์ ์ ์ค์ฌ์ผ๋ก ์ ๋ฆฌํด๋ณด์์ต๋๋ค.
(์ด๋ฐ ์์ผ๋ก ๊ธ์ ์จ๋ณธ ์ ์ด ์์๋๋ฐ, ์์ผ๋ก๋ ์ ๊ฐ ํ๋ ๊ณ ๋ฏผ๋ค์ ์ด๋ ๊ฒ ๋งค๊ฑฐ์ง ํ์(?)์ผ๋ก ํฌ์คํ ํด๋ณด๋ ค๊ณ ํฉ๋๋ค.ใ ใ )
์ด๋ฒ์ ๊น๊ฒ ๊ณ ๋ฏผํด๋ณด๊ธฐ ์ ๊น์ง๋ง ํด๋ CSR๊ณผ SSR์ ๋ํด ์์ฃผ ๊ฐ๋จํ๊ฒ ์ดํดํ๊ณ ์์์ต๋๋ค.
(์ฌ์ค ๋ฒจ๋ก๊ทธ์ CSR๊ณผ SSR์ ๋ํด์๋ ์ ๋ฆฌํด๋ ์ ์ด ์์๊ณ , ๊ณต๋ถํด๋ณธ ์ ์ด ์์๊ธฐ์ ๋ค ์๊ณ ์๋ค๊ณ ์๊ฐํ์ต๋๋คโฆ)
๋ฌผ๋ก ๋ ๋๋ง์ ํด์ฃผ๋ ์ฃผ์ฒด๊ฐ ํด๋ผ์ด์ธํธ/์๋ฒ๋ก ๊ฐ๊ฐ ๋ค๋ฅด๋ค๋ ๊ฒ์ ์๊ณ ์์์ง๋ง, ๊ฐ์ฅ ํฐ ํน์ง์ด ์๊ธฐ์ ์๋์ ๊ฐ์ด ์๊ฐํ๊ณ ์์์ต๋๋ค.
์ด๋ ๊ฒ ์๋ก๊ณ ์นจ(๊น๋ฐ์) ์ ๋ฌด๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ ๋๋ง ๋ฐฉ์์ ํ๋จํ์์ต๋๋ค.
์๋ฅผ ๋ค์ด, ์ฌ์ฉ์๊ฐ ์น์ฌ์ดํธ์์ ์นด๋๋ฅผ ์ถ๊ฐํ๊ฑฐ๋ ์ญ์ ํ ๋ ํ์ด์ง๊ฐ ๊น๋ฐ์ด๋ฉด "์, ์ด๊ฑด SSR์ด๊ตฌ๋"๋ผ๊ณ ๋จ์ํ ํ๋จํ์ต๋๋ค.
์ ๊ฐ ๊ตฌํํ ์นด๋๋ฅผ ์ถ๊ฐํ๋ ๊ธฐ๋ฅ์ ์๋ก ๋ค์ด๋ณด๊ฒ ์ต๋๋ค.
์๋๋ ํด๋ผ์ด์ธํธ์์ ์นด๋๋ฅผ ์ถ๊ฐํ๋ ๋ฒํผ์ ํด๋ฆญ ํ์ ๋์ ์ฝ๋์ ๋๋ค.
const addButtons = document.querySelectorAll('.add-todo');
addButtons.forEach(button => {
const columnId = button.getAttribute('data-column-id');
const cardContainer = button.closest('.column').querySelector('.column-card-container');
button.addEventListener('click', function() {
loadAppendCardTemplate(cardContainer, columnId);
});
});
์ด ์ฝ๋๋ .add-todo
ํด๋์ค๋ฅผ ๊ฐ์ง ๋ชจ๋ ๋ฒํผ์ ํด๋ฆญ ์ด๋ฒคํธ๋ฅผ ์ถ๊ฐํฉ๋๋ค.
๊ฐ ๋ฒํผ์ ํด๋ฆญํ ๋๋ง๋ค loadAppendCardTemplate
ํจ์๋ฅผ ํธ์ถํ์ฌ ์๋ก์ด ์นด๋ ํ
ํ๋ฆฟ(mustache ์ฌ์ฉ)์ ๋ถ๋ฌ์ ํด๋น ์์น์ ์ถ๊ฐํฉ๋๋ค.
๋ง์ฝ ์๋ก์ด ์นด๋ ํ
ํ๋ฆฟ
์์ ์นด๋ ์ถ๊ฐ๋ฅผ ์๋ฃํ๋ ๋ฒํผ
์ ๋๋ฅด๋ฉด, ์นด๋๋ฅผ ์๋ฒ์ ์ถ๊ฐํ๋ API๋ฅผ ํธ์ถํ๊ณ ,
์ถ๊ฐ๊ฐ ์๋ฃ๋๋ฉด ํด๋ผ์ด์ธํธ๋ ํ์ด์ง๋ฅผ ์๋ก๊ณ ์นจํ๋ ๋ฐฉ์์ผ๋ก ๊ตฌํํ์ต๋๋ค.
(๋ง์ฝ ์๋ก๊ณ ์นจ์ ํ์ง ์์ผ๋ฉด, api ํธ์ถ์ ํตํด db์ ์ถ๊ฐ๋ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค์ง ์๊ธฐ์ ์๋ก๊ณ ์นจ ํ๋ ์์ ์ ์ถ๊ฐํด์ฃผ์์ต๋๋ค.)
// ์นด๋๋ฅผ ์ถ๊ฐํ๋ API ํธ์ถ
fetch('/api/addCard', {
method: 'POST',
body: JSON.stringify(cardData),
headers: {
'Content-Type': 'application/json'
}
})
.then(response => response.json())
.then(data => {
if (data.success) {
location.reload(); // ํ์ด์ง ์๋ก๊ณ ์นจ
}
})
.catch(error => console.error('Error:', error));
๊ทธ๋์ ์ด ์ฝ๋์์ ์นด๋๊ฐ ์ฑ๊ณต์ ์ผ๋ก ์ถ๊ฐ๋๋ฉด location.reload()
๋ก ํ์ด์ง๋ฅผ ์๋ก๊ณ ์นจํ์ฌ ์ ์ฒด UI๋ฅผ ์
๋ฐ์ดํธํด์ค๋๋ค.
์๋ก๊ณ ์นจ์ด ๋ฐ์ํ๋ฉด์ ํ์ด์ง๊ฐ ๊น๋ฐ์๊ธฐ ๋๋ฌธ์ ๊ฐ์ฅ ์ฒ์์๋, ์ ๋ ์ด ๋ฐฉ์์ด SSR์ด๋ผ๊ณ ์๊ฐํ์ต๋๋ค.
์๋ก๊ณ ์นจ์ ํ์ง ์์ผ๋ฉด ๋ฐ์ดํฐ๊ฐ ๋ฐ์๋์ง ์๊ธฐ ๋๋ฌธ์, ๊ทธ๋ฌ๋๊น ์๋ก๊ณ ์นจ์ ๊ผญ ํด์ค์ผ ํ๊ธฐ ๋๋ฌธ์ SSR์ด๋ผ๊ณ ํ๋จํ๋ ๊ฒ์ ๋๋ค.
ํ์ง๋ง SSR์ ๋ํด ๋ ๊น์ด ๊ณต๋ถํ๋ฉด์ ์ ๊ฐ ์๋ชป ์ดํดํ๊ณ ์์๋ค๋ ๊ฒ์ ์๊ฒ ๋์์ต๋๋ค.
SSR์ ์๋ฒ์์ ์์ ํ ๋ ๋๋ง๋ HTML์ ์์ฑํ์ฌ ํด๋ผ์ด์ธํธ๋ก ๋ณด๋ด๋ ๋ฐฉ์์ ์๋ฏธํฉ๋๋ค.
์ด๊ฒ ๊ธฐ๋ณธ ์ ์์ธ๋ฐ, ์ ๋ โํ์ด์ง ๊น๋ฐ๊ฑฐ๋ฆผโ์๋ง ์ง์คํ์ฌ ๋ณธ์ง์ ์ธ ์ ์๋ฅผ ์๊ณ ์์๋ ๊ฒ์ด์์ต๋๋ค.
๊ฒฐ๊ตญ SSR์, ์๋ฒ์์ ์ด๋ฏธ ๋ชจ๋ HTML์ ๊ตฌ์ฑํ ํ, ๊ทธ ์์ฑ๋ HTML์ ํด๋ผ์ด์ธํธ๋ก ์ ์กํ๋ ๊ฒ์ ๋๋ค.
ํด๋ผ์ด์ธํธ์์๋ ์๋ฒ์์ ๋ฐ์ HTML์ ์ด๋ ํ ์์ ๋ ์์ด ๊ทธ๋๋ก ๋ธ๋ผ์ฐ์ ์ ๋ ๋๋งํด์ผ SSR์ ๋๋ค.
๊ทธ๋์ ๊ฒฐ๋ก ์ ์ผ๋ก ์ ๊ฐ ์ง ์ฝ๋๋ SSR์ ์๋๊ฒ ๋ค๋ ํ๋จ์ ํ๊ฒ ๋์์ต๋๋ค.
์์์ SSR์ ์๋๊ฒ ๋ค๋ ํ๋จ์ ํ ๋ค, ๊ทธ๋ผ CSR์ธ๊ฐ? ํ๋ ์๋ฌธ์ ๊ฐ๊ฒ ๋์์ต๋๋ค.
์ ์ฝ๋์์ ์ฌ์ฉํ ๋ฐฉ์์ ๊ฐ์ฅ ๋จผ์ ํด๋ผ์ด์ธํธ์์ main.html
์ ๋ก๋ํ๊ณ ,
์ ์ ์ ์์ ์ ๋ฐ๋ผ Mustache ํ์ผ์ ํด๋ผ์ด์ธํธ์์ ์ง์ ๋ ๋๋งํ๋ ๋ฐฉ์์ด์์ต๋๋ค.
์นด๋ ์ถ๊ฐ ๋ฒํผ
์ ๋๋ฅด๋ฉด ์นด๋ ์ถ๊ฐ ํ
ํ๋ฆฟ์ ๋ ๋๋งํ๊ณ , ์ถ๊ฐ ํ์ธ ๋ฒํผ
์ ๋๋ฅด๋ฉด ์๋ฒ๋ก POST ์์ฒญ์ ๋ณด๋ธ ํ ์ฑ๊ณต ์ ๋ฐ์ดํฐ๋ฅผ ์ค์๊ฐ์ผ๋ก ๋ฐ์ํ๊ธฐ ์ํด location.reload()๋ฅผ ํตํด ํ์ด์ง๋ฅผ ์๋ก๊ณ ์นจํ์ต๋๋ค.
๋ฌผ๋ก ์นด๋ ์ถ๊ฐ ํ์ธ ๋ฒํผ์ ๋๋ ์ ๋ (api๋ฅผ ํธ์ถํด์ ๋ฐ์ดํฐ๊ฐ ํ๋ฉด์์ ๋ณ๊ฒฝ๋์ด์ผ ํ ๋)๋ ์๋ก๊ณ ์นจ์ ํ์ง๋ง, ๋ฐ์ดํฐ ๋ณ๊ฒฝ ์์ด ํ๋ฉด๋ง ๋ณ๊ฒฝํด๋ ๋๋ ๊ฒฝ์ฐ์๋ ์๋์ ๊ฐ์ด .innerHTML์ ํตํด ํ๋ฉด์ mustache ํ์ผ์ ๋ด์ฉ์ ์ถ๊ฐํด์ค๋๋ค.
์ด ๊ณผ์ ์์ ํด๋ผ์ด์ธํธ๋ ์๋ฒ๋ก๋ถํฐ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์์ค๊ณ ํ์ด์ง ์ผ๋ถ๋ฅผ ๋์ ์ผ๋ก ๋ณ๊ฒฝํด์ค๋๋ค.
function fetchColumnsAndRender() {
fetch('/api/columns')
.then(response => response.json())
.then(data => {
fetch('../components/column.mustache')
.then(response => response.text())
.then(template => {
const renderedColumns = data.columns.map(column => {
return Mustache.render(template, column);
}).join('');
const contentSection = document.querySelector('.content');
// innerHTML += ์ ํตํด ํ๋ฉด์ ์ถ๊ฐ
contentSection.innerHTML = renderedColumns;
})
.then(data => {
loadDeleteModal();
})
.then(data => {
registerCardEventListeners();
registerMoveCardEventListeners();
})
.catch(error => console.error('Error loading template:', error));
})
.catch(error => console.error('Error loading columns from API:', error));
}
์ฆ, HTML์ ์ผ๋ถ๋ฅผ ํด๋ผ์ด์ธํธ ์ธก์์ JavaScript๋ฅผ ํตํด ๋ณ๊ฒฝํ๋ ๊ฒ์ ๋๋ค.
๊ทธ๋์ ์ด ๋ฐฉ์์ CSR์ ๊ฐ๊น๋ค๋ ๊ฒฐ๋ก ์ ๋ด๋ ธ์ต๋๋ค.
(CSR : ํด๋ผ์ด์ธํธ ์ธก์์ JavaScript๋ฅผ ์ฌ์ฉํ์ฌ ํ์ํ ๋ฐ์ดํฐ๋ฅผ ์๋ฒ๋ก๋ถํฐ ๊ฐ์ ธ์ค๊ณ , HTML์ ๋์ ์ผ๋ก ๋ ๋๋งํ๋ ๋ฐฉ์)
๊ทธ๋ฐ๋ฐ ์๋ฌด๋ฆฌ ์๊ฐํด๋ด๋ CSR์ ๊ฐ์ฅ ํฐ ํน์ง์ด์ ์ ์ผํ(?) ์ฅ์ ์ด ์๋ก๊ณ ์นจ์ ํ์ง ์์ ํ๋ฉด์ด ๊น๋ฐ๊ฑฐ๋ฆฌ์ง ์๋๋ค๋ ๊ฒ์ธ๋ฐ, ์ ์น์ฌ์ดํธ๋ ๊น๋ฐ๊ฑฐ๋ฆฌ๊ณ ์๋ค๋ ๊ฒ์ด์์ต๋๋ค.
๊ทธ๋์, ๋ฌผ๋ก ํด๋ผ์ด์ธํธ๊ฐ ํ์ด์ง๋ฅผ ๋ ๋๋งํ๋ ๊ฒ์ด CSR์ด๋ผ๋ ์ ์๋ ์๊ณ ์์ง๋ง,
๊ณผ์ฐ ๊ฐ์ฅ ํฐ ํน์ง์ธ ๊น๋ฐ๊ฑฐ๋ฆฌ์ง ์๋๋ค๋ ์ ์ ๋ง์กฑํ์ง ๋ชปํ๋๋ฐ, ๊ทธ๊ฑธ CSR์ด๋ผ๊ณ ํ ์ ์์๊น?
ํ๋ ๋๋ ๋ง์ ๋น ์ง๊ฒ ๋์์ต๋๋ค.
์ด ๋๋ ๋ง ๋๋ฌธ์ ์ ๋ง ํ์ฐธ์ ๊ณ ๋ฏผํ๋๋ฐ, ์ฌ์ค ์์ ํ ๋ต์ ์ฐพ์ง๋ ๋ชปํ์ต๋๋ค.
๊ทธ๋ฌ๋ ์ฌ๊ธฐ์ ๋ ๋ค๋ฅธ ์๋ก์ด ์๊ฐ์ด ๋ค์์ต๋๋ค.
๋ง์ฝ ํด๋ผ์ด์ธํธ์์ JavaScript๋ฅผ ํตํด ํ ํ๋ฆฟ์ ๋ ๋๋งํ๊ณ ์๋ค๋ฉด, ์ด๋ ๋ง์น ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ์ฒ๋ผ ๋์ํ๊ณ ์๋ ๊ฒ ์๋๊น?
SSR์ ์๋ฒ ์ฌ์ด๋ ๋ ๋๋ง์ ์ฝ์์ ๋๋ค.
๊ทธ๋ฐ๋ฐ ์ ๋ ์์ฐ์ค๋ฝ๊ฒ ์๋ฒ๋ผ๋ ๋จ์ด ๋๋ฌธ์ SSR์์ ์๋ฏธํ๋ ์๋ฒ๊ฐ ๋ฐฑ์๋ ์๋ฒ๋ผ๊ณ ์๊ฐ์ ํ๋๋ฐ,
SSR์ ๊ณต๋ถํ๋ค ๋ณด๋, โ๊ทธ๋ฅ ๋จ์ํ ์๋ฒโ, โ์ฝ๊ฒ ๋งํด ์ธํฐ๋ท์ด ๋๋ ์ปดํจํฐโ๋ผ๊ณ ์๊ฐํด์ผ ํ๋ค๋ ๊ฒ์ ์๊ฒ ๋์์ต๋๋ค.
์ฆ โ์๋ฒ = ์ธํฐ๋ท์ด ๋๋ ์ปดํจํฐโ, โ์๋ฒ โ ๋ฐฑ์๋โ์ธ ๊ฒ์ธ๋ฐ,
์ผ๋ฐ์ ์ผ๋ก ์ฐ๋ฆฌ๊ฐ ์๊ฐํ๋ SSR์ ์๋ฒ์์ HTML์ ์์ฑํด ํด๋ผ์ด์ธํธ๋ก ์ ์กํ๋ ๊ฒ์ ์๋ฏธํ์ง๋ง,
ํด๋ผ์ด์ธํธ์์ Javascript๋ก HTML์ ์กฐ์ํ๋ ๊ฒ๋ ์ผ์ข ์ ์๋ฒ ์ญํ ์ด ์๋๊น?
ํ๋ ์๊ฐ์ด ๋ค์์ต๋๋ค.
javascript๊ฐ html ๋์ ์ ๊ทผํด ์กฐ์ํ๋ ๊ฒ๋ ์๋ฒ๋ก ๋ณผ ์ ์์ง ์๋?
๋ผ๋ ์๋ฌธ์ด ๋ค์์ต๋๋ค.
๋ค์ ๋งํ๋ฉด CSR์ ๋ธ๋ผ์ฐ์ ๋ด์์ JavaScript๊ฐ HTML์ ์์ฑํ๋ ๊ฒ์ด๋ฏ๋ก,
"๋๊ฐ HTML์ ์์ฑํ๋๊ฐ"์ ์ด์ ์ ๋ง์ถ๋ค๋ฉด,
CSR ์ญ์ "์๋ฒ์ฌ์ด๋ ๋ ๋๋ง"์ ๋์ ๋ฒ์ฃผ์ ์ํ ์ ์์ง ์์๊น ํ๋ ์๊ฐ์ด ๋ค์์ต๋๋ค.
๊ทธ๋ฐ๋ฐ ์ด๋ฐ ์๊ฐ๋ค์ ๊ณ์ ํ๋ค๋ณด๋ ๋๋ฌด ๋ฉ๋ฆฌ๊น์ง ์จ ๊ฒ ๊ฐ๋ค๋ ์๊ฐ์ด ๋ค์๊ณ ,
CSR ์ญ์ "์๋ฒ์ฌ์ด๋ ๋ ๋๋ง"์ ๋์ ๋ฒ์ฃผ์ ์ํ๋ค๊ณ ํ๋๋ผ๋ ์ด์ฐจํผ ๋ด ์ฝ๋๋ ์ด๋์ ์ํ๋์ง ์ด ๋ ผ์๋ก๋ ์ ์ํ ์ ์๊ฒ ๋ค๋ ์๊ฐ์ด ๋ค์ด ์๊ฐ์ ๋ฉ์ถ๊ธฐ๋ก ํ์ต๋๋คโฆ
๊ฒฐ๋ก ์ ์ผ๋ก, ์ ๊ฐ ์ง ์ฝ๋๊ฐ CSR์ธ์ง SSR์ธ์ง ๋ช ํํ๊ฒ ํ๋๋ก ๊ตฌ๋ถํ ์๋ ์์์ต๋๋ค.
SSR๊ณผ CSR์ ํผํฉํ์ฌ ์ฌ์ฉํ ๊ฒ์ด๋ผ๊ณ ํ๋จํ์๊ณ ,
๋ค๋ง CSR์ ์ฌ์ฉํ ๋ถ๋ถ ์ค์์๋ (์๋ฅผ ๋ค์๋ฉด ์นด๋ ์ถ๊ฐ) ๋ ๋๋ง ์ ์๋ก๋ง ๋ฐ์ง์๋ฉด CSR์ด ๋ง์ง๋ง ๊น๋ฐ์์ด ์๋ค๋ CSR์ ์ฅ์ ์ ํ์ฉํ์ง ๋ชปํ๋ค๋ ๊ฒ์ ์ ์ ์์์ต๋๋ค.
ํญ์ ๋ฆฌ์กํธ๋ง ์ฌ์ฉํ๋ค๊ฐ ์ด๋ ๊ฒ ๋ฐ๋๋ผ js๋ก ๊ตฌํํด๋ณด๋, ์์ผ ์ํ ๊ด๋ฆฌ์ ์ค์์ฑ์ ๋ํด ๋ค์๊ธ ๊นจ๋ซ๊ฒ ๋์๊ณ , ๋ ๋๋ถ์ ๊น์ด ์๊ฒ ๊ณต๋ถํด๋ณผ ์๊ฐ์กฐ์ฐจ ํ์ง ๋ชปํ๋ CSR๊ณผ SSR์ ๋ํด์๋ ํ์ตํด๋ณผ ์ ์์์ต๋๋ค.
CSR๊ณผ SSR์ ์ฐจ์ด๋ ๋จ์ํ ํ์ด์ง์ ๊น๋ฐ์ ์ฌ๋ถ๋ ์๋ก๊ณ ์นจ ์ ๋ฌด๋ก๋ง ๊ตฌ๋ถํ ์ ์๋ ๊ฒ์ด ์๋๋ผ
HTML์ ์์ฑํ๊ณ ๋ ๋๋งํ๋ ์ฃผ์ฒด๊ฐ ์ด๋์ ์๋์ง๋ฅผ ๊ธฐ์ค์ผ๋ก ํ๋จํด์ผ ํ๋ค๋ ๊ฒ,
์๋ฒ์ ํด๋ผ์ด์ธํธ์ ์ญํ ์ ๋ช ํํ ๊ตฌ๋ถํ๊ณ , ๊ฐ ๋ฐฉ์์ ํน์ฑ๊ณผ ์ฅ์ ์ ์ดํดํ๋ ๊ฒ์ด ์ค์ํ๋ค๋ ๊ฒ,
๊ทธ๋ฆฌ๊ณ SSR์์ ์ง์นญํ๋ ์๋ฒ๋ ๋ฐฑ์๋ ์๋ฒ๊ฐ ์๋๋ผ๋ ๊ฒ์ ์ค์ํ๊ฒ ๊ธฐ์ตํด๋์ด์ผ๊ฒ ๋ค๊ณ ์๊ฐํ์ต๋๋ค.
์ฒ์์ผ๋ก ์ ๊ณ ๋ฏผ ๊ณผ์ ์ ๋งค๊ฑฐ์ง ํ์์ผ๋ก ์์ฑํด๋ณด์๋๋ฐ, ํ์คํ ์ ๊ณ ๋ฏผ์ ๊ธฐ์ตํด๋ ์ ์์ด์ ์ข์ ๊ฒ ๊ฐ์ต๋๋ค.
์ต๋ํ ์์ฃผ ์ด๋ฐ ์์ผ๋ก ๋ฅ๋ค์ด๋ธ ํด๋ณด๊ณ , ๊ทธ ๊ฒฝํ๊ณผ ๊ณ ๋ฏผ์ ์์ฑํ ์ ์๋๋ก ํด์ผ๊ฒ ์ต๋๋ค.