FastComments.com Blog
๐Ÿ‡ฐ๐Ÿ‡ท โ–ผ
๐Ÿ‡บ๐Ÿ‡ธ
English
English
๐Ÿ‡ง๐Ÿ‡ฌ
ะ‘ัŠะปะณะฐั€ัะบะธ
Bulgarian (Bulgaria)
๐Ÿ‡จ๐Ÿ‡ณ
็ฎ€ไฝ“ไธญๆ–‡
Chinese (Simplified)
๐Ÿ‡น๐Ÿ‡ผ
็น้ซ”ไธญๆ–‡
Chinese (Traditional)
๐Ÿ‡ญ๐Ÿ‡ท
Hrvatski
Croatian (Croatia)
๐Ÿ‡ฉ๐Ÿ‡ฐ
Dansk
Danish
๐Ÿ‡ณ๐Ÿ‡ฑ
Nederlands
Dutch
๐Ÿ‡บ๐Ÿ‡ธ
English (US)
English (North America)
๐Ÿ‡จ๐Ÿ‡ฆ
Franรงais (Canada)
French (Canada)
๐Ÿ‡ซ๐Ÿ‡ท
Franรงais (France)
French (France)
๐Ÿ‡ฉ๐Ÿ‡ช
Deutsch
German (Germany)
๐Ÿ‡จ๐Ÿ‡พ
ฮ•ฮปฮปฮทฮฝฮนฮบฮฌ (ฮšฯฯ€ฯฮฟฯ‚)
Greek (Cyprus)
๐Ÿ‡ฌ๐Ÿ‡ท
ฮ•ฮปฮปฮทฮฝฮนฮบฮฌ
Greek (Greece)
๐Ÿ‡ฎ๐Ÿ‡ฑ
ืขื‘ืจื™ืช
Hebrew
๐Ÿ‡ฎ๐Ÿ‡น
Italiano
Italian (Italy)
๐Ÿ‡ฏ๐Ÿ‡ต
ๆ—ฅๆœฌ่ชž
Japanese (Japan)
๐Ÿ‡ฐ๐Ÿ‡ท
ํ•œ๊ตญ์–ด
Korean (Korea)
๐Ÿ‡ต๐Ÿ‡ฑ
Polski
Polish (Poland)
๐Ÿ‡ง๐Ÿ‡ท
Portuguรชs (Brasil)
Portuguese (Brazilian)
๐Ÿ‡ท๐Ÿ‡บ
ะ ัƒััะบะธะน
Russian (Russia)
๐Ÿ‡บ๐Ÿ‡ฆ
ะ ัƒััะบะธะน (ะฃะบั€ะฐะธะฝะฐ)
Russian (Ukraine)
๐Ÿ‡ง๐Ÿ‡ฆ
ะกั€ะฟัะบะธ (ะ‘ะธะฅ)
Serbian (Bosnia & Herzegovina)
๐Ÿ‡ท๐Ÿ‡ธ
Srpski (Latinica)
Serbian (Latin Serbia)
๐Ÿ‡ฒ๐Ÿ‡ช
ะกั€ะฟัะบะธ (ะฆั€ะฝะฐ ะ“ะพั€ะฐ)
Serbian (Montenegro)
๐Ÿ‡ท๐Ÿ‡ธ
ะกั€ะฟัะบะธ
Serbian (Serbia)
๐Ÿ‡ธ๐Ÿ‡ฎ
Slovenลกฤina
Slovenian (Slovenia)
๐Ÿ‡ช๐Ÿ‡ธ
Espaรฑol
Spanish (Spain)
๐Ÿ‡บ๐Ÿ‡ฆ
ะฃะบั€ะฐั—ะฝััŒะบะฐ
Ukrainian (Ukraine)
๐Ÿ‡น๐Ÿ‡ท
Tรผrkรงe
Turkish (Turkey)
follow us in feedly

Mon Apr 13 2020
...

FastComments๋กœ SSO ์„ค์ •ํ•˜๊ธฐ

๊ฐœ์š”

SSO๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?

SSO(์‹ฑ๊ธ€ ์‚ฌ์ธ์˜จ)๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์ถ”๊ฐ€ ๊ณ„์ •์„ ๋งŒ๋“ค ํ•„์š” ์—†์ด FastComments๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ—ˆ์šฉํ•˜๋Š” ์ผ๋ จ์˜ ๊ทœ์น™์ž…๋‹ˆ๋‹ค.

