
์ธ์ด ๐ฐ๐ท ํ๊ตญ์ด
์์ํ๊ธฐ
๊ตฌ์ฑ
๋ง์ถคํ
๊ณ ๊ธ
FastComments Image Chat๋ ์ฌ์ฉ์๊ฐ ์ด๋ฏธ์ง์ ์๋ฌด ๊ณณ์ด๋ ํด๋ฆญํ์ฌ ํ ๋ก ์ง์ ์ ๋ง๋ค ์ ์๋๋ก ํ์ฌ ์ด๋ฏธ์ง์ ๋ํ ๋ํํ ํ ๋ก ์ ๊ฐ๋ฅํ๊ฒ ํฉ๋๋ค. ์ฌ์ฉ์๋ ์ด๋ฏธ์ง์ ํน์ ๋ถ๋ถ์ ํด๋ฆญํ์ฌ ํด๋น ์์ญ์ ๋ํ ๋ํ๋ฅผ ์์ํ ์ ์์ผ๋ฉฐ, ํ ๋ก ์ด ์์นํ ๊ณณ์ ๋ณด์ฌ์ฃผ๋ ์๊ฐ์ ๋ง์ปค๋ฅผ ์์ฑํฉ๋๋ค.
์ด ๊ธฐ๋ฅ์ ๋์์ธ ํผ๋๋ฐฑ, ์ ํ ๋ฆฌ๋ทฐ, ๋ค์ด์ด๊ทธ๋จ์ด ํฌํจ๋ ๊ต์ก ์๋ฃ, ์ฃผ์์ด ๋ฌ๋ฆฐ ์ฌ์ง ๊ฐค๋ฌ๋ฆฌ ๋ฐ ํน์ ์ด๋ฏธ์ง ์์น์ ๊ณ ์ ๋ ๋งฅ๋ฝ์ ํ ๋ก ์ ์ํ๋ ๋ชจ๋ ์๋๋ฆฌ์ค์ ์ ํฉํฉ๋๋ค.
์์ํ๊ธฐ 
์ฌ์ฉ ์ฌ๋ก
Image Chat๋ ํ์ด ๋ชฉ์ ์ด๋ ์คํฌ๋ฆฐ์ท์ ํน์ ์์์ ๋ํด ๋ ผ์ํด์ผ ํ ๋ ๋์์ธ ํผ๋๋ฐฑ์ ๋งค์ฐ ์ ํฉํฉ๋๋ค. ์ ํ ๋ฆฌ๋ทฐ ์ฌ์ดํธ์์๋ ๊ณ ๊ฐ์ด ์ ํ ์ฌ์ง์์ ๋ณด์ด๋ ํน์ ๊ธฐ๋ฅ์ ๋ํด ํ ๋ก ํ ์ ์์ต๋๋ค. ๊ต์ก ํ๋ซํผ์ ๋ค์ด์ด๊ทธ๋จ, ์ง๋ ๋๋ ๊ณผํ ์ด๋ฏธ์ง์ ๋ํด ํ ๋ก ํ๋ ๋ฐ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ฌ์ง ๊ฐค๋ฌ๋ฆฌ๋ ์์น๋ณ ์ฃผ์์ผ๋ก ์ธํฐ๋ํฐ๋ธํด์ง ์ ์์ต๋๋ค. ๋ถ๋์ฐ ์ฌ์ดํธ์์๋ ๋ฐฉ๋ฌธ์๊ฐ ๋ถ๋์ฐ ์ฌ์ง์์ ๋ณด์ด๋ ํน์ ํน์ง์ ๋ํด ๋ ผ์ํ ์ ์์ต๋๋ค.
๋น ๋ฅธ ์์
Image Chat ์์์ ๊ฐ๋จํฉ๋๋ค. FastComments Image Chat ์คํฌ๋ฆฝํธ, ์ด๋ฏธ์ง๊ฐ ํฌํจ๋ ์ด๋ฏธ์ง ์์๋ ์ปจํ ์ด๋, ๊ทธ๋ฆฌ๊ณ Tenant ID๊ฐ ํฌํจ๋ ๊ตฌ์ฑ ๊ฐ์ฒด๊ฐ ํ์ํฉ๋๋ค.
์ค์น
ํ์ด์ง์ Image Chat ์คํฌ๋ฆฝํธ๋ฅผ ์ถ๊ฐํ์ธ์:

๊ธฐ๋ณธ ๊ตฌํ
Here's a minimal example:
Run 
Replace 'demo' with your actual FastComments Tenant ID if it's not already, which you can find in your FastComments ๋์๋ณด๋.
์๋ ๋ฐฉ์
์ด๊ธฐํ๋๋ฉด ์ฌ์ฉ์๋ ์ด๋ฏธ์ง์ ์๋ฌด ๊ณณ์ด๋ ํด๋ฆญํ ์ ์์ต๋๋ค. ํด๋ฆญ์ด ๋ฐ์ํ๋ฉด ํด๋น ์์น์ ์๊ฐ์ ์ ์ฌ๊ฐํ ๋ง์ปค๊ฐ ๋ํ๋๊ณ ์ฑํ ์ฐฝ์ด ์ด๋ฆฝ๋๋ค. ๋ค๋ฅธ ์ฌ์ฉ์๋ค๋ ๋ชจ๋ ๋ง์ปค๋ฅผ ๋ณด๊ณ ํด๋ฆญํ์ฌ ํด๋น ํ ๋ก ์ ๋ณด๊ฑฐ๋ ์ฐธ์ฌํ ์ ์์ต๋๋ค. ๋ชจ๋ ํ ๋ก ์ ๋ฐฉ๋ฌธ์ ์ ์ฒด์ ๊ฑธ์ณ ์ค์๊ฐ์ผ๋ก ๋๊ธฐํ๋ฉ๋๋ค.
์์ ฏ์ ๋ฐฑ๋ถ์จ ๊ธฐ๋ฐ ์์น ์ง์ ์ ์ฌ์ฉํ๋ฏ๋ก ์ด๋ฏธ์ง ํฌ๊ธฐ๊ฐ ์กฐ์ ๋๊ฑฐ๋ ๋ค๋ฅธ ํ๋ฉด ํฌ๊ธฐ์์ ๋ณด๋๋ผ๋ ๋ง์ปค๋ ์ฌ๋ฐ๋ฅธ ์์น์ ์ ์ง๋ฉ๋๋ค.
๋ผ์ด๋ธ ๋ฐ๋ชจ
Image Chat ์๋ ๋ชจ์ต์ ๋ผ์ด๋ธ ๋ฐ๋ชจ ํ์ด์ง์์ ํ์ธํ ์ ์์ต๋๋ค.
๋ค์ ๋จ๊ณ
๊ธฐ๋ณธ ๊ธฐ๋ฅ์ด ์๋ํ๋ฉด ๊ตฌ์ฑ ์ต์ ๊ฐ์ด๋์์ ๋ชจ์๊ณผ ๋์์ ์ฌ์ฉ์ ์ง์ ํ ์ ์์ต๋๋ค. ๋ฐ์ํ ๋์์ธ ๊ฐ์ด๋๋ฅผ ํ์ธํ์ฌ ๋ฐฑ๋ถ์จ ๊ธฐ๋ฐ ์์น ์ง์ ์ด ์ด๋ป๊ฒ ์๋ํ๋์ง ์ดํดํ์ธ์. ๋ง์ถค ์ค์ ๊ฐ์ด๋์์ ์คํ์ผ๋ง ๋ฐ ๋คํฌ ๋ชจ๋ ์ง์์ ๋ํด ์์๋ณด์ธ์. ๊ณ ๊ธ ํตํฉ์ API ๋ ํผ๋ฐ์ค๋ฅผ ์ฐธ์กฐํ์ธ์.
ํ๋ฐํธ์๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ
๋ชจ๋ FastComments ํ๋ฐํธ์๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ(react, vue, angular ๋ฑ)์ Image Chat์ด ํฌํจ๋์ด ์์ต๋๋ค.
์์ 
๊ธฐ๋ณธ ์์
Image Chat๋ฅผ ์ฌ์ฉํ๋ ๊ฐ์ฅ ๊ฐ๋จํ ๋ฐฉ๋ฒ์ ๋จ์ผ ์ด๋ฏธ์ง ์์๋ฅผ ๋์์ผ๋ก ํ๋ ๊ฒ์ ๋๋ค. ์ด ์์ ๋ ์ด๋ฏธ์ง์์ ์ธํฐ๋ํฐ๋ธํ ํ ๋ก ์ ํ์ฑํํ๋ ๋ฐฉ๋ฒ์ ๋ณด์ฌ์ค๋๋ค:
Run 
์ปจํ ์ด๋ ์์ ์์
์ด๋ฏธ์ง๊ฐ ํฌํจ๋ ์ปจํ ์ด๋ ์์๋ฅผ ์ ๋ฌํ ์๋ ์์ต๋๋ค:
Run 
์ฌ์ฉ์ ์ ์ URL ID ์์
๊ธฐ๋ณธ์ ์ผ๋ก Image Chat์ ํ์ด์ง URL๊ณผ ์ด๋ฏธ์ง ์์ค ๋ฐ ์ขํ๋ฅผ ๊ฒฐํฉํ์ฌ ๋ํ๋ฅผ ์๋ณํฉ๋๋ค. ์ฌ์ฉ์ ์ ์ urlId๋ฅผ ์ ๊ณตํ ์ ์์ต๋๋ค:
Run 
URL ๊ตฌ์กฐ๊ฐ ๋ณ๊ฒฝ๋๋๋ผ๋ ๋์ผํ ๋ํ๋ฅผ ์ ์งํ๊ฑฐ๋ ์ฌ๋ฌ ํ์ด์ง์์ ๋์ผํ ํ ๋ก ํฌ์ธํธ๋ฅผ ๊ณต์ ํ๋ ค๋ ๊ฒฝ์ฐ ์ ์ฉํฉ๋๋ค.
๋คํฌ ๋ชจ๋ ์์
์ฌ์ดํธ์ ์ด๋์ด ๋ฐฐ๊ฒฝ์ด ์๊ณ ์์ ฏ์ด ์๋์ผ๋ก ์ด๋ฅผ ๊ฐ์งํ์ง ๋ชปํ๋ ๊ฒฝ์ฐ, ์๋์ผ๋ก ๋คํฌ ๋ชจ๋ ์ง์์ ํ์ฑํํ ์ ์์ต๋๋ค:
Run 
์ฌ์ฉ์ ์ง์ ์ฑํ ์ฌ๊ฐํ ํฌ๊ธฐ ์์
์ด๋ฏธ์ง์ ํ์๋๋ ํด๋ฆญ ๊ฐ๋ฅํ ์ฌ๊ฐํ์ ํฌ๊ธฐ๋ฅผ ์กฐ์ ํ ์ ์์ต๋๋ค. ํฌ๊ธฐ๋ ์ด๋ฏธ์ง ๋๋น์ ๋ฐฑ๋ถ์จ๋ก ์ง์ ๋ฉ๋๋ค:
Run 
๋๊ธ ์ ์ฝ๋ฐฑ ์์
commentCountUpdated ์ฝ๋ฐฑ์ ์ฌ์ฉํ์ฌ ๋๊ธ์ด ์ถ๊ฐ๋๊ฑฐ๋ ์
๋ฐ์ดํธ๋ ๋๋ฅผ ์ถ์ ํฉ๋๋ค:

