
์ธ์ด ๐ฐ๐ท ํ๊ตญ์ด
๋ฐฐ๊ฒฝ
์์ํ๊ธฐ
๋ฐฐํฌ
์ํคํ ์ฒ
์ค์น ๋ฐ ํตํฉ
๋ณด์ ํ
FastComments ์จํ๋ ๋ฏธ์ค ํธ์คํ
FastComments๋ ๋ฐฐํฌ๋ฅผ ์ํ ์ฌ๋ฌ ์๋ฃจ์ ์ ์ ๊ณตํฉ๋๋ค. ๊ฐ์ฅ ์ผ๋ฐ์ ์ธ ๊ฒฝ์ฐ๋ ์ฐ๋ฆฌ๊ฐ ํธ์คํ ํ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ทํ๋ฅผ ์ํด.
ํ์ง๋ง ์ผ๋ถ ๊ณ ๊ฐ์ ์ ๋ณด๋ฅผ ํด๋ผ์ฐ๋์ ๋ณด๊ดํ ์ ์์ผ๋ฉฐ, ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ์จํ๋ ๋ฏธ์ค์ ํธ์คํ ํด์ผ ํฉ๋๋ค.
์ด ๋ฌธ์๋ ๊ทธ ์ฌ์ฉ ์ฌ๋ก๋ฅผ ๋ค๋ฃน๋๋ค.
ํฌํจ๋ ํญ๋ชฉ 
FastComments On Prem์ ๋น์ฌ์ ๋ชจ๋ ๋ชจ๋๋ ์ด์ ๋ฐ ๊ด๋ฆฌ์ ๋๊ตฌ๋ฅผ ํฌํจํ ๋ผ์ด๋ธ ๋๊ธ ์๋ฃจ์ ์ ๋ฐฐํฌํ ์ ์๊ฒ ํด์ฃผ๋ฉฐ, ๊ทํ์ ์์ฒด ํ๋์จ์ด์์ ์ด์ํ ์ ์์ต๋๋ค.
์ด๋ ๊ทํ๊ฐ ๋ฐ์ดํฐ์ ๋ํ ์ ์ด๊ถ์ ๊ฐ์ง๋ฉฐ, ๋๊ธ ์์คํ ์ ๋ก์ปฌ LAN ๋๋ ๊ธฐ์ ๋คํธ์ํฌ๋ก ์ ํํ ์ ์์์ ์๋ฏธํฉ๋๋ค.
์์ํ๊ธฐ 
FastComments On Prem ๋ฐฐํฌ๋ฅผ ์์ํ๋ ค๋ฉด, ๋ฌธ์ํด ์ฃผ์ธ์.
์ค์ ์ด ์๋ฃ๋๋ฉด ์ธ์ ๋ ์ง ์ต์ docker ์ด๋ฏธ์ง๋ฅผ ๋ผ์ด์ ์ค ํ์ด์ง์์ ๋ค์ด๋ก๋ํ ์ ์์ต๋๋ค.
์ธ์คํด์ค 
ํ์ ๊ตฌ์ฑ ์์
์จํ๋ ๋ฏธ์ค(์จํ๋ ) ํ๊ฒฝ์ ๊ฒฝ์ฐ, FastComments๋ ์ ํ๋ฆฌ์ผ์ด์ ์๋ฒ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ก๋ง ๊ตฌ์ฑ๋ฉ๋๋ค. ์ ํ๋ฆฌ์ผ์ด์ ์ด ๋ค๋ฅธ ๊ตฌ์ฑ ์์๋ฅผ ์ถ๊ฐํ์ง ์๊ณ ๋ชจ๋ ํธ๋ํฝ์ ์ง์ ์ฒ๋ฆฌํ ์ ์๋๋ก ๋ฐฐํฌ๋ฅผ ๋จ์ํํ์ต๋๋ค.
์ ํ๋ฆฌ์ผ์ด์ ์๋ฒ๋ Docker ์ด๋ฏธ์ง๋ก ์ ๊ณต๋๋ฉฐ ์ด๋ค ์ปจํ ์ด๋ ๊ด๋ฆฌ ์๋ฃจ์ ์ผ๋ก๋ ๋ฐฐํฌํ ์ ์์ต๋๋ค.
๋ฐ์ดํฐ๋ฒ ์ด์ค์ธ MongoDB๋ ์ง์ ์ด์ํ ์ ์๊ณ AWS DocumentDB๋ MongoDB Atlas์ ๊ฐ์ ๋ค๋ฅธ ์ ๊ณต์ ์ฒด์์ ํธ์คํ ํ ์๋ ์์ต๋๋ค.
FastComments๋ ํ์ฌ MongoDB 7์์ ํ ์คํธ๋๊ณ ์์ผ๋ฉฐ, ๋ฐฐํฌ๋ฅผ ์ฉ์ดํ๊ฒ ํ๊ธฐ ์ํด DocumentDB ํธํ์ฑ์ ๋ชฉํ๋ก ํ๊ณ ์์ต๋๋ค.
์ธ์คํด์ค ํฌ๊ธฐ
FastComments๋ ์๋นํ ์ต์ ํ๋์ด ์์ด ์ ํ๋ฆฌ์ผ์ด์ ์์ฒด๋ ๋ฎ์ P99๋ฅผ ์ ์งํ๊ธฐ ์ํด ํฐ ๋จธ์ ์ ํ์๋ก ํ์ง ์๋๋ค๋ ๊ฒ์ ์๊ฒ ๋ ๊ฒ์ ๋๋ค.
๋ชจ๋ ๋ฐฐ์น ๋ฐ cron ์์ ์ ์ด ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ ์ ํํ๊ธฐ ์ํด ์คํธ๋ฆฌ๋ฐ์ ์ฌ์ฉํฉ๋๋ค.
์๋์ ์ ํ๋ฆฌ์ผ์ด์ ์๋ฒ ๋ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค ํ๋ ํฌ๊ธฐ ๊ฒฐ์ ์ ๋์์ค๋๋ค.
์ ํ๋ฆฌ์ผ์ด์ ์๋ฒ ์ธ์คํด์ค
| ๋์ ์ฌ์ฉ์ | ์ด ํด๋ฌ์คํฐ CPU ์ | ์ด ํด๋ฌ์คํฐ ๋ฉ๋ชจ๋ฆฌ |
|---|---|---|
| 100 | 1 | 256mb |
| 1K | 2 | 512mb |
| 10K | 8 | 1gb |
| 100K | 32 | 8gb |
| 1M | 64 | 64gb |
์๋ฅผ ๋ค์ด, ์ด๋น ์ฝ 100๊ฐ์ ๋๊ธ ์ค๋ ๋๋ฅผ ์ฒ๋ฆฌํ๋ ๋จ์ผ ์ฝ์ด๋ ๋ณดํต 250mb RSS๋ฅผ ๋์ง ์์ต๋๋ค.
๋ฐ์ดํฐ๋ฒ ์ด์ค ์๋ฒ ์ธ์คํด์ค
๋ฐ์ดํฐ๋ฒ ์ด์ค ํฌ๊ธฐ ์ฐ์ ์ ์์ ์งํฉ ํฌ๊ธฐ(ํน์ ์์ ์ ์ก์ธ์คํ๋ ๋ฐ์ดํฐ ์)์ ๋์ ์์ฒญ ์์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋๋ค.
FastComments๋ Mongo์ ๋ํด ๋น๊ต์ ์น์ ํ ํธ์ผ๋ก, ํซ ์ฟผ๋ฆฌ์๋ ์ธ๋ฑ์ค ํํธ(index hints), ์คํธ๋ฆฌ๋ฐ ์ปค์(streaming cursors)๋ฅผ ์ฌ์ฉํ๊ณ ๋ค์ด์คํธ๋ฆผ ์์คํ ์ ๊ณผ๋ถํ๋ฅผ ๋ฐฉ์งํ๊ธฐ ์ํด ์ฌ๋ฌ ์์ญ์์ ๋์์ฑ ์ ํ์ ์ ์ฉํฉ๋๋ค.
์๋๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ธ์คํด์ค ํฌ๊ธฐ์ ๋ํ ์ผ๋ฐ์ ์ธ ๊ฐ์ด๋๋ผ์ธ์ ๋๋ค. ์ฐธ๊ณ : ์ด๊ฒ์ ์ธ์คํด์ค๋น ๋ฆฌ์์ค์ด๋ฉฐ, ํด๋ฌ์คํฐ์ ์ด ๋ฆฌ์์ค๊ฐ ์๋๋๋ค.
| ๋์ ์ฌ์ฉ์ | ์ ์ฅ๋ ๋๊ธ ์ | ์ธ์คํด์ค๋น CPU ์ | ์ธ์คํด์ค๋น ๋ฉ๋ชจ๋ฆฌ |
|---|---|---|---|
| 100 | 1k | 1 | 256mb |
| 1K | 5k | 2 | 512mb |
| 10K | 100k | 8 | 2gb |
| 100K | 500k | 16 | 8gb |
| 1M | 5M | 32 | 32gb |
์ ํ๋ ๋ณด์์ ์ธ ์ถ์ ์น์ ๋๋ค. ์ค์ ์๊ตฌ ์ฌํญ์ ํ์ด์ง ํฌ๊ธฐ, ๋๊ธ๋ ๋ฑ ํน์ ๊ตฌ์ฑ์ ๋ฐ๋ผ ๋ค๋ฅผ ์ ์์ต๋๋ค.
์ค์ 
FastComments๋ ๊ตฌ์ฑ์ ํ๊ฒฝ ๋ณ์๋ฅผ ์ฌ์ฉํฉ๋๋ค. ๋ค์ ๋ชฉ๋ก์ ์จํ๋ (On-Prem)์ ๊ด๋ จ๋ ๋ชจ๋ ์ง์ ๋ณ์๋ฅผ ์ค๋ช ํฉ๋๋ค.
| Variable | Default | Info | Required | Examples or Valid Values |
|---|---|---|---|---|
| NODE_ENV | ํ๊ฒฝ ํ์ . | ์ | production, dev | |
| MONGO_URI | DB ์ฐ๊ฒฐ URI. | ์ | ||
| MONGO_ENABLE_SSL | false | ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ฐ๊ฒฐํ ๋ SSL ์ฌ์ฉ์ ํ์ฑํํฉ๋๋ค. | ์๋์ค | true, false |
| MONGO_ENABLE_SSL_VALIDATE | false | Mongo์ ์ฐ๊ฒฐํ ๋ CA์ ๋ํด ์ธ์ฆ์๋ฅผ ๊ฒ์ฆํ๋๋ก ํ์ฑํํฉ๋๋ค. | ์๋์ค | true, false |
| MONGO_SSL_CA | Mongo SSL CA pem ํ์ผ. | ์๋์ค | /path/to/some-cert.pem | |
| ADMIN_NOTIFICATIONS_EMAIL | ์ค์ํ ์์คํ ๊ด๋ จ ์๋ฆผ์ ๋ฐ์ ์ด๋ฉ์ผ ์ฃผ์. | ์๋์ค | admin-group@bigcorp.com | |
| IP_HASH_SALT | IP ์ฃผ์ ํด์๋ฅผ ์ํ ์ํธ. | ์ | ||
| SESSION_SECRET | ์ธ์ ์๋ช ์ ์ฌ์ฉ๋๋ ํค. | ์ | ||
| SESSION_STORE_SECRET | ์คํ ๋ฆฌ์ง์ ์๋ ์ธ์ ์ ์๋ช /ํด์ํ๋ ๋ฐ ์ฌ์ฉ๋๋ ํค. SESSION_SECRET์ ๋ฌ๋ผ์ผ ํฉ๋๋ค. | ์ | ||
| HOSTNAME | FastComments๊ฐ ๋ฐฐํฌ๋ ํธ์คํธ๋ช (๊ด๋ฆฌ ๋์๋ณด๋ ๋ฑ). ํฌํธ๋ ํ๋กํ ์ฝ์ ํฌํจํ๋ฉด ์ ๋ฉ๋๋ค. | ์ | example.com | |
| HOST_ADDR | FastComments๊ฐ ๋ฐฐํฌ๋ ์ ๊ทผ ๊ฐ๋ฅํ URI(๊ด๋ฆฌ ๋์๋ณด๋ ๋ฑ). | ์ | https://example.com | |
| EMAIL_CONFIG_PATH | ์ด๋ฉ์ผ ๊ตฌ์ฑ(SMTP, ๋๋ฉ์ธ/์ ๊ณต์ ๋งคํ ๋ฑ)์ด ์์นํ ๋ก์ปฌ ํ์ผ ์์คํ ์ ๊ฒฝ๋ก. | ์ | /my/config.json | |
| EMAIL_DEFAULT_FROM_NAME | FastComments Robot | ์ด๋ฉ์ผ "From Name" ํค๋. | ์๋์ค | My Company Name |
| EMAIL_DEFAULT_FOOTER_LOGO | /images/logo-32-2020-01.png | ์ด๋ฉ์ผ ๋ฐ๋ฅ๊ธ ๋ก๊ณ . | ์๋์ค | https://exmaple.com/footer.png |
| EMAIL_DEFAULT_TRANSPORT | EMAIL_CONFIG_PATH์ "defaultTransport"์ ๋ํ ์ค๋ฒ๋ผ์ด๋. ๋์ผํ ๊ตฌ์ฑ ํ์ผ์ ๋ค๋ฅธ ํ๊ฒฝ์ ๋ฐฐํฌํ ๋ ์ ์ฉํฉ๋๋ค. | ์๋์ค | myTransportName | |
| ON_PREM_TENANT_ID | fastcomments.com์ ๊ณ์ ID. ๋ผ์ด์ ์ค ํค๋ฅผ ๋ฑ๋กํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค. | ์๋์ค | ||
| ON_PREM_LICENSE_KEY | ์จํ๋ ๋ผ์ด์ ์ค ํค. | ์๋์ค | ||
| GIPHY_API_KEY | Giphy API ํค. ์ง์ ํ์ง ์์ผ๋ฉด gif ์ ํ๊ธฐ๋ฅผ ๋นํ์ฑํํ๋ ๊ตฌ์ฑ ๊ท์น์ ๋ง๋ค์ด์ผ ํฉ๋๋ค. | ์๋์ค | ||
| GIPHY_DEFAULT_RATING | pg | giphy ํตํฉ์ ์ฌ์ฉ๋ฉ๋๋ค. ์์ ฏ ์ปค์คํฐ๋ง์ด์ ์ด์ ๊ท์น์ผ๋ก๋ ์ฌ์ ์ํ ์ ์์ต๋๋ค. | ์๋์ค | g, pg, pg-13, r |
| OPENAI_SECRET_KEY | ์ ํ์ GPT ๊ธฐ๋ฐ ์คํธ ๊ฐ์ง ๊ฐ์ OpenAI ๊ธฐ๋ฐ ๊ธฐ๋ฅ์ ์ฌ์ฉ๋ฉ๋๋ค. | ์๋์ค | ||
| CDN_HOST_ADDR | ์์ ์ ๊ฐ์ ธ์ฌ ํธ์คํธ๋ช . ๊ธฐ๋ณธ๊ฐ์ HOSTNAME์ ๊ฐ์ ๋๋ค. | ์๋์ค | example.com | |
| LARGE_FILE_HOST_ADDR | ๋์ฉ๋ ํ์ผ(๋ด๋ณด๋ด๊ธฐ ๋ฑ)์ ๊ฐ์ ธ์ฌ ํธ์คํธ๋ช . ๊ธฐ๋ณธ๊ฐ์ CDN_HOST_ADDR์ ๊ฐ์ ๋๋ค. | ์๋์ค | example.com | |
| LARGE_FILE_LOCATION_TYPE | local_disk | ๋ด๋ณด๋ด๊ธฐ์ ๊ฐ์ ๋์ฉ๋ ํ์ผ์ ์ ์ฅํ ์์น. | ์๋์ค | local_disk, s3 |
| FROM_EMAIL_HOST | ์ด๋ฉ์ผ์ด ๋ฐ์ก๋๋ ํธ์คํธ๋ช . | ์๋์ค | example.com | |
| COOKIE_ID | fastcomments.sid | fastcomments ์ฟ ํค์ ์ด๋ฆ. | ์๋์ค | |
| COOKIE_HOSTNAME | .fastcomments.com | ์ฟ ํค์ "hostname" ํ๋ ๊ฐ. ์ ๋์ฌ๋ก ์ ์ ๊ถ์ฅํฉ๋๋ค. | ์๋์ค | .example.com |
| S3_ACCESS_KEY | ์ฌ์ฉ์ ํ์ผ ์ ๋ก๋, ์๋ฐํ ๋ฑ์ ์ฌ์ฉ๋ฉ๋๋ค. ์ ์๋์ง ์์ผ๋ฉด ๋ก์ปฌ ํ์ผ ์์คํ ์ด ๊ธฐ๋ณธ์ ๋๋ค. | ์๋์ค | ||
| S3_SECRET_KEY | ์ฌ์ฉ์ ํ์ผ ์ ๋ก๋, ์๋ฐํ ๋ฑ์ ์ฌ์ฉ๋ฉ๋๋ค. | ์๋์ค | ||
| S3_REGION | ์ฌ์ฉ์ ํ์ผ ์ ๋ก๋, ์๋ฐํ ๋ฑ์ ์ฌ์ฉ๋ฉ๋๋ค. | ์๋์ค | ||
| S3_BUCKET | ์ฌ์ฉ์ ํ์ผ ์ ๋ก๋, ์๋ฐํ ๋ฑ์ ์ฌ์ฉ๋ฉ๋๋ค. | ์๋์ค | ||
| S3_HOST | ์ฌ์ฉ์ ํ์ผ ์ ๋ก๋, ์๋ฐํ ๋ฑ์ ์ฌ์ฉ๋ฉ๋๋ค. | ์๋์ค | ||
| CACHE_DIR | DB๋ฅผ ์ฌ์ฉํ ์ ์์ ๋์ ์ ํ์ ์คํ๋ผ์ธ ์บ์๋ฅผ ์ ์ฅํ ์์น. ์์ 100๊ฐ ๋๊ธ ์ค๋ ๋๋ก ์ฃผ๊ธฐ์ ์ผ๋ก ๊ฐฑ์ ๋ฉ๋๋ค. | ์๋์ค | ||
| BACKUP_DIR | DB๋ฅผ ์ฌ์ฉํ ์ ์์ ๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ์์น. DB๊ฐ ์ฌ์ฉ ๋ถ๊ฐ๋ฅํ ๋ ๋๊ธ์ด ์ ์ถ๋๋ฉด ์ฌ๊ธฐ์ ์ ์ฅ๋๋ฉฐ ๋์ค์ ์ฒ๋ฆฌ๋ฉ๋๋ค. | ์๋์ค |
๋ชจ๋ ๋๋ฉ์ธ ๊ด๋ จ ๋ณ์๋ _HOST ๋๋ _ADDR ์ ๋ฏธ์ฌ๋ฅผ ์ฌ์ฉํ๋ค๋ ์ ์ ์ ์ํ์ธ์. ์ฐจ์ด์ ์:
_HOST:example.com_ADDR:https://example.com
The EMAIL_CONFIG_PATH should contain a path to a JSON file with the following example format:

์ ์์ ์์๋ mailgun์ด๋ผ๋ ๊ธฐ๋ณธ SMTP ์ด๋ฉ์ผ ํธ๋์คํฌํธ๋ฅผ ์ ์ํฉ๋๋ค. ๋ํ @yahoo.com ์ด๋ฉ์ผ์ ๋ํด ํน๋ณํ ์ฌ์ฉํ๋ ์ ์ฉ ํธ๋์คํฌํธ๋ ์ ์ํฉ๋๋ค. ํน์ ๋๋ฉ์ธ์ ๋ํด ์ ์ก ์ ๊ณต์๋ ๋ฐ์ IP๋ฅผ ์กฐ์ ํ์ฌ ์ ๋ฌ๋ฅ ์ ํ๋ํด์ผ ํ๋ ์๋๋ฆฌ์ค๊ฐ ์์ ์ ์์ต๋๋ค. ์ด๋ ์ ํ ์ฌํญ์
๋๋ค.
DocumentDB
DocumentDB์ ์ฐ๊ฒฐํ ๋ ๊ธฐ๋ณธ ์ค์ ๊ณผ ํธํ๋๋๋ก MONGO_ENABLE_SSL=true MONGO_SSL_CA=/some/path.pem์ ์ง์ ํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ค์ดํ์ ๋ฐ ์ ์ง๋ณด์ ๋ชจ๋ 
FastComments๋ ์๋ ์ ์ง๊ด๋ฆฌ ๋ชจ๋๋ฅผ ์ง์ํฉ๋๋ค. ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ๋ค์ด๋๋๋ผ๋ ์ธ๊ธฐ ์๋ ๋๊ธ ์ค๋ ๋๋ ๊ณ์ ์ ๊ณตํ ์ ์์ต๋๋ค.
๋ํ ์ ์ง๊ด๋ฆฌ ๋ชจ๋์์๋ ๋ชจ๋ ๋๊ธ์ด BACKUP_DIR์ ์ ์ฅ๋ฉ๋๋ค. ์์คํ
์ด ๋ค์ ์จ๋ผ์ธ์ด ๋๋ฉด(์คํธ ๊ฒ์ฌ ๋ฑ) ์ฒ๋ฆฌ๋์ด ์ ์ฅ๋ฉ๋๋ค.
์ด๋ ๋งค์๊ฐ ์์ 100๊ฐ์ ์ธ๊ธฐ ๋๊ธ ์ค๋ ๋๋ฅผ ๊ฒฐ์ ํ๊ณ ํด๋น ์ฝํ ์ธ ๋ฅผ ๋์คํฌ์ ์บ์ํจ์ผ๋ก์จ ์ด๋ฃจ์ด์ง๋๋ค. ์์ 100๊ฐ ์ค๋ ๋์ ๊ฒฐ์ ์ ๋ฏธ๋ฆฌ ๊ณ์ฐ๋ ์ํ์์ ์ด๋ฏธ ์ํ๋๋ฏ๋ก, ๋ฌด๊ฑฐ์ด ์ฃผ๊ธฐ ์์ ์ด ์๋๋๋ค.
์ด๊ฒ์ ์์ ํ ์ ํ ์ฌํญ์ด๋ฉฐ CACHE_DIR์ BACKUP_DIR๊ฐ ์ค์ ๋ ๊ฒฝ์ฐ์๋ง ํ์ฑํ๋ฉ๋๋ค. ๋ฌผ๋ก ์ด๊ฒ์ ์ ํ๋ฆฌ์ผ์ด์
๋
ธ๋๋ฅผ ์ํ์ ์ผ๋ก ๋ง๋ค์ง๋ง, ์ด๋
์ธ์ ๋ ์ง ์์ค๋์ด๋ ์ ํ๋ฆฌ์ผ์ด์
์ด ์ค์๋ํ์ง ์๋๋ก ํ๋ ์ํ์
๋๋ค.
์ ์ง๊ด๋ฆฌ ๋ชจ๋์์๋ ๋๊ธ ์ค๋ ๋์ ์ ์ ํ ์ธ์ฆ์ ์ํํ ์ ์์ผ๋ฏ๋ก, ์์ ํ๊ฒ ๊ณต๊ฐ๋ก ๊ฐ์ฃผ๋๋ ์ค๋ ๋๋ง ์ฃผ๊ธฐ์ ์ผ๋ก ๋ฐฑ์ ๋๋ค๋ ์ ์ ์ ์ํ์ธ์.
์ ์ง๊ด๋ฆฌ ๋ชจ๋์์๋ ๋ง์ ๊ธฐ๋ฅ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
์ ๊ธ 
์ด๋ค ๋ถ์ฐ ์์คํ
๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก FastComments๋ ์์๊ณผ ์ ์ฐจ๋ฅผ ์ ๊ทธ๋ ๋ฐฉ๋ฒ์ด ํ์ํฉ๋๋ค. ์ด๋ฌํ ์ ๊ธ์ /locks-in-progress ์๋ํฌ์ธํธ๋ฅผ ํตํด ๋ชจ๋ํฐ๋งํ ์ ์์ต๋๋ค.
์๋ฅผ ๋ค์ด, ์ด๊ฒ์ ์ ํฌ ๋ฏธ๊ตญ ์ค๋์ ์๋ํฌ์ธํธ์ ๋๋ค.
์ด๊ฒ์ ์์คํ ์ด ๋ฉ์ท๊ฑฐ๋ ๊ณผ๋ถํ ์ํ์ธ ์ด์ ๋ฅผ ํ์ ํ๋ ๋ฐ ์ ์ฉํ ์ ์์ต๋๋ค. ๋ง์ฝ SRE๊ฐ ์์คํ ์ด ๋์ CPU ๋ถํ๋ฅผ ๊ฒช๋ ์ด์ ๋ฅผ ์๊ณ ์ถ๋ค๋ฉด, ๊ทธ๋ค์ ์ด ์๋ํฌ์ธํธ๋ฅผ ํ์ธํ์ฌ ์๋ชป ์๋ํ๋ cron์ ์ด๋ฆ์ ์ป์ ์ ์์ต๋๋ค.
์์ ฏ ์ฝ๋ 
์จํ๋ ๋ฏธ์ค์ฉ ํ๋ก ํธ์๋ ์ฝ๋ ์ค๋ํซ๊ณผ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ SaaS ์ ํ๊ณผ ๋์ผํฉ๋๋ค. ๊ทธ๋ฌ๋ apiHost์ ์ฌ๋ฐ๋ฅธ ์คํฌ๋ฆฝํธ ๊ฒฝ๋ก๋ฅผ ์ง์ ํด์ผ ํฉ๋๋ค:

์ ์์๋ ๋งค์ฐ ๋จ์ํ ์์ ๋๋ค. 1st-party React, Angular, Vue, Svelte ๋ฑ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ์ฌ์ฉํ ์ ์์ต๋๋ค.
API 
API๋ ์ผ๋ฐ SaaS ์ ํ๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก ์ก์ธ์คํ ์ ์์ต๋๋ค. On-Prem ๋์๋ณด๋์ ๋ก๊ทธ์ธํ์ฌ API ํค๋ฅผ ์์ฑํ๊ณ ํด๋น ํค๋ก API์ ์ก์ธ์คํ๋ฉด ๋ฉ๋๋ค. ํด๋น API ์๋ํฌ์ธํธ๋ on-prem๊ณผ SaaS ์ ํ์์ ๋์ผํฉ๋๋ค.
๋ค์ค ๋๋ฉ์ธ 
๊ทํ์ On-Prem FastComments ์ค์น๋ ์๋ฅผ ๋ค์ด app.mycorp.org ๋ฐ hr.mycorp.org์ ๊ฐ์ ์ฌ๋ฌ ๋ด๋ถ ๋๋ฉ์ธ์ ๋๊ธ์ ์ ๊ณตํ ์ ์์ต๋๋ค.
์ด ๋๋ฉ์ธ๋ค์ ๊ฐ๋ณ์ ์ผ๋ก ๊ตฌ์ฑํ ์ ์์ผ๋ฉฐ, ๊ฐ๊ฐ์ ๋์์ ์ค์ ํ๊ธฐ ์ํด ๋ณ๋์ Customization Rules๋ฅผ ๋ง๋ค์ด ํ๋์ On-Prem ์ค์น์์ ํธ์คํ ํ ์ ์์ต๋๋ค.
๋ณด์ 
๊ธฐ๋ณธ์ ์ผ๋ก FastComments๋ ๋๊ธ ์ค๋ ๋๊ฐ ๊ณต๊ฐ๋์ด ์๋ค๊ณ ๊ฐ์ ํฉ๋๋ค.
๋ณด์ ์์ค์ ๋์ด๋ ค๋ฉด ๋ง์ถค ๊ท์น์ ์์ฑํ๋
Requires SSO ์ต์
์ ์ ํํ๋ ๊ฒ์ด ๊ถ์ฅ๋ฉ๋๋ค.
์ด๋ ๊ฒ ํ๋ฉด ๋ชจ๋ ๋๊ธ ๊ด๋ จ ์๋ํฌ์ธํธ๊ฐ SSO ์ธ์ฆ์ ์๊ตฌํ๊ฒ ๋ฉ๋๋ค.
๊ฒฐ๋ก
On Prem ๋ฌธ์์ ๋์ ๋๋ฌํ์ต๋๋ค. ์๋์ ์ถ๊ฐ ์๊ฒฌ์ด๋ ์ง๋ฌธ์ด ์์ผ์๋ฉด ์๋ ค์ฃผ์ธ์ - ๋๋ ์ง์ ํ์ด์ง๋ฅผ ํตํด ์ ํฌ์๊ฒ ๋ฌธ์ํ์ค ์๋ ์์ต๋๋ค.