์ต๋ช… ๋Œ“๊ธ€ ์ž‘์„ฑ์„ ํ—ˆ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ FastComments๋กœ ๋Œ“๊ธ€์„ ๋‹ฌ๋ ค๋ฉด ๊ณ„์ •์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์ €ํฌ๋Š” ์ด ๊ฐ€์ž… ํ”„๋กœ์„ธ์Šค๋ฅผ ๋งค์šฐ ์‰ฝ๊ฒŒ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค - ์‚ฌ์šฉ์ž๋Š” ๋Œ“๊ธ€์„ ๋‹ฌ ๋•Œ ์ด๋ฉ”์ผ๋งŒ ๋‚จ๊ธฐ๋ฉด ๋ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ, ์ €ํฌ๋Š” ์ผ๋ถ€ ์‚ฌ์ดํŠธ๊ฐ€ ์ด๋ฅผ ํ”ผํ•˜๊ณ  ์‹ถ์–ด ํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์ดํ•ดํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์–ด๋–ป๊ฒŒ ์–ป์„ ์ˆ˜ ์žˆ๋‚˜์š”?

๋ชจ๋“  ๊ณ„์ • ์œ ํ˜•์€ ํ˜„์žฌ SSO์™€ ์ง€์›์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ SSO ์‚ฌ์šฉ์ž ์ตœ๋Œ€ ์ˆ˜๋Š” ํŒจํ‚ค์ง€์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์ง‘๋‹ˆ๋‹ค.

WordPress ์‚ฌ์šฉ์ž

์ €ํฌ WordPress ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์‚ฌ์šฉ ์ค‘์ด๋ผ๋ฉด ์ฝ”๋“œ ์ž‘์„ฑ์ด ํ•„์š” ์—†์Šต๋‹ˆ๋‹ค! ํ”Œ๋Ÿฌ๊ทธ์ธ์˜ ๊ด€๋ฆฌ์ž ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•˜์—ฌ SSO ์„ค์ •์„ ํด๋ฆญํ•œ ํ›„ ํ™œ์„ฑํ™”๋ฅผ ๋ˆŒ๋Ÿฌ์ฃผ์„ธ์š”.

์ด๊ฒƒ์€ API ํ‚ค๋ฅผ ์ƒ์„ฑํ•˜๊ณ  WordPress ์„ค์น˜๋กœ ์ „์†กํ•˜์—ฌ SSO๋ฅผ ์ผœ๋Š” ๋‹จ์ผ ๋ฒ„ํŠผ ํด๋ฆญ ๋งˆ๋ฒ•์‚ฌ๋กœ ์•ˆ๋‚ดํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๊ท€ํ•˜๋ฅผ ์œ„ํ•ด ๋‹จ์ผ ๋ฒ„ํŠผ ํด๋ฆญ์œผ๋กœ ํ†ตํ•ฉํ–ˆ์Šต๋‹ˆ๋‹ค.

ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์ฒ˜์Œ ์„ค์น˜ํ•˜๋Š” ๊ฒฝ์šฐ SSO ์„ค์ • ๋ฒ„ํŠผ์ด ์žˆ๋Š” ๊ด€๋ฆฌ์ž ํŽ˜์ด์ง€๋ฅผ ๋ณด๋ ค๋ฉด ์„ค์ • ํ”„๋กœ์„ธ์Šค๋ฅผ ์™„๋ฃŒํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋งž์ถคํ˜• ํ†ตํ•ฉ

FastComments SSO๋Š” SSO๋ฅผ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•œ ๋ฉ”์ปค๋‹ˆ์ฆ˜์œผ๋กœ HMAC-SHA256 ์•”ํ˜ธํ™”๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋จผ์ € ์ „์ฒด ์•„ํ‚คํ…์ฒ˜ ๊ฐœ์š”๋ฅผ ์„ค๋ช…ํ•˜๊ณ , ์˜ˆ์ œ์™€ ์ž์„ธํ•œ ๋‹จ๊ณ„๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด ๋ฌธ์„œ ๋์—๋Š” Disqus ๋ฐ Commento์—์„œ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์•ˆ๋‚ด๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

ํ๋ฆ„์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค:

FastComments SSO ๋‹ค์ด์–ด๊ทธ๋žจ

FastComments SSO์™€ ํ•จ๊ป˜ ์ƒˆ API ์—”๋“œํฌ์ธํŠธ๋ฅผ ์ž‘์„ฑํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž์˜ ์ •๋ณด๋ฅผ ๋น„๋ฐ€ ํ‚ค๋กœ ์•”ํ˜ธํ™”ํ•˜๊ณ  ํŽ˜์ด๋กœ๋“œ๋ฅผ ๋Œ“๊ธ€ ์œ„์ ฏ์— ์ „๋‹ฌํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