์ฌ๋ฌ ์ด๋ฏธ์ง ์์
์ฌ๋ฌ ์ด๋ฏธ์ง์ ๋ํด Image Chat์ ์ด๊ธฐํํ ์ ์์ต๋๋ค. ๊ฐ ์ด๋ฏธ์ง๋ ์์ฒด ๋ ๋ฆฝ๋ ํ ๋ก ์ง์ ์ ๊ฐ์ต๋๋ค:
Run 
๊ตฌ์ฑ ์ต์

๊ฐ์
FastComments Image Chat๋ ํ์ค FastComments ๋๊ธ ์์ ฏ์ ํ์ฅํ์ฌ ๊ธฐ๋ณธ ์์ ฏ์ ๋ชจ๋ ๊ตฌ์ฑ ์ต์ ์ ์์๋ฐ์ผ๋ฉด์ ์ด๋ฏธ์ง ์ฃผ์์ ํนํ๋ ๋ช ๊ฐ์ง ์ต์ ์ ์ถ๊ฐํฉ๋๋ค.
ํ์ ๊ตฌ์ฑ
tenantId
FastComments ํ ๋ํธ ID๊ฐ ํ์ํฉ๋๋ค. FastComments ๋์๋ณด๋์์ ์ฐพ์ ์ ์์ต๋๋ค.
FastCommentsImageChat(imageElement, {
tenantId: 'demo'
});
Image Chat ์ ์ฉ ์ต์
urlId
๊ธฐ๋ณธ์ ์ผ๋ก Image Chat์ ํ์ด์ง URL, ์ด๋ฏธ์ง ์์ค ๋ฐ X/Y ์ขํ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๊ฐ ๋ํ์ ๋ํ ๊ณ ์ ์๋ณ์๋ฅผ ์์ฑํฉ๋๋ค. ์ฌ์ฉ์ ์ ์ urlId๋ก ์ด๋ฅผ ์ฌ์ ์ํ ์ ์์ต๋๋ค.
FastCommentsImageChat(imageElement, {
tenantId: 'demo',
urlId: 'my-custom-image-id'
});
URL ๊ตฌ์กฐ๊ฐ ๋ณ๊ฒฝ๋ ์ ์์ง๋ง ๋์ผํ ๋ํ๋ฅผ ์ ์งํ๋ ค๋ ๊ฒฝ์ฐ๋ ์ฌ๋ฌ ํ์ด์ง์์ ์ฃผ์์ ๊ณต์ ํ๋ ค๋ ๊ฒฝ์ฐ์ ์ ์ฉํฉ๋๋ค.
chatSquarePercentage
ํด๋ฆญ ๊ฐ๋ฅํ ์ฑํ ๋ง์ปค์ ํฌ๊ธฐ๋ฅผ ์ด๋ฏธ์ง ๋๋น์ ๋ฐฑ๋ถ์จ๋ก ์ ์ดํฉ๋๋ค. ๊ธฐ๋ณธ๊ฐ์ 5%์ด๋ฉฐ, ๊ฐ ๋ง์ปค๊ฐ ์ด๋ฏธ์ง ๋๋น์ 5%๋ฅผ ์๋ฏธํฉ๋๋ค.
FastCommentsImageChat(imageElement, {
tenantId: 'demo',
chatSquarePercentage: 8 // ๋ ํฌ๊ณ ๋ ์ ๋ณด์ด๋ ๋ง์ปค
});
์์ ๊ฐ์ ๋ ๋์ ๋๋ ๋ง์ปค๋ฅผ ๋ง๋ค์ด ์์ธํ ์ด๋ฏธ์ง์ ๋ ์ ํฉํฉ๋๋ค. ํฐ ๊ฐ์ ๋ณต์กํ ์ด๋ฏธ์ง๋ ๋ชจ๋ฐ์ผ ์ฌ์ฉ์๊ฐ ๋ณผ ๋ ๋ง์ปค๋ฅผ ๋ ์ฝ๊ฒ ๋ณด๊ณ ํด๋ฆญํ ์ ์๋๋ก ํฉ๋๋ค.
hasDarkBackground
ํ์ด์ง์ ์ด๋์ด ๋ฐฐ๊ฒฝ์ด ์๋ ๊ฒฝ์ฐ ๋คํฌ ๋ชจ๋ ์คํ์ผ์ ํ์ฑํํฉ๋๋ค.
FastCommentsImageChat(imageElement, {
tenantId: 'demo',
hasDarkBackground: true
});
commentCountUpdated
๋๊ธ ์๊ฐ ๋ณ๊ฒฝ๋ ๋๋ง๋ค ํธ์ถ๋๋ ์ฝ๋ฐฑ ํจ์์ ๋๋ค. ๋ฐฐ์ง๋ ํ์ด์ง ์ ๋ชฉ๊ณผ ๊ฐ์ UI ์์๋ฅผ ์ ๋ฐ์ดํธํ๋ ๋ฐ ์ ์ฉํฉ๋๋ค.
FastCommentsImageChat(imageElement, {
tenantId: 'demo',
commentCountUpdated: function(count) {
console.log('Total comments:', count);
document.getElementById('badge').textContent = count;
}
});
์์๋ ๊ตฌ์ฑ ์ต์
Image Chat์ด ํ์ค ๋๊ธ ์์ ฏ์ ํ์ฅํ๋ฏ๋ก ๊ธฐ๋ณธ FastComments ์์ ฏ์ ๋ชจ๋ ๊ตฌ์ฑ ์ต์ ์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๋ค์์ ์์ฃผ ์ฌ์ฉํ๋ ๋ช ๊ฐ์ง ์ต์ ์ ๋๋ค:
locale
์์ ฏ UI์ ์ธ์ด๋ฅผ ์ค์ ํฉ๋๋ค. FastComments๋ ์์ญ ๊ฐ์ ์ธ์ด๋ฅผ ์ง์ํฉ๋๋ค.
FastCommentsImageChat(imageElement, {
tenantId: 'demo',
locale: 'es' // ์คํ์ธ์ด
});
readonly
๋ชจ๋ ๋ํ๋ฅผ ์ฝ๊ธฐ ์ ์ฉ์ผ๋ก ๋ง๋ญ๋๋ค. ์ฌ์ฉ์๋ ๊ธฐ์กด ๋ง์ปค์ ํ ๋ก ์ ๋ณผ ์๋ ์์ง๋ง ์๋ก ์์ฑํ๊ฑฐ๋ ๋ต๊ธ์ ๋ฌ ์ ์์ต๋๋ค.
FastCommentsImageChat(imageElement, {
tenantId: 'demo',
readonly: true
});
sso and simpleSSO
์ฑ๊ธ ์ฌ์ธ์จ(SSO)์ ์ฌ์ฉํด ์ธ์ฆ ์์คํ ๊ณผ ํตํฉํฉ๋๋ค.
FastCommentsImageChat(imageElement, {
tenantId: 'demo',
sso: {
// SSO ๊ตฌ์ฑ
}
});
์ธ์ฆ ์ต์ ์ ๋ํ ์์ธํ ๋ด์ฉ์ SSO ๋ฌธ์๋ฅผ ์ฐธ์กฐํ์ธ์.
maxReplyDepth
๋ต๊ธ์ ์ค์ฒฉ ๊น์ด๋ฅผ ์ ์ดํฉ๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก Image Chat์ ์ด๋ฅผ 0์ผ๋ก ์ค์ ํ์ฌ ๋ชจ๋ ๋๊ธ์ด ํ๋ฉด(์ค์ฒฉ ๋ต๊ธ ์์)์ ๋๋ค. ์ค๋ ๋ํ ๋ํ๋ฅผ ์ํ๋ฉด ์ด ๊ฐ์ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค.
FastCommentsImageChat(imageElement, {
tenantId: 'demo',
maxReplyDepth: 3 // ์ค์ฒฉ์ 3๋จ๊ณ ํ์ฉ
});
๋ด๋ถ ๊ตฌ์ฑ
๋ค์ ์ต์ ์ Image Chat์ ์ํด ์๋์ผ๋ก ์ค์ ๋๋ฉฐ ์ฌ์ ์ํด์๋ ์ ๋ฉ๋๋ค:
productId๋ Image Chat์ฉ์ผ๋ก ์๋์ผ๋ก 2๋ก ์ค์ ๋ฉ๋๋ค. ์ฑํ
์ฐฝ ๊ธฐ๋ฅ์ ์ ๊ณตํ๊ธฐ ์ํด floating-chat ํ์ฅ์ด ์๋์ผ๋ก ๋ก๋๋ฉ๋๋ค. ์์ ฏ์ ๋ชจ๋ฐ์ผ ๊ธฐ๊ธฐ(ํญ์ด 768px ๋ฏธ๋ง์ธ ํ๋ฉด)๋ฅผ ์๋์ผ๋ก ๊ฐ์งํ์ฌ ์ ์ฒดํ๋ฉด ์ฑํ
์ฐฝ์ผ๋ก UI๋ฅผ ์กฐ์ ํฉ๋๋ค.
๋์ ์์ ์ ์ฐ์ฑ
FastCommentsImageChat์ ์ฒซ ๋ฒ์งธ ๋งค๊ฐ๋ณ์๋ ์ง์ ์ ์ธ <img> ์์์ด๊ฑฐ๋ ๊ทธ ์์ ์ด๋ฏธ์ง๊ฐ ์๋ ์ปจํ
์ด๋ ์์์ผ ์ ์์ต๋๋ค:
// ์ง์ ์ด๋ฏธ์ง ์์
FastCommentsImageChat(document.getElementById('my-image'), config);
// ์ด๋ฏธ์ง๊ฐ ํฌํจ๋ ์ปจํ
์ด๋
FastCommentsImageChat(document.querySelector('.image-wrapper'), config);
์ปจํ ์ด๋ ์์๋ฅผ ์ ๋ฌํ๋ฉด ์์ ฏ์ด ์๋์ผ๋ก ์ด๋ฏธ์ง๋ฅผ ์ฐพ์์ค๋๋ค.
์ ์ฒด ์์
๋ค์์ ์ฌ๋ฌ ๊ตฌ์ฑ ์ต์ ์ ํจ๊ป ๋ณด์ฌ์ฃผ๋ ์์ ์ ๋๋ค:
FastCommentsImageChat(document.getElementById('product-image'), {
tenantId: 'demo',
urlId: 'product-v2-main',
chatSquarePercentage: 6,
hasDarkBackground: false,
locale: 'en',
commentCountUpdated: function(count) {
document.title = count > 0 ? `(${count}) Product Photo` : 'Product Photo';
},
sso: {
// SSO ๊ตฌ์ฑ
},
maxReplyDepth: 1
});
๊ธฐ๋ณธ ์์ ฏ์์ ์์๋ ๋ชจ๋ ์ฌ์ฉ ๊ฐ๋ฅํ ๊ตฌ์ฑ ์ต์ ์ ์ ์ฒด ๋ชฉ๋ก์ FastComments ๊ตฌ์ฑ ๋ฌธ์๋ฅผ ์ฐธ์กฐํ์ธ์.
๋ฐ์ํ ๋์์ธ 
๋ฐฑ๋ถ์จ ๊ธฐ๋ฐ ์์น ์ง์
Image Chat๋ ์ด๋ฏธ์ง ์์ ์ฑํ ๋ง์ปค๋ฅผ ์์น์ํค๊ธฐ ์ํด ํฝ์ ์ขํ ๋์ ๋ฐฑ๋ถ์จ ๊ธฐ๋ฐ ์ขํ๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์ฌ์ฉ์๊ฐ ์ด๋ฏธ์ง์์ ํด๋ฆญํ๋ฉด ์์ ฏ์ ํด๋ฆญ์ ํฝ์ ์ขํ๋ฅผ ์ด๋ฏธ์ง ๋๋น์ ๋์ด์ ๋ฐฑ๋ถ์จ๋ก ๋ณํํฉ๋๋ค. ์ด ๋ฐฉ์์ ์ด๋ฏธ์ง๊ฐ ์ด๋ป๊ฒ ํ์๋๋ ๋ง์ปค๊ฐ ์ฌ๋ฐ๋ฅธ ์์น์ ์ ์ง๋๋๋ก ๋ณด์ฅํฉ๋๋ค.
์๋ฅผ ๋ค์ด, ์ฌ์ฉ์๊ฐ ๋๋น๊ฐ 1000px์ธ ์ด๋ฏธ์ง์ ์ผ์ชฝ ๊ฐ์ฅ์๋ฆฌ์์ 250ํฝ์ ์ง์ ์ ํด๋ฆญํ๋ฉด ์์ ฏ์ ์ด๋ฅผ ์ผ์ชฝ์์ 25%๋ก ์ ์ฅํฉ๋๋ค. ๋ค๋ฅธ ์ฌ์ฉ์๊ฐ ๋ชจ๋ฐ์ผ ๊ธฐ๊ธฐ์์ ๋์ผํ ์ด๋ฏธ์ง๋ฅผ ๋๋น 500px๋ก ๋ณผ ๋, ๋ง์ปค๋ ์ผ์ชฝ์์ 125ํฝ์ ์ง์ ์ ๋ํ๋๋ฉฐ, ์ด๋ ์ฌ์ ํ ๋๋น์ 25%์ ๋๋ค.
๋ฐ์ํ ๋ ์ด์์์ ๋ํ ์ด์
์ด ๋ฐฑ๋ถ์จ ์์คํ ์ ๋ชจ๋ ๊ธฐ๊ธฐ ํฌ๊ธฐ์ ๋ฐฉํฅ์์ Image Chat์ด ์ํํ๊ฒ ์๋ํ๋๋ก ํฉ๋๋ค. ํ๋ฉด ๋๋น, CSS ๊ท์น, ๋๋ ์ปจํ ์ด๋ ์ ์ฝ์ ๋ฐ๋ผ ์ด๋ฏธ์ง๊ฐ ์๋ก ๋ค๋ฅธ ํฌ๊ธฐ๋ก ํ์๋ ์ ์์ง๋ง, ๋ง์ปค๋ ํญ์ ์๋๋ ์์น์ ์ ํํ ์ ๋ ฌ๋ฉ๋๋ค.
๋ํ ๋ชจ๋ํฐ๋ฅผ ์ฌ์ฉํ๋ ๋ฐ์คํฌํฑ ์ฌ์ฉ์๋ ์ํ ํ๋ฉด์ ์ค๋งํธํฐ ์ฌ์ฉ์๊ฐ ๋ณด๋ ๊ฒ๊ณผ ๋์ผํ ์๋์ ์์น์ ๋ง์ปค๋ฅผ ๋ด ๋๋ค. ๋ง์ปค๋ ์ด๋ฏธ์ง ์์ฒด์ ๋น๋กํ์ฌ ํฌ๊ธฐ๊ฐ ์กฐ์ ๋ฉ๋๋ค.
์ด๋ฏธ์ง ์ค์ผ์ผ๋ง ๋ฐ ์ข ํก๋น
์ด๋ฏธ์ง๊ฐ ์ค์ผ์ผ๋ ๋ ์ข ํก๋น๋ฅผ ์ ์งํ๋ ํ(์ด๋ ๋ธ๋ผ์ฐ์ ์ ๊ธฐ๋ณธ ๋์์ ๋๋ค) ๋ฐฑ๋ถ์จ ๊ธฐ๋ฐ ๋ง์ปค๋ ์๋ฒฝํ๊ฒ ์ ๋ ฌ๋ ์ํ๋ฅผ ์ ์งํฉ๋๋ค. ์์ ฏ์ ์ด๋ฏธ์ง๊ฐ ๋น๋ก์ ์ผ๋ก ์ค์ผ์ผ๋๋ค๊ณ ๊ฐ์ ํ๊ณ ์ด ๊ฐ์ ์ ๊ธฐ๋ฐํด ์์น๋ฅผ ๊ณ์ฐํฉ๋๋ค.
ํน์ ์น์์ ํจ๊ป object-fit: cover์ ๊ฐ์ด ์ด๋ฏธ์ง ์ข
ํก๋น๋ฅผ ์๊ณกํ๋ CSS๋ฅผ ์ ์ฉํ๋ฉด ๋ง์ปค ์์น๊ฐ ์ฌ๋ฐ๋ฅด๊ฒ ์ ๋ ฌ๋์ง ์์ ์ ์์ต๋๋ค. ์ต์์ ๊ฒฐ๊ณผ๋ฅผ ์ํด ์ด๋ฏธ์ง๋ฅผ ์์ฐ์ค๋ฝ๊ฒ ์ค์ผ์ผํ๋๋ก ํ์ฉํ๊ฑฐ๋ ์ข
ํก๋น๋ฅผ ์ ์งํ๊ธฐ ์ํด object-fit: contain์ ์ฌ์ฉํ์ญ์์ค.
์ฑํ ์ฌ๊ฐํ ํฌ๊ธฐ
์ฑํ
๋ง์ปค์ ์๊ฐ์ ํฌ๊ธฐ๋ ๋ฐฑ๋ถ์จ ๊ธฐ๋ฐ์
๋๋ค. chatSquarePercentage ๊ตฌ์ฑ ์ต์
์ ๊ธฐ๋ณธ๊ฐ์ด 5%์ด๋ฉฐ, ์ด๋ ๊ฐ ์ฌ๊ฐํ์ด ์ด๋ฏธ์ง ๋๋น์ 5%์์ ์๋ฏธํฉ๋๋ค. ์ด๋ ์๋ก ๋ค๋ฅธ ์ด๋ฏธ์ง ํฌ๊ธฐ์์๋ ์๊ฐ์ ๋น์ค์ ์ผ๊ด๋๊ฒ ์ ์งํฉ๋๋ค.
๊ธฐ๋ณธ 5% ์ค์ ์ ์ ์ฉํ ๋๋น 1000px ์ด๋ฏธ์ง์์๋ ๋ง์ปค๊ฐ 50px ์ ์ฌ๊ฐํ์ ๋๋ค. ๋๋น 500px ์ด๋ฏธ์ง์์๋ ๋์ผํ ๋ง์ปค๊ฐ 25px ์ ์ฌ๊ฐํ์ด ๋ฉ๋๋ค. ๋ง์ปค๋ ์ด๋ฏธ์ง ํฌ๊ธฐ์ ๋น๋กํฉ๋๋ค.
๋ชจ๋ฐ์ผ ๋์
๋๋น๊ฐ 768px ๋ฏธ๋ง์ธ ํ๋ฉด์์๋ Image Chat์ด ๋ชจ๋ฐ์ผ ์ต์ ํ ๋ ์ด์์์ผ๋ก ์ ํ๋ฉ๋๋ค. ์ฑํ ์ฐฝ์ ๋ง์ปค ์์ ๋ ์๋ ๋์ ์ ์ฒด ํ๋ฉด์ผ๋ก ์ด๋ฆฝ๋๋ค. ์ด๋ ์์ ํ๋ฉด์์ ๋ ์๋ ์ฐฝ์ด ์ด๋ฏธ์ง์ ๋ง์ ๋ถ๋ถ์ ๊ฐ๋ฆฌ๋ ๋ฌธ์ ๋ฅผ ์ค์ฌ ๋ ๋์ ์ฌ์ฉ์ฑ์ ์ ๊ณตํฉ๋๋ค.
๋ง์ปค ์์ฒด๋ ์ฌ์ ํ ๋ฐฑ๋ถ์จ ๊ธฐ๋ฐ ์์น์ ํ์๋๊ณ ํด๋ฆญํ ์ ์์ต๋๋ค. ์ฌ์ฉ์๋ ๋ชจ๋ ํ ๋ก ์ด ์ด๋์ ์์นํ๋์ง ํ์ธํ๊ณ ๋ง์ปค๋ฅผ ํญํ์ฌ ์ ์ฒด ํ๋ฉด ์ฑํ ์ธํฐํ์ด์ค๋ฅผ ์ด ์ ์์ต๋๋ค.
๋์ ์ด๋ฏธ์ง ๋ก๋ฉ
์ด๋ฏธ์ง๊ฐ ๋น๋๊ธฐ์ ์ผ๋ก ๋ก๋๋๊ฑฐ๋ ํ์ด์ง ๋ก๋ ํ ํฌ๊ธฐ๊ฐ ๋ณ๊ฒฝ๋๋๋ผ๋ ๋ฐฑ๋ถ์จ ๊ธฐ๋ฐ ์์คํ ์ ์ฌ๋ฐ๋ฅด๊ฒ ์๋ํฉ๋๋ค. ์์ ฏ์ ์ด๋ฏธ์ง ์์๋ฅผ ๊ฐ์ํ๊ณ ์ด๋ฏธ์ง ์น์๊ฐ ๋ณ๊ฒฝ๋ ๋๋ง๋ค ๋ง์ปค ์์น๋ฅผ ์ฌ๊ณ์ฐํฉ๋๋ค.
์ด๋ฏธ์ง๋ฅผ ์ง์ฐ ๋ก๋ํ๊ฑฐ๋ ์๋ก ๋ค๋ฅธ ๋ธ๋ ์ดํฌํฌ์ธํธ์์ ๋ค๋ฅธ ํฌ๊ธฐ์ ๋ฐ์ํ ์ด๋ฏธ์ง๋ฅผ ๊ตฌํํ๋ ๊ฒฝ์ฐ์๋ ์ด๋ฏธ์ง ํฌ๊ธฐ๊ฐ ๋ณ๊ฒฝ๋๋ฉด ๋ง์ปค๊ฐ ์๋์ผ๋ก ์กฐ์ ๋ฉ๋๋ค.
๊ธฐ๊ธฐ ๊ฐ ์ผ๊ด์ฑ
์ขํ๊ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ฐฑ๋ถ์จ๋ก ์ ์ฅ๋๋ฏ๋ก ๋ฐ์คํฌํฑ์์ ์์ฑ๋ ํ ๋ก ์ ํ๋ธ๋ฆฟ์ด๋ ํด๋ํฐ์์ ๋ณผ ๋๋ ์ ํํ ๋์ผํ ์๋์ ์์น์ ๋ํ๋ฉ๋๋ค. ์ฌ์ฉ์๋ ์์น ๋ถ์ผ์น ์์ด ์ฌ๋ฌ ๊ธฐ๊ธฐ์์ ํ์ ํ ์ ์์ต๋๋ค.
์ด ๋์์ ์๋ฐฉํฅ์ผ๋ก ์๋ํฉ๋๋ค. ๋ชจ๋ฐ์ผ ๊ธฐ๊ธฐ์์ ํน์ ์ง์ ์ ํญํ์ฌ ์์ฑํ ํ ๋ก ์ ๋ํ ๋ฐ์คํฌํฑ ๋ชจ๋ํฐ์์ ๋ณผ ๋๋ ๋์ผํ ์๋์ ์์น์ ๋ํ๋ฉ๋๋ค.
๋ทฐํฌํธ ๊ณ ๋ ค์ฌํญ
์์ ฏ์ ๋ทฐํฌํธ๊ฐ ์๋๋ผ ์ด๋ฏธ์ง ์์ ์์ฒด๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ฐฑ๋ถ์จ์ ๊ณ์ฐํฉ๋๋ค. ์ด๋ ํ์ด์ง๋ฅผ ์คํฌ๋กคํ๊ฑฐ๋ ๋ธ๋ผ์ฐ์ ์ฐฝ ํฌ๊ธฐ๋ฅผ ๋ณ๊ฒฝํด๋ ๋ง์ปค ์์น์ ์ํฅ์ ์ฃผ์ง ์์์ ์๋ฏธํฉ๋๋ค. ๋ง์ปค๋ ๋ทฐํฌํธ ๋ณ๊ฒฝ๊ณผ ๋ฌด๊ดํ๊ฒ ์ด๋ฏธ์ง์์ ์์น์ ๊ณ ์ ๋ฉ๋๋ค.
๋ฏธ๋ ๋๋น ์ฝํ ์ธ
๋ฐฑ๋ถ์จ ๊ธฐ๋ฐ ์ ๊ทผ ๋ฐฉ์์ ๋ ์ด์์, ๋์์ธ ๋๋ ๊ธฐ๊ธฐ ์ํ๊ณ์ ๋ณ๊ฒฝ์ ๋ํด ์ด๋ฏธ์ง ํ ๋ก ์ ํ๋ ฅ์ ์ผ๋ก ๋ง๋ญ๋๋ค. ์๋ก์ด ํ๋ฉด ํฌ๊ธฐ์ ๊ธฐ๊ธฐ๊ฐ ๋ฑ์ฅํ๋๋ผ๋ ๊ธฐ์กด ํ ๋ก ์ ์ ๋ฐ์ดํธ๋ ๋ง์ด๊ทธ๋ ์ด์ ์์ด๋ ๊ณ์ ์ฌ๋ฐ๋ฅด๊ฒ ํ์๋ฉ๋๋ค.
๋ง์ถคํ 
๋คํฌ ๋ชจ๋ ์ง์
Image Chat์ ๋ด์ฅ๋ ๋คํฌ ๋ชจ๋ ์ง์์ ํฌํจํฉ๋๋ค. ๊ตฌ์ฑ์์ hasDarkBackground: true๋ฅผ ์ค์ ํ๋ฉด ์ฑํ
์ฐฝ๊ณผ UI ์์๊ฐ ์๋์ผ๋ก ์ด๋์ด ๋ฐฐ๊ฒฝ์ ์ ์ด์ธ๋ฆฌ๋๋ก ์กฐ์ ๋ฉ๋๋ค.
FastCommentsImageChat(imageElement, {
tenantId: 'demo',
hasDarkBackground: true
});
๋คํฌ ๋ชจ๋ ์คํ์ผ๋ง์ ์ฑํ ์ฐฝ, ๋ง์ปค ์ฌ๊ฐํ, ๊ทธ๋ฆฌ๊ณ ๋ชจ๋ ์ธํฐ๋ํฐ๋ธ ์์์ ์ ์ฉ๋ฉ๋๋ค. ์ฌ์ดํธ์ ๋คํฌ ๋ชจ๋ ํ ๊ธ์ด ์๋ ๊ฒฝ์ฐ ๋ชจ๋๊ฐ ๋ณ๊ฒฝ๋ ๋ ์์ ฏ์ ์ฌ์ด๊ธฐํํ๊ฑฐ๋ ์๋์ ์ค๋ช ๋ body ํด๋์ค ๋ฐฉ์์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
๋์ ๋คํฌ ๋ชจ๋
์ฌ์ดํธ์ ๋คํฌ ๋ชจ๋๊ฐ body ์์์ .dark ํด๋์ค๋ฅผ ์ถ๊ฐํ์ฌ ์ ์ด๋๋ ๊ฒฝ์ฐ, Image Chat UI๋ ์ฌ์ด๊ธฐํ ์์ด๋ ์๋์ผ๋ก ์ด๋ฅผ ๋ฐ์ํฉ๋๋ค. ์์ ฏ์ ์คํ์ผ์ ์ด ํด๋์ค์ ์กด์ฌ์ ๋ฐ์ํ๋๋ก ์ค๊ณ๋์ด ์์ต๋๋ค.
/* ๋คํฌ ๋ชจ๋ CSS */
body.dark {
background: #1a1a1a;
color: #ffffff;
}
CSS๋ก ์ฌ์ฉ์ ์ง์ ์คํ์ผ
๋ง์ปค, ์ฑํ ์ฐฝ ๋ฐ ๊ธฐํ ์์์ ์ธํ์ CSS๋ก ์ฌ์ฉ์ ์ง์ ํ ์ ์์ต๋๋ค. ์์ ฏ์ ์คํ์ผ์ํธ์์ ํ๊น์ผ๋ก ์ผ์ ์ ์๋ ํน์ ํด๋์ค๋ฅผ ์ถ๊ฐํฉ๋๋ค.
์ฑํ ์ฌ๊ฐํ๊ณผ ์ฐฝ์ FastComments์ ๋๊ธ ๋ฒ๋ธ ์คํ์ผ ์์คํ ์ ์ฌ์ฉํ๋ฏ๋ก, ํ์ค ๋๊ธ ์์ ฏ์ ์ ์ฉํ ์ฌ์ฉ์ ์ง์ ์ด Image Chat์๋ ๋์ผํ๊ฒ ์ํฅ์ ๋ฏธ์นฉ๋๋ค.
์ฑํ ์ฌ๊ฐํ ํฌ๊ธฐ
chatSquarePercentage ์ต์
์ ํด๋ฆญ ๊ฐ๋ฅํ ๋ง์ปค์ ํฌ๊ธฐ๋ฅผ ์ ์ดํฉ๋๋ค. ๊ธฐ๋ณธ๊ฐ์ ์ด๋ฏธ์ง ๋๋น์ 5%์
๋๋ค:
FastCommentsImageChat(imageElement, {
tenantId: 'demo',
chatSquarePercentage: 7 // ๋ ํฌ๊ณ ๋ ๋์ ๋๋ ์ฌ๊ฐํ๋ค
});
๊ฐ์ด ์์์๋ก ์ด๋ฏธ์ง์ ๋ ์์ํ๊ฒ ๋ น์๋๋ ๋ง์ปค๊ฐ ์์ฑ๋ฉ๋๋ค. ๊ฐ์ด ํด์๋ก ํนํ ๋ชจ๋ฐ์ผ ๊ธฐ๊ธฐ๋ ์ ๊ทผ์ฑ ์ธก๋ฉด์์ ๋ง์ปค๊ฐ ๋ ๋์ ๋๊ณ ํด๋ฆญํ๊ธฐ ์ฌ์์ง๋๋ค.
๋ชจ๋ฐ์ผ ๋์
๊ฐ๋ก ํญ์ด 768px ๋ฏธ๋ง์ธ ํ๋ฉด์์๋ Image Chat์ด ์๋์ผ๋ก ๋ชจ๋ฐ์ผ ์ต์ ํ ๋ ์ด์์์ผ๋ก ์ ํ๋ฉ๋๋ค. ์ฑํ ์ฐฝ์ ๋ง์ปค ์์ ๋ ์๋ ๋์ ์ ์ฒด ํ๋ฉด์ผ๋ก ํ์๋์ด ์์ ํ๋ฉด์์ ๋ ๋์ ์ฌ์ฉ์ฑ์ ์ ๊ณตํฉ๋๋ค.
๋ง์ปค๋ ์ด๋ฏธ์ง์์ ๋ฐ์ํ ์์น์ ๊ทธ๋๋ก ํ์๋ฉ๋๋ค. ์ฌ์ฉ์๋ ์ด๋ค ๋ง์ปค๋ ํญํ์ฌ ์ ์ฒด ํ๋ฉด ์ฑํ ์ธํฐํ์ด์ค๋ฅผ ์ด ์ ์์ต๋๋ค. ์ด ๋์์ ๋ด์ฅ๋์ด ์์ผ๋ฉฐ ๋ณ๋์ ๊ตฌ์ฑ์ ํ์ํ์ง ์์ต๋๋ค.
์ฑํ ์ฐฝ ๋ชจ์
์ฑํ
์ฐฝ์ ๋ฐ์คํฌํฑ์์ ๊ฐ๋ก 300px์ด๊ณ , ๋ง์ปค๋ฅผ ๊ฐ๋ฆฌํค๋ 16px ํ์ดํ๊ฐ ์์ต๋๋ค. ์ฐฝ์ ์ฌ์ฉ ๊ฐ๋ฅํ ๋ทฐํฌํธ ๊ณต๊ฐ์ ๋ฐ๋ผ to-right, to-left, to-top, to-bottom ๊ฐ์ ํฌ์ง์
๋ ํด๋์ค๋ฅผ ์ฌ์ฉํ์ฌ ์๋์ผ๋ก ์์น๋ฅผ ์ ํฉ๋๋ค.
์ด ์ฐฝ๋ค์ ์์, ๊ธ๊ผด, ๊ฐ๊ฒฉ ๋๋ ๊ธฐํ ์๊ฐ์ ์์ฑ์ ์กฐ์ ํ๊ธฐ ์ํด ์ฌ์ฉ์ ์ง์ CSS๋ฅผ ์ถ๊ฐํ ์ ์์ต๋๋ค. ์ฑํ ์ฐฝ์ ํ์ค FastComments ์์ ฏ๊ณผ ๋์ผํ ์ปดํฌ๋ํธ ๊ตฌ์กฐ๋ฅผ ์ฌ์ฉํ๋ฏ๋ก ์ ์ญ์ ์ผ๋ก ์ ์ฉํ ์ฌ์ฉ์ ์ง์ ๋ ์์๋ฉ๋๋ค.
์ง์ฐ ์ด๊ธฐํ
์ฑํ ์ฐฝ์ ๋ฐ์คํฌํฑ ์ฌ์ฉ์์ ๊ฒฝ์ฐ ํธ๋ฒ ์ ๋๋ ์์ฑ๋ ๋ ์ฆ์ ์ด๊ธฐํ๋ฉ๋๋ค. ์ด๋ ์ฌ์ฉ์๊ฐ ์ค์ ๋ก ๋ง์ปค์ ์ํธ์์ฉํ ๋๋ง ์ฑํ ์ธํฐํ์ด์ค๋ฅผ ๋ ๋๋งํจ์ผ๋ก์จ ์ด๊ธฐ ๋ก๋ ์ค๋ฒํค๋๋ฅผ ์ค์ฌ์ค๋๋ค.
์ง์ฐ ์ด๊ธฐํ๋ ํฌ๋ช ํ๊ฒ ๋ฐ์ํฉ๋๋ค. ์ฌ์ฉ์๋ ์ง์ฐ์ ๋๋ผ์ง ์์ง๋ง, ์ด๋ฏธ์ง์ ๋ง์ปค๊ฐ ๋ง์ ๊ฒฝ์ฐ ๋ธ๋ผ์ฐ์ ๊ฐ ์์ญ ๊ฐ์ ์จ๊ฒจ์ง ์ฑํ ์ฐฝ์ ๋ ๋๋งํ ํ์๊ฐ ์์ต๋๋ค.
์ง์ญํ
Image Chat์ ํ์ค FastComments ์์ ฏ๊ณผ ๋์ผํ ๋ชจ๋ ์ง์ญํ ์ต์
์ ์ง์ํฉ๋๋ค. UI ํ
์คํธ๋ฅผ ๋ค๋ฅธ ์ธ์ด๋ก ํ์ํ๋ ค๋ฉด locale ์ต์
์ ์ค์ ํ์ธ์:
FastCommentsImageChat(imageElement, {
tenantId: 'demo',
locale: 'fr' // ํ๋์ค์ด
});
FastComments๋ ์์ญ ๊ฐ์ ์ธ์ด๋ฅผ ์ง์ํฉ๋๋ค. locale ์ค์ ์ ํ๋กฌํํธ, ๋ฒํผ, ํ๋ ์ด์คํ๋ ํ ์คํธ๋ฅผ ํฌํจํ ๋ชจ๋ UI ํ ์คํธ์ ์ํฅ์ ๋ฏธ์นฉ๋๋ค.
์์๋ ์ฌ์ฉ์ ์ง์ ์ต์
Image Chat์ ํ์ค ๋๊ธ ์์ ฏ์ ํ์ฅํ๋ฏ๋ก ๊ธฐ๋ณธ ์์ ฏ์ ๋ชจ๋ ์ฌ์ฉ์ ์ง์ ์ต์ ์ ์์ํฉ๋๋ค. ์ฌ๊ธฐ์๋ ์ฌ์ฉ์ ์ง์ CSS ํด๋์ค, ์ฌ์ฉ์ ์ง์ ๋ฒ์ญ, ์๋ฐํ ์ปค์คํฐ๋ง์ด์ง, ๋ ์ง ํฌ๋งทํ ๋ฑ ๋ง์ ํญ๋ชฉ์ด ํฌํจ๋ฉ๋๋ค.
์ฌ์ฉ ๊ฐ๋ฅํ ์ ์ฒด ์ฌ์ฉ์ ์ง์ ์ต์ ๋ชฉ๋ก์ FastComments์ ๋ฉ์ธ ์ปค์คํฐ๋ง์ด์ ์ด์ ๋ฌธ์๋ฅผ ์ฐธ์กฐํ์ธ์.
์ฌ์ฉ์ ์ ์ ํฐํธ ์ฌ์ฉ
์ฌ์ดํธ์์ ์ฌ์ฉ์ ์ ์ ํฐํธ๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ, Image Chat UI๋ ํ์ด์ง์ CSS์์ ํด๋น ํฐํธ๋ฅผ ์์ํฉ๋๋ค. ์ฑํ ์ฐฝ์ ํ์ด์ง์ DOM ์์์ ๋ ๋๋ง๋๋ฉฐ ๊ธฐ์กด ํ์ดํฌ๊ทธ๋ํผ ์ค์ ์ ์ค์ํฉ๋๋ค.
์ต์์ ๊ฒฐ๊ณผ๋ฅผ ์ํด Image Chat์ ์ด๊ธฐํํ๊ธฐ ์ ์ ์ฌ์ฉ์ ์ ์ ํฐํธ๊ฐ ๋ก๋๋์๋์ง ํ์ธํ๊ฑฐ๋, ํฐํธ ๋ก๋ ๋์ ์คํ์ผ์ด ์ ์ฉ๋์ง ์์ ํ ์คํธ๊ฐ ์ ๊น ๋ณด์ผ ์ ์์์ ์์ฉํ์ธ์.
๋ง์ปค ์๊ฐ ๋์์ธ
์ฌ๊ฐํ ๋ง์ปค๋ ์ด๋ฏธ์ง๋ฅผ ์๋ํ์ง ์์ผ๋ฉด์ ๋์ ๋๋๋ก ๋ฏธ๋ฌํ ์๊ฐ ๋์์ธ์ ๊ฐ์ง๊ณ ์์ต๋๋ค. ์ํ๋ ๊ฒฝ์ฐ CSS๋ก ๊ทธ๋ค์ ์ธ๊ด์ ์ฌ์ฉ์ ์ง์ ํ์ฌ ๋ค๋ฅธ ์๊ฐ์ ์ฒ๋ฆฌ๋ฅผ ์ ์ฉํ ์ ์์ต๋๋ค.
๋ง์ปค์๋ ์ฌ์ฉ์๊ฐ ๋ง์ฐ์ค๋ฅผ ์ฌ๋ฆด ๋ ํผ๋๋ฐฑ์ ์ ๊ณตํ๋ ํธ๋ฒ ์ํ๊ฐ ํฌํจ๋์ด ์์ต๋๋ค. ํฐ์น ์ฅ์น์์๋ ํญ ์ํธ์์ฉ์ด ์ฑํ ์ฐฝ์ ์ด์ด ์ฆ๊ฐ์ ์ธ ํผ๋๋ฐฑ์ ์ ๊ณตํฉ๋๋ค.
์ค์๊ฐ ๋๊ธฐํ 
Real-Time Updates
Image Chat์ ๋ชจ๋ ์ฐ๊ฒฐ๋ ์ฌ์ฉ์ ๊ฐ์ ๋ชจ๋ ๋ํ๋ฅผ ์ค์๊ฐ์ผ๋ก ๋๊ธฐํํ๊ธฐ ์ํด WebSocket ์ฐ๊ฒฐ์ ์ฌ์ฉํฉ๋๋ค. ๋๊ตฐ๊ฐ ์๋ก์ด ๋ง์ปค๋ฅผ ์์ฑํ๊ฑฐ๋ ๋๊ธ์ ์ถ๊ฐํ๊ฑฐ๋ ํ ๋ก ์ ์ญ์ ํ๋ฉด ๋์ผํ ์ด๋ฏธ์ง๋ฅผ ๋ณด๊ณ ์๋ ๋ค๋ฅธ ๋ชจ๋ ์ฌ์ฉ์๋ ์๋ก ๊ณ ์นจ ์์ด ์ฆ์ ์ ๋ฐ์ดํธ๋ฅผ ํ์ธํฉ๋๋ค.
How WebSocket Sync Works
Image Chat์ ์ด๊ธฐํํ๋ฉด ์์ ฏ์ด FastComments ์๋ฒ์ WebSocket ์ฐ๊ฒฐ์ ์ค์ ํฉ๋๋ค. ์ด ์ฐ๊ฒฐ์ ์ฌ์ฉ์์ ์ธ์ ๋์ ์ด๋ ค ์์ผ๋ฉฐ ํ์ฌ ์ด๋ฏธ์ง์ ๊ด๋ จ๋ ์ ๋ฐ์ดํธ๋ฅผ ์์ ๋๊ธฐํฉ๋๋ค.
WebSocket ์์คํ
์ Image Chat์ ์ํด ์ธ ๊ฐ์ง ์ ํ์ ๋ธ๋ก๋์บ์คํธ ๋ฉ์์ง๋ฅผ ์ฌ์ฉํฉ๋๋ค. new-image-chat ์ด๋ฒคํธ๋ ๋๊ตฐ๊ฐ ์ด๋ฏธ์ง์ ์ ๋ง์ปค๋ฅผ ์์ฑํ ๋ ๋ฐ์ํฉ๋๋ค. image-chat-updated ์ด๋ฒคํธ๋ ๋๊ตฐ๊ฐ ๊ธฐ์กด ๋ํ๋ฅผ ์
๋ฐ์ดํธํ ๋ ๋ฐ์ํฉ๋๋ค. deleted-image-chat ์ด๋ฒคํธ๋ ๋๊ตฐ๊ฐ ๋ง์ปค๋ฅผ ์ญ์ ํ ๋ ๋ฐ์ํฉ๋๋ค.
Broadcast ID System
์ฌ์ฉ์๊ฐ ์์ ์ ์์
์ด ๋ค์ ์์ ์๊ฒ ๋ธ๋ก๋์บ์คํธ๋์ด ์์ฝ ํจ๊ณผ๊ฐ ๋ฐ์ํ๋ ๊ฒ์ ๋ฐฉ์งํ๊ธฐ ์ํด ๊ฐ ์
๋ฐ์ดํธ์๋ ๊ณ ์ ํ broadcastId๊ฐ ํฌํจ๋ฉ๋๋ค. ์ฌ์ฉ์๊ฐ ๋ง์ปค๋ฅผ ์์ฑํ๊ฑฐ๋ ์
๋ฐ์ดํธํ ๋ ํด๋ผ์ด์ธํธ๋ ํด๋น ์์
์ ๋ํด UUID๋ฅผ ์์ฑํฉ๋๋ค. WebSocket์ด ์
๋ฐ์ดํธ๋ฅผ ๋ชจ๋ ํด๋ผ์ด์ธํธ์ ๋ค์ ๋ธ๋ก๋์บ์คํธํ ๋, ์๋ ์์
์ ์ํํ ํด๋ผ์ด์ธํธ๋ ์์ ์ broadcastId์ ์ผ์นํ๋ฏ๋ก ํด๋น ์
๋ฐ์ดํธ๋ฅผ ๋ฌด์ํฉ๋๋ค.
์ด๋ ๊ฒ ํ๋ฉด ์ฌ์ฉ์๋ ์๋ฒ๋ฅผ ํตํ ์๋ณต์ ๊ธฐ๋ค๋ฆฌ์ง ์๊ณ ๋ UI์์ ๋ณ๊ฒฝ ์ฌํญ์ ์ฆ์ ๋ณผ ์ ์์ผ๋ฉด์ ๋ค๋ฅธ ๋ชจ๋ ์ฌ์ฉ์์๊ฒ๋ ์ ๋ฐ์ดํธ๊ฐ ์ ๋ฌ๋๋๋ก ํ์ฌ ์ํํ ์ํธ์์ฉ์ ๋ณด์ฅํฉ๋๋ค.
Connection Resilience
๋คํธ์ํฌ ๋ฌธ์ ๋ ์๋ฒ ์ ์ง๋ณด์๋ก ์ธํด WebSocket ์ฐ๊ฒฐ์ด ๋๊ธฐ๋ฉด ์์ ฏ์ ์๋์ผ๋ก ์ฌ์ฐ๊ฒฐ์ ์๋ํฉ๋๋ค. ์ฌ์ฐ๊ฒฐ ๊ธฐ๊ฐ ๋์ ์ฌ์ฉ์๋ ๊ธฐ์กด ๋ง์ปค์ ์ํธ์์ฉํ ์ ์์ง๋ง ์ฐ๊ฒฐ์ด ๋ณต๊ตฌ๋ ๋๊น์ง ๋ค๋ฅธ ์ฌ์ฉ์์ ์ค์๊ฐ ์ ๋ฐ์ดํธ๋ ๋ณผ ์ ์์ต๋๋ค.
์ฌ์ฐ๊ฒฐ์ด ์๋ฃ๋๋ฉด ์์ ฏ์ ๋๋ฝ๋ ์ ๋ฐ์ดํธ๊ฐ ์๋๋ก ๋ค์ ๋๊ธฐํํฉ๋๋ค. ์ด ์์ ์ ์ฌ์ฉ์์ ๊ฐ์ ์์ด ํฌ๋ช ํ๊ฒ ๋ฐ์ํฉ๋๋ค.
Bandwidth Considerations
WebSocket ๋ฉ์์ง๋ ๊ฒฝ๋์ด๋ฉฐ ์ํ ๋๊ธฐํ์ ํ์ํ ํต์ฌ ์ ๋ณด๋ง ํฌํจํฉ๋๋ค. ์ ๋ง์ปค๋ฅผ ์์ฑํ๋ ๋ฐ ์ผ๋ฐ์ ์ผ๋ก 1KB ๋ฏธ๋ง์ ๋์ญํญ์ด ์ฌ์ฉ๋ฉ๋๋ค. ์์คํ ์ ๋ํ ํ๋์ด ๋ง์ ๊ธฐ๊ฐ ๋์ ๋ฉ์์ง ๋น๋๋ฅผ ์ค์ด๊ธฐ ์ํด ์ง๋ฅํ ๋ฐฐ์นญ์ ํฌํจํฉ๋๋ค.
FastComments ๋์๋ณด๋์ ์ฌ์ฉ๋ ์งํ๋ pubSubMessageCount ๋ฐ pubSubBandwidth๋ฅผ ์ถ์ ํ๋ฏ๋ก ์ฌ์ดํธ ์ ๋ฐ์ ์ค์๊ฐ ๋๊ธฐํ ํ๋์ ๋ชจ๋ํฐ๋งํ ์ ์์ต๋๋ค.
Cross-Tab Synchronization
์ฌ์ฉ์๊ฐ ๋์ผํ ํ์ด์ง๋ฅผ ์ฌ๋ฌ ๋ธ๋ผ์ฐ์ ํญ์์ ์ฐ ๊ฒฝ์ฐ ํ ํญ์ ์ ๋ฐ์ดํธ๊ฐ ๋ค๋ฅธ ํญ์ ์ฆ์ ํ์๋ฉ๋๋ค. ์ด๋ ๋์ผํ WebSocket ๋๊ธฐํ ๋ฉ์ปค๋์ฆ์ ํตํด ์๋ํ๋ฉฐ ์ถ๊ฐ ๊ตฌ์ฑ์ด ํ์ํ์ง ์์ต๋๋ค.
์ฌ์ฉ์๋ ์ฌ๋ฌ ๊ธฐ๊ธฐ์์ ๋์์ ์ฌ์ดํธ๋ฅผ ์ด์ด๋ ์ ์์ผ๋ฉฐ ๋ชจ๋ ๊ธฐ๊ธฐ๊ฐ ๋๊ธฐ ์ํ๋ฅผ ์ ์งํฉ๋๋ค. ๋ฐ์คํฌํ์์ ์์ฑ๋ ๋ง์ปค๋ ๋ ๊ธฐ๊ธฐ ๋ชจ๋ ๋์ผํ ์ด๋ฏธ์ง๋ฅผ ๋ณด๊ณ ์๋ ๊ฒฝ์ฐ ์ฌ์ฉ์์ ํ๋ธ๋ฆฟ์ ์ฆ์ ํ์๋ฉ๋๋ค.
Security
WebSocket ๋ฉ์์ง๋ ๋ณด์ ์ฐ๊ฒฐ(WSS)์ ํตํด ์ ์ก๋๋ฉฐ, ์ฌ์ฉ์๊ฐ ๊ถํ์ด ์๋ ๋ํ์ ๋ํด์๋ง ์ ๋ฐ์ดํธ๋ฅผ ๋ฐ๋๋ก ํ ๋ํธ ๊ฒ์ฆ์ด ํฌํจ๋ฉ๋๋ค. ์๋ฒ๋ ๋ธ๋ก๋์บ์คํธํ๊ธฐ ์ ์ ๋ชจ๋ ์์ ์ ๊ฒ์ฆํ์ฌ ๋ฌด๋จ ์ก์ธ์ค๋ ์กฐ์์ ๋ฐฉ์งํฉ๋๋ค.
Offline Behavior
์ฌ์ฉ์๊ฐ ์์ ํ ์คํ๋ผ์ธ์ธ ๊ฒฝ์ฐ ๊ธฐ์กด ๋ง์ปค๋ ์ฌ์ ํ ๋ณผ ์ ์์ง๋ง ์ ๋ง์ปค๋ฅผ ์์ฑํ๊ฑฐ๋ ๋ค๋ฅธ ์ฌ์ฉ์์ ์ ๋ฐ์ดํธ๋ฅผ ๋ณผ ์๋ ์์ต๋๋ค. ์์ ฏ์ ์คํ๋ผ์ธ ์ํ๋ฅผ ๊ฐ์งํ๊ณ ์ ์ ํ ๋ฉ์์ง๋ฅผ ํ์ํฉ๋๋ค.
์ฌ์ฉ์๊ฐ ์คํ๋ผ์ธ ์ํ์์ ๋ง์ปค๋ฅผ ์์ฑํ๋ ค ์๋ํ ํ ์จ๋ผ์ธ์ผ๋ก ๋์์ค๋ฉด ํด๋น ์์ ์ ํ์ ๋ณด๊ด๋๋ ๋์ ์คํจํฉ๋๋ค. ์ด๋ ๋ฐ์ดํฐ ์ผ๊ด์ฑ์ ๋ณด์ฅํ๊ธฐ ์ํจ์ ๋๋ค. ์ฌ์ฉ์๋ ์ฐ๊ฒฐ์ด ๋ณต์๋ ํ ์์ ์ ๋ค์ ์๋ํด์ผ ํฉ๋๋ค.
Performance Impact
WebSocket ์ฐ๊ฒฐ์ ์ฑ๋ฅ์ ๋ฏธ์น๋ ์ํฅ์ด ์ต์์ ๋๋ค. ์ ๋ฐ์ดํธ๊ฐ ๋ฐ์ํ์ง ์์ ๋ ์ฐ๊ฒฐ์ ์ ํด ์ํ๋ฅผ ์ ์งํ๋ฉฐ ํ๋์ด ๋ฐ์ํ ๋๋ง ๋ฉ์์ง๋ฅผ ์ฒ๋ฆฌํฉ๋๋ค. ์ค๊ฐ ์์ค์ ๋ง์ปค ํ๋์ด ์๋ ์ผ๋ฐ์ ์ธ ์ด๋ฏธ์ง์ ๊ฒฝ์ฐ WebSocket์ ์ด๋ฏธ์ง ์์ฒด๋ฅผ ๋ ๋๋งํ๋ ๊ฒ๋ณด๋ค ์ ์ CPU๋ฅผ ์ฌ์ฉํฉ๋๋ค.
์๋ฐฑ ๋ช ์ด ๋์์ ์ ์ํ๊ณ ๋ง์ปค ์์ฑ ํ๋์ด ๋ง์ ํ์ด์ง์ ๊ฒฝ์ฐ ์์คํ ์ ๊ฐ๋ณ ํด๋ผ์ด์ธํธ ์ฐ๊ฒฐ์ ์ํฅ์ ์ฃผ์ง ์์ผ๋ฉด์ ์ฑ๋ฅ์ ์ ์งํ๋๋ก ์ํ์ ์ผ๋ก ํ์ฅ๋ฉ๋๋ค.
Collaborative Use Cases
์ค์๊ฐ ๋๊ธฐํ๋ Image Chat์ ๊ณต๋ ์์ ์ํฌํ๋ก์ ํนํ ๊ฐ๋ ฅํ๊ฒ ๋ง๋ญ๋๋ค. ๋์์ธ ํ์ ๋ชจ๋๊ฐ ๋ง์ปค ๋ฐฐ์น๋ฅผ ์ค์๊ฐ์ผ๋ก ๋ณด๋ฉด์ ๋ชฉ์ ์ ํจ๊ป ๊ฒํ ํ ์ ์์ต๋๋ค. ๊ณ ๊ฐ ์ง์ ํ์ ๋ฌธ์ ๋ฅผ ์๋ณํ๊ธฐ ์ํด ์คํฌ๋ฆฐ์ท์ ๊ณต๋์ผ๋ก ์ฃผ์์ ๋ฌ ์ ์์ต๋๋ค. ๊ต์ก ๊ทธ๋ฃน์ ๋ชจ๋ ์ฐธ๊ฐ์๊ฐ ์์ฑ๋๋ ๊ฐ์์ ๋ง์ปค๋ฅผ ๋ณด๋ฉด์ ๋ค์ด์ด๊ทธ๋จ์ ํ ๋ก ํ ์ ์์ต๋๋ค.
์ฆ๊ฐ์ ์ธ ํผ๋๋ฐฑ์ ์ฌ์ฉ์๊ฐ ์ ๋ฐ์ดํธ๋ฅผ ๋ณด๊ธฐ ์ํด ์๋ก ๊ณ ์นจํด์ผ ํ๋ ์ ํต์ ์ธ ๋๊ธ ์์คํ ์ ๋นํด ๋ ๋ชฐ์ ๊ฐ ์๊ณ ์์ฐ์ ์ธ ํ์ ๊ฒฝํ์ ๋ง๋ญ๋๋ค.
API ์ฐธ์กฐ 
API ๊ฐ์
Image Chat๋ ์ด๋ฏธ์ง ๋ํ๋ฅผ ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ์์ผ๋ก ๊ด๋ฆฌํ ์ ์๋ ์ธ ๊ฐ์ง REST API ์๋ํฌ์ธํธ๋ฅผ ์ ๊ณตํฉ๋๋ค. ์ด ์๋ํฌ์ธํธ๋ฅผ ์ฌ์ฉํ๋ฉด ๋ธ๋ผ์ฐ์ ์์ ฏ์ ์ฌ์ฉํ์ง ์๊ณ ๋ ๋ง์ปค๋ฅผ ๊ฒ์, ์์ฑ ๋ฐ ์ญ์ ํ ์ ์์ต๋๋ค.
๋ชจ๋ API ์๋ํฌ์ธํธ๋ ์ธ์ฆ์ด ํ์ํ๋ฉฐ ํ์ค FastComments API ํจํด์ ๋ฐ๋ฆ ๋๋ค. ์ด๋ฌํ ์๋ํฌ์ธํธ๋ API ํค๊ฐ ์๋ ๋ธ๋ผ์ฐ์ ์ฟ ํค๋ฅผ ํตํด ์ธ์ฆ๋๋ ๊ณต๊ฐ ์๋ํฌ์ธํธ์ ๋๋ค.
๊ธฐ๋ณธ URL
๋ชจ๋ Image Chat API ์๋ํฌ์ธํธ๋ ๋ค์ ํ์์ ์์ต๋๋ค:
https://fastcomments.com/comment-image-chats์ธ์ฆ
์ด ์๋ํฌ์ธํธ๋ค์ ๋ธ๋ผ์ฐ์ ์ฟ ํค๋ฅผ ํตํด ์ฌ์ฉ์๋ฅผ ์ธ์ฆํฉ๋๋ค. API ํค๋ฅผ ์ฌ์ฉํ์ง ์์ต๋๋ค. ์ฌ์ฉ์๋ ๋ธ๋ผ์ฐ์ ์์ FastComments์ ๋ก๊ทธ์ธ๋์ด ์์ด์ผ ์ด ์๋ํฌ์ธํธ์ ์ ๊ทผํ ์ ์์ต๋๋ค.
๋ชจ๋ ๋ํ ๊ฐ์ ธ์ค๊ธฐ
ํน์ ์ด๋ฏธ์ง์ ๋ํ ๋ชจ๋ ์ด๋ฏธ์ง ๋ํ๋ฅผ ๊ฐ์ ธ์ต๋๋ค.
์๋ํฌ์ธํธ
GET /comment-image-chats/:tenantId?urlId=<urlId>๋งค๊ฐ๋ณ์
tenantId (๊ฒฝ๋ก ๋งค๊ฐ๋ณ์, ํ์)๋ ๊ทํ์ FastComments Tenant ID์
๋๋ค.
urlId (์ฟผ๋ฆฌ ๋งค๊ฐ๋ณ์, ํ์)๋ ๋ํ๋ฅผ ๊ฒ์ํ๋ ค๋ ์ด๋ฏธ์ง ์๋ณ์์
๋๋ค.
์๋ต
์๋ต์๋ API ์ํ, ์ธ์ฆ๋ ๊ฒฝ์ฐ ํ์ฌ ์ฌ์ฉ์ ์ธ์
์ ๋ณด, ID, URL ๋ฐ X/Y ์ขํ๊ฐ ํฌํจ๋ ๋ํ ๋ชฉ๋ก ๋ฐฐ์ด, ์ ๋ฆฌ๋ URL ์๋ณ์, ํ์ฌ ์ฌ์ฉ์๊ฐ ์ฌ์ดํธ ๊ด๋ฆฌ์ ๋๋ ์ค์ฌ์์ธ์ง ์ฌ๋ถ๋ฅผ ๋ํ๋ด๋ ํ๋๊ทธ, ๋ผ์ด๋ธ ๋๊ธฐํ๋ฅผ ์ํ WebSocket ์ฐ๊ฒฐ ์ธ๋ถ์ ๋ณด(tenantIdWS, urlIdWS, userIdWS)๊ฐ ํฌํจ๋ฉ๋๋ค.
์์ ์์ฒญ
curl "https://fastcomments.com/comment-image-chats/demo?urlId=my-product-image" \
--cookie "your-session-cookie"
์์ ์๋ต
{
"status": "success",
"user": {
"id": "user123",
"username": "john_doe"
},
"conversations": [
{
"_id": "conv123",
"urlId": "my-product-image:/images/product.jpg:25:30",
"x": 25.5,
"y": 30.2
},
{
"_id": "conv456",
"urlId": "my-product-image:/images/product.jpg:60:45",
"x": 60.8,
"y": 45.1
}
],
"urlIdClean": "my-product-image",
"isSiteAdmin": false,
"tenantIdWS": "demo",
"urlIdWS": "my-product-image",
"userIdWS": "user123"
}
๋ํ ์์ฑ
์ด๋ฏธ์ง์ ํน์ ์์น์ ๋ํ ์ ์ด๋ฏธ์ง ๋ํ๋ฅผ ์์ฑํฉ๋๋ค.
์๋ํฌ์ธํธ
POST /comment-image-chats/:tenantId๋งค๊ฐ๋ณ์
tenantId (๊ฒฝ๋ก ๋งค๊ฐ๋ณ์, ํ์)๋ ๊ทํ์ FastComments Tenant ID์
๋๋ค.
์์ฒญ ๋ณธ๋ฌธ์ JSON์ด์ด์ผ ํ๋ฉฐ ๋ค์ ํ์ ํ๋๋ฅผ ํฌํจํด์ผ ํฉ๋๋ค.
urlId (string, ํ์)๋ ๊ธฐ๋ณธ ํ์ด์ง ์๋ณ์์
๋๋ค.
windowUrlId (string, ํ์)๋ ์ด๋ฏธ์ง ์์ค์ ์ขํ๊ฐ ๊ฒฐํฉ๋ URL๋ก ์: my-page:/images/photo.jpg:25.5:30.2.
pageTitle (string, ํ์)๋ ํ์ด์ง ์ ๋ชฉ์
๋๋ค.
src (string, ํ์)๋ ์ด๋ฏธ์ง ์์ค URL์
๋๋ค.
x (number, ํ์)๋ ์ด๋ฏธ์ง ๋๋น ๋๋น X ์ขํ์ ๋ฐฑ๋ถ์จ(0-100)์
๋๋ค.
y (number, ํ์)๋ ์ด๋ฏธ์ง ๋์ด ๋๋น Y ์ขํ์ ๋ฐฑ๋ถ์จ(0-100)์
๋๋ค.
createdFromCommentId (string, ํ์)๋ ์ด ์ฑํ
์ ์์ํ ๋๊ธ์ ID์
๋๋ค.
broadcastId (string, ํ์)๋ ์์ฝ ํจ๊ณผ๋ฅผ ๋ฐฉ์งํ๊ธฐ ์ํ ๋ผ์ด๋ธ ๋๊ธฐํ์ฉ UUID์
๋๋ค.
์๋ต
์๋ต์๋ API ์ํ์ ์๋ก ์์ฑ๋ ๋ํ์ ID๊ฐ ํฌํจ๋ฉ๋๋ค.
์์ ์์ฒญ
curl -X POST "https://fastcomments.com/comment-image-chats/demo" \
--cookie "your-session-cookie" \
-H "Content-Type: application/json" \
-d '{
"urlId": "my-product-image",
"windowUrlId": "my-product-image:/images/product.jpg:25.5:30.2",
"pageTitle": "Product Gallery",
"src": "/images/product.jpg",
"x": 25.5,
"y": 30.2,
"createdFromCommentId": "comment789",
"broadcastId": "550e8400-e29b-41d4-a716-446655440000"
}'
์์ ์๋ต
{
"status": "success",
"createdChatId": "conv789"
}
๋ํ ์ญ์
๊ธฐ์กด ์ด๋ฏธ์ง ๋ํ๋ฅผ ์ญ์ ํฉ๋๋ค. ์ด ์๋ํฌ์ธํธ๋ ๊ด๋ฆฌ์ ๋๋ ์ค์ฌ์ ๊ถํ์ด ํ์ํ๊ฑฐ๋, ์ธ์ฆ๋ ์ฌ์ฉ์๊ฐ ์์ฑํ ๋ํ์ฌ์ผ ํฉ๋๋ค.
์๋ํฌ์ธํธ
DELETE /comment-image-chats/:tenantId/:chatId๋งค๊ฐ๋ณ์
tenantId (๊ฒฝ๋ก ๋งค๊ฐ๋ณ์, ํ์)๋ ๊ทํ์ FastComments Tenant ID์
๋๋ค.
chatId (๊ฒฝ๋ก ๋งค๊ฐ๋ณ์, ํ์)๋ ์ญ์ ํ ๋ํ์ ID์
๋๋ค.
broadcastId (์์ฒญ ๋ณธ๋ฌธ, ํ์)๋ ๋ผ์ด๋ธ ๋๊ธฐํ์ฉ UUID์
๋๋ค.
์์ ์์ฒญ
curl -X DELETE "https://fastcomments.com/comment-image-chats/demo/conv789" \
--cookie "your-session-cookie" \
-H "Content-Type: application/json" \
-d '{
"broadcastId": "550e8400-e29b-41d4-a716-446655440001"
}'
์์ ์๋ต
{
"status": "success"
}
์ขํ ์์คํ
X ๋ฐ Y ์ขํ๋ ์ด๋ฏธ์ง ์น์์ ๋ํ ๋ฐฑ๋ถ์จ๋ก ์ ์ฅ๋ฉ๋๋ค. X๋ ์ผ์ชฝ ๊ฐ์ฅ์๋ฆฌ์์์ ์ํ ์์น๋ฅผ ๋ํ๋ ๋๋ค(0 = ์ผ์ชฝ ๊ฐ์ฅ์๋ฆฌ, 100 = ์ค๋ฅธ์ชฝ ๊ฐ์ฅ์๋ฆฌ). Y๋ ์์ชฝ ๊ฐ์ฅ์๋ฆฌ์์์ ์์ง ์์น๋ฅผ ๋ํ๋ ๋๋ค(0 = ์์ชฝ ๊ฐ์ฅ์๋ฆฌ, 100 = ์๋์ชฝ ๊ฐ์ฅ์๋ฆฌ).
์ด๋ฌํ ๋ฐฑ๋ถ์จ ๊ฐ์ ์ ๋ฐ๋๋ฅผ ์ํด ์์์ ์ ํฌํจํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด x: 25.5๋ ์ด๋ฏธ์ง ์ผ์ชฝ ๊ฐ์ฅ์๋ฆฌ๋ก๋ถํฐ 25.5% ์์น๋ฅผ ์๋ฏธํฉ๋๋ค.
์๋ ์ ํ
์ด ์๋ํฌ์ธํธ๋ค์ ํ์ค FastComments API ์๋ ์ ํ์ ์ ์ฉ์ ๋ฐ์ต๋๋ค. ๋ ์ดํธ ๋ฆฌ๋ฐ ๋ฏธ๋ค์จ์ด๋ ์ ์์ ์ธ ์ฌ์ฉ ํจํด์ ํ์ฉํ๋ฉด์ ๋จ์ฉ์ ๋ฐฉ์งํ๊ธฐ ์ํด ํ ๋ํธ๋ณ๋ก ์ ์ฉ๋ฉ๋๋ค.
์ค๋ฅ ์๋ต
๋ชจ๋ ์๋ํฌ์ธํธ๋ ํ์ค HTTP ์ํ ์ฝ๋๋ฅผ ๋ฐํํฉ๋๋ค. 400 ์๋ต์ ์๋ชป๋ ์์ฒญ ๋งค๊ฐ๋ณ์๋ฅผ ๋ํ๋ ๋๋ค. 401 ์๋ต์ ์ธ์ฆ ์คํจ๋ฅผ ์๋ฏธํฉ๋๋ค. 403 ์๋ต์ ๊ถํ ๋ถ์กฑ์ ๋ํ๋ ๋๋ค. 404 ์๋ต์ ๋ํ๋ฅผ ์ฐพ์ ์ ์์์ ์๋ฏธํฉ๋๋ค. 429 ์๋ต์ ์๋ ์ ํ ์ด๊ณผ๋ฅผ ์๋ฏธํฉ๋๋ค.
์ค๋ฅ ์๋ต์๋ ์ธ๋ถ ์ ๋ณด๋ฅผ ํฌํจํ JSON ๋ณธ๋ฌธ์ด ํฌํจ๋ฉ๋๋ค:
{
"status": "error",
"message": "Conversation not found"
}
์ฌ์ฉ๋ ์ถ์
๋ํ๋ฅผ ์์ฑํ๋ฉด conversationCreateCount ์ฌ์ฉ๋ ๋ฉํธ๋ฆญ์ด ์ฆ๊ฐํฉ๋๋ค. ๋ชจ๋ WebSocket ๋๊ธฐํ ํ๋์ pubSubMessageCount ๋ฐ pubSubBandwidth๋ฅผ ์ฆ๊ฐ์ํต๋๋ค. ์ด๋ฌํ ๋ฉํธ๋ฆญ์ FastComments ๋์๋ณด๋์ ์ฌ์ฉ ๋ถ์์์ ๋ชจ๋ํฐ๋งํ ์ ์์ต๋๋ค.
๊ถ๊ธํ ์ ์ด ์์ผ์ ๊ฐ์?
FastComments Image Chat์ ๋ํ ์ค๋ช ์ ์ฌ๊ธฐ๊น์ง์ ๋๋ค! ์ง๋ฌธ์ด ์๊ฑฐ๋ ๊ตฌํ์ ๋์์ด ํ์ํ๊ฑฐ๋ ๊ธฐ๋ฅ ์ ์์ด ์์ผ์๋ฉด ์๋์ ์๋ ค์ฃผ์๊ฑฐ๋ ์ง์ํ์ ๋ฌธ์ํด ์ฃผ์ธ์.
์ค์ ๋์ํ๋ Image Chat์ ๋ณด๋ ค๋ฉด ๋ฐ๋ชจ ํ์ด์ง์ ๋ผ์ด๋ธ ๋ฐ๋ชจ๋ฅผ ํ์ธํ์ธ์.