NodeJS, Java/Spring, ๊ธฐ๋ณธ PHP๋ฅผ ํฌํ•จํ•œ ์—ฌ๋Ÿฌ ์–ธ์–ด/๋Ÿฐํƒ€์ž„์—์„œ ์™„์ „ํžˆ ์ž‘๋™ํ•˜๋Š” ์ฝ”๋“œ ์˜ˆ์ œ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. NodeJS ์˜ˆ์ œ์—์„œ๋Š” ExpressJS๋ฅผ ์‚ฌ์šฉํ•˜์ง€๋งŒ Java ์˜ˆ์ œ์—์„œ๋Š” Spring์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์œผ๋ฉฐ, ์ด๋Ÿฌํ•œ ๋Ÿฐํƒ€์ž„์—์„œ FastComments SSO๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ํ”„๋ ˆ์ž„์›Œํฌ/๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ์—†์Šต๋‹ˆ๋‹ค - ๊ธฐ๋ณธ crypto ํŒจํ‚ค์ง€๋กœ ์ถฉ๋ถ„ํ•ฉ๋‹ˆ๋‹ค.

์ฝ”๋“œ ์˜ˆ์ œ ์ €์žฅ์†Œ๋Š” ๋‹ค์Œ์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:

FastComments SSO ์ฝ”๋“œ ์˜ˆ์ œ

API ๋น„๋ฐ€ ํ‚ค ๊ฐ€์ ธ์˜ค๊ธฐ

๊ท€ํ•˜์˜ API ๋น„๋ฐ€ ํ‚ค๋Š” ์ด ํŽ˜์ด์ง€์—์„œ ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. My Account๋กœ ์ด๋™ํ•˜์—ฌ API/SSO ํƒ€์ผ์„ ํด๋ฆญํ•œ ํ›„ "API ๋น„๋ฐ€ ํ‚ค ๊ฐ€์ ธ์˜ค๊ธฐ"๋ฅผ ํด๋ฆญํ•˜์—ฌ ์ด ํŽ˜์ด์ง€๋ฅผ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋Œ“๊ธ€ ์œ„์ ฏ ๋งค๊ฐœ๋ณ€์ˆ˜

๋Œ“๊ธ€ ์œ„์ ฏ์— ๋Œ€ํ•œ ๊ณ ์ˆ˜์ค€ API ๋ฌธ์„œ๋Š” ์—ฌ๊ธฐ์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, "๊ณ ๊ธ‰ ์˜ต์…˜ ํ‘œ์‹œ"๋ฅผ ํด๋ฆญํ•˜์„ธ์š”. ํŽ˜์ด์ง€์—์„œ SSO๋ฅผ ๊ฒ€์ƒ‰ํ•˜์„ธ์š”.

์ด ๋งค๊ฐœ๋ณ€์ˆ˜๋“ค์ด ์˜๋ฏธํ•˜๋Š” ๋ฐ”์— ๋Œ€ํ•ด ์ž์„ธํžˆ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

๋Œ“๊ธ€ ์œ„์ ฏ์€ ๊ตฌ์„ฑ ๊ฐ์ฒด๋ฅผ ๊ฐ€์ ธ๊ฐ‘๋‹ˆ๋‹ค - FastComments๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ณ ๊ฐ ID(tenantId๋ผ๊ณ  ํ•จ)๋ฅผ ์ „๋‹ฌํ•˜๋ฉด ์ด๋ฏธ ์ด ๊ฐ’์„ ์ „๋‹ฌํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

SSO๋ฅผ ํ™œ์„ฑํ™”ํ•˜๋ ค๋ฉด ์ƒˆ "sso" ๊ฐ์ฒด๋ฅผ ์ „๋‹ฌํ•˜์„ธ์š”. ์ด ๊ฐ์ฒด๋Š” ๋‹ค์Œ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ๊ฐ€์ ธ์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ’์€ ์„œ๋ฒ„ ์ธก์—์„œ ์ƒ์„ฑ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  • userDataJSONBase64: ์‚ฌ์šฉ์ž์˜ JSON ํ˜•์‹ ๋ฐ์ดํ„ฐ, ์ดํ›„ Base64๋กœ ์ธ์ฝ”๋”ฉ๋จ.
  • verificationHash: UNIX_TIME + userDataJSONBase64๋กœ ์ƒ์„ฑ๋œ HMAC-SHA256 ํ•ด์‹œ.
  • timestamp: ํ˜„์žฌ ์œ ๋‹‰์Šค ์‹œ๊ฐ„. ๋ฏธ๋ž˜์˜ ์‹œ๊ฐ„์ด๊ฑฐ๋‚˜ ๊ณผ๊ฑฐ 3์‹œ๊ฐ„์„ ์ดˆ๊ณผํ•ด์„œ๋Š” ์•ˆ ๋ฉ๋‹ˆ๋‹ค.
  • loginURL: ๋Œ“๊ธ€ ์œ„์ ฏ์ด ์‚ฌ์šฉ์ž๋ฅผ ๋กœ๊ทธ์ธ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋Š” URL.
  • logoutURL: ๋Œ“๊ธ€ ์œ„์ ฏ์ด ์‚ฌ์šฉ์ž๋ฅผ ๋กœ๊ทธ์•„์›ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋Š” URL.
  • loginCallback: ๋กœ๊ทธ์ธ URL ๋Œ€์‹  ์ œ๊ณต๋  ๋•Œ, ๋กœ๊ทธ์ธ ๋ฒ„ํŠผ ํด๋ฆญ ์‹œ ๋Œ“๊ธ€ ์œ„์ ฏ์ด ํ˜ธ์ถœํ•  ํ•จ์ˆ˜.
  • logoutCallback: ๋กœ๊ทธ์•„์›ƒ URL ๋Œ€์‹  ์ œ๊ณต๋  ๋•Œ, ๋กœ๊ทธ์•„์›ƒ ๋ฒ„ํŠผ ํด๋ฆญ ์‹œ ๋Œ“๊ธ€ ์œ„์ ฏ์ด ํ˜ธ์ถœํ•  ํ•จ์ˆ˜.

์‚ฌ์šฉ์ž ๊ฐ์ฒด

์‚ฌ์šฉ์ž ๊ฐ์ฒด๋Š” ๋‹ค์Œ ์Šคํ‚ค๋งˆ๋ฅผ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค:

  • id(๋ฌธ์ž์—ด, ํ•„์ˆ˜)(์ตœ๋Œ€ 1k ๋ฌธ์ž)
  • email(๋ฌธ์ž์—ด, ํ•„์ˆ˜)(์ตœ๋Œ€ 1k ๋ฌธ์ž). ์ฃผ์˜: ์œ ์ผํ•ด์•ผ ํ•จ.
  • username(๋ฌธ์ž์—ด, ํ•„์ˆ˜)(์ตœ๋Œ€ 1k ๋ฌธ์ž). ์ฃผ์˜: ์‚ฌ์šฉ์ž ์ด๋ฆ„์€ ์ด๋ฉ”์ผ์ผ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์œ ์ผํ•  ํ•„์š”๋Š” ์—†์Œ.
  • avatar(๋ฌธ์ž์—ด, ์„ ํƒ ์‚ฌํ•ญ)(์ตœ๋Œ€ 3k ๋ฌธ์ž)
  • optedInNotifications(๋ถ€์šธ, ์„ ํƒ ์‚ฌํ•ญ)
  • displayLabel(๋ฌธ์ž์—ด, ์„ ํƒ ์‚ฌํ•ญ, ์ตœ๋Œ€ 100 ๋ฌธ์ž). ์ด ๋ ˆ์ด๋ธ”์€ ์ด๋ฆ„ ์˜†์— ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.
  • websiteUrl(๋ฌธ์ž์—ด, ์„ ํƒ ์‚ฌํ•ญ, ์ตœ๋Œ€ 2000 ๋ฌธ์ž). ์‚ฌ์šฉ์ž์˜ ์ด๋ฆ„์€ ์—ฌ๊ธฐ์— ๋งํฌ๋ฉ๋‹ˆ๋‹ค.

์•Œ๋ฆผ

์•Œ๋ฆผ์„ ํ™œ์„ฑํ™”ํ•˜๊ฑฐ๋‚˜ ๋น„ํ™œ์„ฑํ™”ํ•˜๋ ค๋ฉด optedInNotifications ๊ฐ’์„ ๊ฐ๊ฐ true ๋˜๋Š” false๋กœ ์„ค์ •ํ•˜์„ธ์š”. ์‚ฌ์šฉ์ž๊ฐ€ ์ด ๊ฐ’์„ ๊ฐ€์ง„ SSO ํŽ˜์ด๋กœ๋“œ๋กœ ํŽ˜์ด์ง€๋ฅผ ์ฒ˜์Œ ๋กœ๋“œํ•  ๋•Œ, ๊ทธ๋“ค์˜ ์•Œ๋ฆผ ์„ค์ •์ด ์—…๋ฐ์ดํŠธ๋ฉ๋‹ˆ๋‹ค.

VIP ์‚ฌ์šฉ์ž ๋ฐ ํŠน๋ณ„ ๋ ˆ์ด๋ธ”

์„ ํƒ์  "displayLabel" ํ•„๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์‚ฌ์šฉ์ž ์ด๋ฆ„ ์˜†์— ํŠน๋ณ„ ๋ ˆ์ด๋ธ”์„ ํ‘œ์‹œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ธ์ฆ๋˜์ง€ ์•Š์€ ์‚ฌ์šฉ์ž

์ธ์ฆ๋˜์ง€ ์•Š์€ ์‚ฌ์šฉ์ž๋ฅผ ๋‚˜ํƒ€๋‚ด๋ ค๋ฉด userDataJSONBase64, verificationHash ๋˜๋Š” timestamp๋ฅผ ๋น„์›Œ๋‘๋ฉด ๋ฉ๋‹ˆ๋‹ค. loginURL์„ ์ œ๊ณตํ•˜์„ธ์š”.

์‚ฌ์šฉ์ž ๋ฐ์ดํ„ฐ ์ง๋ ฌํ™” ๋ฐ ํ•ด์‹ฑ์„ ์œ„ํ•œ ์ง์ ‘ ์˜ˆ์ œ

์ž์„ธํ•œ ๋‚ด์šฉ์€ ์—ฌ๊ธฐ (js), ์—ฌ๊ธฐ (java) ๋ฐ ์—ฌ๊ธฐ (php)์—์„œ ํ™•์ธํ•˜์„ธ์š”.

Disqus SSO์—์„œ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜

Disqus์™€ FastComments SSO์˜ ๊ฐ€์žฅ ํฐ ์ฐจ์ด์ ์€ Disqus๊ฐ€ SHA1์„ ์‚ฌ์šฉํ•˜์—ฌ ์•”ํ˜ธํ™”ํ•˜๋Š” ๋ฐ˜๋ฉด ์ €ํฌ๋Š” SHA256์„ ์‚ฌ์šฉํ•œ๋‹ค๋Š” ์ ์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ Disqus์—์„œ์˜ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์ด ์šฉ์ดํ•ฉ๋‹ˆ๋‹ค - ํ•ด์‹ฑ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ SHA1์—์„œ SHA256์œผ๋กœ ๋ณ€๊ฒฝํ•˜๊ณ  UI์— ์ „๋‹ฌ๋˜๋Š” ์†์„ฑ ์ด๋ฆ„์„ ์—…๋ฐ์ดํŠธํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

Commento SSO์—์„œ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜

Commento๋Š” ์ƒ๋‹นํžˆ ๋‹ค๋ฅธ SSO ์ ‘๊ทผ ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค - ์ธ์ฆ์„ ์œ„ํ•ด ํ˜ธ์ถœํ•˜๋Š” ์—”๋“œํฌ์ธํŠธ๋ฅผ ์š”๊ตฌํ•ฉ๋‹ˆ๋‹ค. FastComments๋Š” ๊ทธ ๋ฐ˜๋Œ€์ž…๋‹ˆ๋‹ค - ์‚ฌ์šฉ์ž์˜ ์ •๋ณด๋ฅผ ๋น„๋ฐ€ ํ‚ค๋กœ ์•”ํ˜ธํ™”ํ•˜๊ณ  ํ•ด์‹œํ•œ ํ›„ ์ „๋‹ฌํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

๋ชจ๋“  ํ†ตํ•ฉ ๊ณผ์ •์ด ๋ณต์žกํ•˜๊ณ  ํž˜๋“ค ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์ดํ•ดํ•ฉ๋‹ˆ๋‹ค. ์ฃผ์ €ํ•˜์ง€ ๋ง๊ณ  ๊ท€ํ•˜์˜ ๋‹ด๋‹น์ž์—๊ฒŒ ์—ฐ๋ฝํ•˜๊ฑฐ๋‚˜ ์ง€์› ํŽ˜์ด์ง€๋ฅผ ์ด์šฉํ•˜์„ธ์š”.