GitHub Apps
๋ฑ๋ก์ ์ํ URL ๋งค๊ฐ ๋ณ์ ์ ๋ณด
URL ๋งค๊ฐ ๋ณ์๋ฅผ ์ฌ์ฉํ์ฌ ์ GitHub App ๋ฑ๋ก์ ๊ตฌ์ฑ ์ค์ ์ ๋ฏธ๋ฆฌ ์ ํํ๊ณ ๋ค๋ฅธ ์ฌ์ฉ์์ ์ฌ์ฉ์ ์ง์ ๋งํฌ๋ฅผ ๊ณต์ ํ ์ ์์ต๋๋ค. ๋งํฌ๋ ์ฌ์ฉ์๋ฅผ GitHub App ๋ฑ๋ก ํ์ด์ง๋ก ์ด๋ํฉ๋๋ค. ์ฌ๊ธฐ์ ์ฑ ์ค์ ์ URL์ ํฌํจ๋ URL ๋งค๊ฐ ๋ณ์์ ๋ฐ๋ผ ๋ฏธ๋ฆฌ ์ฑ์์ง๋๋ค.
์ด ๋ฐฉ๋ฒ์ ๊ณ ๊ฐ์ด ํน์ ์ฌ์์ ์ฌ์ฉํ์ฌ ๊ฐ์ธ ๊ณ์ ๋๋ ์กฐ์ง์์ ์ฑ์ ์ค์ ํ๋ ค๋ ํตํฉ์ ์ฒด ๋๋ GitHub Marketplace์์ ์ฑ์ ์ค์นํ ์ ์๋ GitHub Enterprise Server์(๋ฅผ) ์ฌ์ฉํ๋ ๊ณ ๊ฐ์๊ฒ ์ ์ฉํฉ๋๋ค.
๋๋ GitHub App ๋งค๋ํ์คํธ๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค. ์์ธํ ๋ด์ฉ์ ๋งค๋ํ์คํธ์์ GitHub ์ฑ ๋ฑ๋ก์(๋ฅผ) ์ฐธ์กฐํ์ธ์.
์ฐธ๊ณ ํญ๋ชฉ
์ด ๋ฌธ์์๋ github.com
๋๋ฉ์ธ์ ์ฌ์ฉํ๋ ๋ช
๋ น์ด๋ ์์ ๊ฐ ํฌํจ๋์ด ์์ต๋๋ค. octocorp.ghe.com
์(๊ณผ) ๊ฐ์ ๋ค๋ฅธ ๋๋ฉ์ธ์์ GitHub์ ์ก์ธ์คํ ์ ์์ต๋๋ค.
์ฟผ๋ฆฌ ๋งค๊ฐ ๋ณ์๋ฅผ ์ฌ์ฉํ์ฌ ์ฌ์ฉ์ ์ง์ ๊ตฌ์ฑ URL ๋ง๋ค๊ธฐ
๊ฐ์ธ ๋๋ ์กฐ์ง ๊ณ์ ์์ GitHub App์ ๋ํ ์ฌ์ฉ์ ์ง์ ๊ตฌ์ฑ URL์ ๋ง๋ค๋ ค๋ฉด ๋ค์ ๊ธฐ๋ณธ URL ๋ค์์ ์ฟผ๋ฆฌ ๋งค๊ฐ ๋ณ์๋ฅผ ์ถ๊ฐํฉ๋๋ค.
- ๊ฐ์ธ ๊ณ์ ์ ์ฑ์ ๋ฑ๋กํ๋ ค๋ฉด URL ๋งค๊ฐ ๋ณ์๋ฅผ
https://github.com/settings/apps/new
์ ์ถ๊ฐํฉ๋๋ค. - ์กฐ์ง ๊ณ์ ์ ์ฑ์ ๋ฑ๋กํ๋ ค๋ฉด URL ๋งค๊ฐ ๋ณ์๋ฅผ
https://github.com/organizations/ORGANIZATION/settings/apps/new
์ ์ถ๊ฐํฉ๋๋ค.ORGANIZATION
์(๋ฅผ) ๊ณ ๊ฐ์ด ์ฑ์ ๋ฑ๋กํ๋ ค๋ ์กฐ์ง ์ด๋ฆ์ผ๋ก ๋ฐ๊ฟ๋๋ค. - ์ํฐํ๋ผ์ด์ฆ ๊ณ์ ์ ์ฑ์ ๋ฑ๋กํ๋ ค๋ฉด URL ๋งค๊ฐ ๋ณ์๋ฅผ
https://github.com/enterprises/ENTERPRISE/settings/apps/new
์ ์ถ๊ฐํฉ๋๋ค.ENTERPRISE
๋ฅผ ๊ณ ๊ฐ์ด ์ฑ์ ๋ฑ๋กํ๋ ค๋ ์ํฐํ๋ผ์ด์ฆ ์ด๋ฆ์ผ๋ก ๋ฐ๊ฟ๋๋ค.
์ฑ์ ๋ฑ๋กํ๋ ์ฌ๋์ ์ฑ์ ์ ์ถํ๊ธฐ ์ ์ ์ฑ ๋ฑ๋ก ํ์ด์ง์์ ๋ฏธ๋ฆฌ ์ ํ๋ ๊ฐ์ ํธ์งํ ์ ์์ต๋๋ค. URL ์ฟผ๋ฆฌ ๋ฌธ์์ด์ ํ์ ๊ฐ์ ๋ํ ๋งค๊ฐ ๋ณ์๋ฅผ ํฌํจํ์ง ์๋ ๊ฒฝ์ฐ(์: name
) ์ฑ์ ๋ฑ๋กํ๋ ์ฌ๋์ ์ฑ์ ๋ฑ๋กํ๊ธฐ ์ ์ ๊ฐ์ ์
๋ ฅํด์ผ ํฉ๋๋ค.
์๋ฅผ ๋ค์ด ๋ค์ URL์ ๊ฐ์ธ ๊ณ์ ์์ octocat-github-app
(์ด)๋ผ๊ณ ๋ช
๋ช
๋ ์ ๊ณต๊ฐ ์ฑ์ ๋ฑ๋กํฉ๋๋ค. ์ฟผ๋ฆฌ ๋งค๊ฐ ๋ณ์๋ฅผ ์ฌ์ฉํ์ฌ URL์ ์ค๋ช
๋ฐ ์ฝ๋ฐฑ URL์ ๋ฏธ๋ฆฌ ๊ตฌ์ฑํฉ๋๋ค. ๋ํ checks
์ ๋ํ ์ฝ๊ธฐ ๋ฐ ์ฐ๊ธฐ ๊ถํ์ ์ ํํ๊ณ , webhook_active
๋งค๊ฐ ๋ณ์๋ฅผ ์ฌ์ฉํ์ฌ ์นํํฌ๋ฅผ ํ์ฑํํ๊ณ , check_run
๋ฐ check_suite
์นํํฌ ์ด๋ฒคํธ๋ฅผ ๊ตฌ๋
ํ๊ณ , ์ค์นํ๋ ๋์ ์ฌ์ฉ์ ๊ถํ ๋ถ์ฌ(OAuth)๋ฅผ ์์ฒญํ๋ ์ต์
์ ์ ํํฉ๋๋ค.
https://github.com/settings/apps/new?name=octocat-github-app&description=An%20Octocat%20App&callback_urls[]=https://example.com&request_oauth_on_install=true&public=true&checks=write&webhook_active=true&events[]=check_run&events[]=check_suite
GitHub App ๊ตฌ์ฑ ๋งค๊ฐ ๋ณ์
๋ค์ ์ฟผ๋ฆฌ ๋งค๊ฐ ๋ณ์๋ฅผ ์ฌ์ฉํ์ฌ GitHub App ๋ฑ๋ก์ ๋ํ ํน์ ๊ตฌ์ฑ์ ์ ํํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ์ฑ ์ด๋ฆ์ "octocat-github-app"์ผ๋ก ์ง์ ํ๋ฉด ์ฟผ๋ฆฌ ๋ฌธ์์ด์ name=octocat-github-app
์ด(๊ฐ) ํฌํจ๋ฉ๋๋ค.
๋งค๊ฐ ๋ณ์ ์ด๋ฆ | Type | ์ค๋ช |
---|---|---|
name | string | GitHub App์ ์ด๋ฆ์ ๋๋ค. ์ฑ์ ๋ช ํํ๊ณ ๊ฐ๊ฒฐํ ์ด๋ฆ์ ์ง์ ํฉ๋๋ค. ์ฌ์ฉ์ ๋๋ ์กฐ์ง ์ด๋ฆ์ด ์๋ ๊ฒฝ์ฐ ์ฑ์ ์ด๋ฆ์ ๊ธฐ์กด GitHub ์ฌ์ฉ์์ ๋์ผํ ์ ์์ต๋๋ค. ํตํฉ์ด ์์ ์ ์ํํ ๋ ์ฑ ์ด๋ฆ์ ์ฌ๋ฌ๊ทธ ๋ฒ์ ์ด ์ฌ์ฉ์ ์ธํฐํ์ด์ค์ ํ์๋ฉ๋๋ค. |
description | string | GitHub App์ ๋ํ ์ค๋ช ์ ๋๋ค. |
url | string | GitHub App์ ์น ์ฌ์ดํธ ํํ์ด์ง์ ์ ์ฒด URL์ ๋๋ค. |
callback_urls | array of strings | ๋ค๋ฅธ ์ฌ๋์ด ์ค์น ๊ถํ์ ๋ถ์ฌํ ํ ๋ฆฌ๋๋ ์
ํ ์ ์ฒด URL์
๋๋ค. ์ต๋ 10๊ฐ์ ์ฝ๋ฐฑ URL์ ์ ๊ณตํ ์ ์์ต๋๋ค. ์ด๋ฌํ URL์ ์ฑ์์ ์ฌ์ฉ์ ์ก์ธ์ค ํ ํฐ์ ์์ฑํด์ผ ํ๋ ๊ฒฝ์ฐ์ ์ฌ์ฉ๋ฉ๋๋ค. ์๋ค ๋ค์ด callback_urls[]=https://example.com&callback_urls[]=https://example-2.com ์
๋๋ค. ์์ธํ ๋ด์ฉ์ ์ฌ์ฉ์ ๊ถํ ๋ถ์ฌ ์ฝ๋ฐฑ URL ์ ๋ณด์(๋ฅผ) ์ฐธ์กฐํ์ธ์. |
request_oauth_on_install | boolean | ์ฑ์์ OAuth ํ๋ฆ์ ์ฌ์ฉํ์ฌ ์ฌ์ฉ์์๊ฒ ๊ถํ์ ๋ถ์ฌํ๋ ๊ฒฝ์ฐ ์ฌ๋๋ค์ด ์ฑ์ ์ค์นํ ๋ ์ฑ์ ๊ถํ์ ๋ถ์ฌํ ์ ์๋๋ก ์ด ์ต์
์ true ๋ก ์ค์ ํ์ฌ ๋จ๊ณ๋ฅผ ์ ์ฝํ ์ ์์ต๋๋ค. ์ด ์ต์
์ ์ ํํ๋ฉด setup_url ์ ์ฌ์ฉํ ์ ์๊ฒ ๋๊ณ ์ฌ์ฉ์๋ ์ฑ์ ์ค์นํ ํ callback_url ๋ก ๋ฆฌ๋๋ ์
๋ฉ๋๋ค. |
setup_url | string | ์ค์น ํ ์ฑ์ ์ถ๊ฐ ์ค์ ์ด ํ์ํ ๊ฒฝ์ฐ ๋ค๋ฅธ ์ฌ๋์ด GitHub App์ ์ค์นํ ํ ๋ฆฌ๋๋ ์ ํ ์ ์ฒด URL์ ๋๋ค. ์์ธํ ๋ด์ฉ์ ์ค์น URL ์ ๋ณด์(๋ฅผ) ์ฐธ์กฐํ์ธ์. |
setup_on_update | boolean | ์๋ฅผ ๋ค์ด ๋ฆฌํฌ์งํ ๋ฆฌ๊ฐ ์ถ๊ฐ๋๊ฑฐ๋ ์ ๊ฑฐ๋ ํ ์ค์น๊ฐ ์
๋ฐ์ดํธ๋ ๋ ์ฌ์ฉ์๋ฅผ ์ค์ URL๋ก ๋ฆฌ๋๋ ์
ํ๋ ค๋ฉด true ๋ก ์ค์ ํฉ๋๋ค. |
public | boolean | GitHub App์ ๋๊ตฌ๋ ์ฌ์ฉํ ์ ์๋ ๊ฒฝ์ฐ true ๋ก ์ค์ ํ๊ณ ์ฑ ์์ ์๋ง ์ก์ธ์คํ ์ ์๋ ๊ฒฝ์ฐ false ๋ก ์ค์ ํฉ๋๋ค. ์ด ๋งค๊ฐ ๋ณ์๋ ์ํฐํ๋ผ์ด์ฆ๊ฐ ์์ ํ ์ฑ์๋ ์ ์ฉ๋์ง ์์ต๋๋ค. |
webhook_active | boolean | ์นํํฌ๋ฅผ ํ์ฑํํ๋ ค๋ฉด true ๋ก ์ค์ ํฉ๋๋ค. ์นํํฌ๋ ๊ธฐ๋ณธ์ ์ผ๋ก ๋นํ์ฑํ๋์ด ์์ต๋๋ค. |
webhook_url | string | ์นํํฌ ์ด๋ฒคํธ ํ์ด๋ก๋๋ฅผ ๋ณด๋ด๋ ค๋ ์ ์ฒด URL์ ๋๋ค. |
events | array of strings | ์นํํฌ ์ด๋ฒคํธ์
๋๋ค. ์ GitHub App์ ๋ฑ๋กํ ๋ ์ด๋ฒคํธ๋ฅผ ์ ํํ๊ธฐ ์ ์ ์ผ๋ถ ์นํํฌ ์ด๋ฒคํธ์๋ ๋ฆฌ์์ค์ ๋ํ read ๋๋ write ๊ถํ์ด ํ์ํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ GitHub App ์นํํฌ ์ด๋ฒคํธ ์น์
์ ์ฐธ์กฐํ์ธ์. ์ฟผ๋ฆฌ ๋ฌธ์์ด์์ ์ฌ๋ฌ ์ด๋ฒคํธ๋ฅผ ์ ํํ ์ ์์ต๋๋ค. ์๋ค ๋ค์ด events[]=public&events[]=label ์
๋๋ค. |
single_file_name | string | ์ด๋ ์ฑ์ด ๋ชจ๋ ๋ฆฌํฌ์งํ ๋ฆฌ์ ๋จ์ผ ํ์ผ์ ์ก์ธ์คํ ์ ์๋๋ก ํ๋ ์ข์ ๋ฒ์์ ์ฌ์ฉ ๊ถํ์
๋๋ค. single_file ์ฌ์ฉ ๊ถํ์ read ๋๋ write ๋ก ์ค์ ํ๋ฉด ์ด ํ๋๋ GitHub App์์ ๊ด๋ฆฌํ ๋จ์ผ ํ์ผ์ ๊ฒฝ๋ก๋ฅผ ์ ๊ณตํฉ๋๋ค. ์ฌ๋ฌ ํ์ผ์ ๊ด๋ฆฌํด์ผ ํ๋ ๊ฒฝ์ฐ ์๋์ single_file_paths ๋ฅผ ์ฐธ์กฐํ์ธ์. |
single_file_paths | array of strings | ์ด๋ ๊ฒ ํ๋ฉด ์ฑ์ด ๋ฆฌํฌ์งํ ๋ฆฌ์์ ์ต๋ 10๊ฐ์ ์ง์ ๋ ํ์ผ์ ์ก์ธ์คํ ์ ์์ต๋๋ค. single_file ์ฌ์ฉ ๊ถํ์ read ๋๋ write ๋ก ์ค์ ํ๋ฉด ์ด ๋ฐฐ์ด์ GitHub App์์ ๊ด๋ฆฌํ ์ต๋ 10๊ฐ ํ์ผ์ ๊ฒฝ๋ก๋ฅผ ์ ์ฅํ ์ ์์ต๋๋ค. ํ์ผ์ ๋ชจ๋ single_file ์ ์ํด ์ค์ ๋ ๋์ผํ ์ฌ์ฉ ๊ถํ์ ๋ฐ์ผ๋ฉฐ ๋ณ๋์ ๊ฐ๋ณ ์ฌ์ฉ ๊ถํ์ ์์ต๋๋ค. ๋ ๊ฐ ์ด์์ ํ์ผ์ ๊ตฌ์ฑํ๋ฉด API๊ฐ multiple_single_files=true ๋ฅผ ๋ฐํํ๊ณ , ๊ทธ๋ ์ง ์์ผ๋ฉด multiple_single_files=false ๋ฅผ ๋ฐํํฉ๋๋ค. |
GitHub App ์ฌ์ฉ ๊ถํ
์ฟผ๋ฆฌ ๋งค๊ฐ ๋ณ์๋ฅผ ์ฌ์ฉํ์ฌ GitHub App ๋ฑ๋ก์ ๋ํ ๊ถํ์ ์ ํํ ์ ์์ต๋๋ค. URL ์ฟผ๋ฆฌ ๋งค๊ฐ ๋ณ์์ ๊ฒฝ์ฐ ์ฌ์ฉ ๊ถํ ์ด๋ฆ์ ์ฟผ๋ฆฌ ๋งค๊ฐ ๋ณ์ ์ด๋ฆ์ผ๋ก ์ฌ์ฉํ๊ณ ์ฟผ๋ฆฌ ๊ฐ์ ํด๋น ๊ถํ ์งํฉ์ ๋ํด ๊ฐ๋ฅํ ๊ฐ ์ค ํ๋๋ก ์ค์ ํฉ๋๋ค.
์๋ฅผ ๋ค์ด contents
์ ๋ํ ์ฌ์ฉ์ ์ธํฐํ์ด์ค์์ "์ฝ๊ธฐ ๋ฐ ์ฐ๊ธฐ" ๊ถํ์ ์ ํํ๋ ค๋ฉด ์ฟผ๋ฆฌ ๋ฌธ์์ด์ contents=write
๋ฅผ ํฌํจํฉ๋๋ค. ์๋ฅผ ๋ค์ด blocking
์ ๋ํ ์ฌ์ฉ์ ์ธํฐํ์ด์ค์์ "์ฝ๊ธฐ ์ ์ฉ" ๊ถํ์ ์ ํํ๋ ค๋ฉด ์ฟผ๋ฆฌ ๋ฌธ์์ด์ blocking=read
๋ฅผ ํฌํจํฉ๋๋ค. ์๋ฅผ ๋ค์ด checks
์ ๋ํ ์ฌ์ฉ์ ์ธํฐํ์ด์ค์์ "์ก์ธ์ค ๋ถ๊ฐ" ๊ถํ์ ์ ํํ๋ ค๋ฉด ์ฟผ๋ฆฌ ๋ฌธ์์ด์ checks
๋ฅผ ํฌํจํฉ๋๋ค.
์์ ๊ณ์ ์ด ์ํฐํ๋ผ์ด์ฆ ๋๋ ์ํฐํ๋ผ์ด์ฆ ์์ ์กฐ์ง์ด ์๋ ๊ฒฝ์ฐ, ์ํฐํ๋ผ์ด์ฆ ๊ถํ์ ์์ฒญํ ์ ์์ต๋๋ค.
๊ถํ ๋ฐ GitHub Apps์ ๋ํ ์์ธํ ๋ด์ฉ์ GitHub ์ฑ์ ๊ถํ ์ ํ์(๋ฅผ) ์ฐธ์กฐํ์ธ์. ์ฌ์ฉ ๊ฐ๋ฅํ ๊ถํ ๋ชฉ๋ก๊ณผ ๋งค๊ฐ ๋ณ์๊ฐ ์๋ ์ด๋ฆ์ ๋ณด๋ ค๋ฉด ๊ฐ์ธ์ฉ ์ก์ธ์ค ํ ํฐ ๊ด๋ฆฌ์(๋ฅผ) ์ฐธ์กฐํ์ธ์.
GitHub App ์นํํฌ ์ด๋ฒคํธ
์ฟผ๋ฆฌ ๋งค๊ฐ ๋ณ์๋ฅผ ์ฌ์ฉํ์ฌ GitHub App ์นํํฌ๋ฅผ ์ฌ์ฉํ๋๋ก ์ค์ ํ๊ณ , ์นํํฌ URL์ ์ง์ ํ๊ณ , ํน์ ์ด๋ฒคํธ์ ๋ํ ์นํํฌ ํ์ด๋ก๋๋ฅผ ์์ ํ๋๋ก ์ฑ์ ๊ตฌ๋ ํ ์ ์์ต๋๋ค.
GitHub App ์นํํฌ๋ฅผ ์ฌ์ฉํ๋๋ก ์ค์ ํ๋ ค๋ฉด ์ฟผ๋ฆฌ ๋ฌธ์์ด์ webhook_active=true
๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์นํํฌ ์ด๋ฒคํธ ํ์ด๋ก๋๋ฅผ ๋ณด๋ด๋ ค๋ ์ ์ฒด URL์ ์ง์ ํ๋ ค๋ฉด ์ฟผ๋ฆฌ ๋ฌธ์์ด์ webhook_url
์ ์ฌ์ฉํฉ๋๋ค. ํน์ ์นํํฌ ํ์ด๋ก๋ ์ด๋ฒคํธ์ ์ฑ์ ๊ตฌ๋
ํ๋ ค๋ฉด ์ฟผ๋ฆฌ ๋งค๊ฐ ๋ณ์ ์ด๋ฆ์ผ๋ก events[]
๋ฅผ ์ฌ์ฉํ๊ณ ์ฟผ๋ฆฌ ๊ฐ์ ์นํํฌ ์ด๋ฒคํธ์ ์ด๋ฆ์ผ๋ก ์ค์ ํฉ๋๋ค. ๊ฐ๋ฅํ ์นํํฌ ์ด๋ฒคํธ์ ๊ฐ ์ด๋ฒคํธ๋ฅผ ๊ตฌ๋
ํ๋ ๋ฐ ํ์ํ GitHub App ๊ถํ์ ๋ํ ์์ธํ ๋ด์ฉ์ ์นํํฌ ์ด๋ฒคํธ ๋ฐ ํ์ด๋ก๋์(๋ฅผ) ์ฐธ์กฐํ์ธ์.
์๋ฅผ ๋ค์ด GitHub App์(๋ฅผ) ๊ตฌ๋
ํ์ฌ ์ปค๋ฐ ๋ฉ๋ชจ์ ๊ด๋ จ๋ ํ๋์ ๋ํ ์นํํฌ ํ์ด๋ก๋๋ฅผ ๋ฐ์ผ๋ ค๋ฉด ์ฟผ๋ฆฌ ๋ฌธ์์ด์ &webhook_active=true&webhook_url=https://example.com&events[]=commit_comment
๊ฐ ํฌํจ๋ฉ๋๋ค. commit_comment
์นํํฌ ์ด๋ฒคํธ์๋ GitHub App์ด(๊ฐ) "์ฝํ
์ธ " ๋ฆฌํฌ์งํ ๋ฆฌ ๊ถํ์ ๋ํ ์ฝ๊ธฐ ์์ค ์ด์์ ์ก์ธ์ค ๊ถํ์ด ์์ด์ผ ํฉ๋๋ค. ๋ฐ๋ผ์ ์ฟผ๋ฆฌ ๋ฌธ์์ด์๋ contents
๊ถํ์ read
๋๋ write
๋ก ์ค์ ํ๊ธฐ ์ํ ๋งค๊ฐ ๋ณ์๋ ํฌํจ๋์ด์ผ ํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ GitHub ์ฑ ๊ถํ์ ์ฐธ์กฐํ์ธ์.
์ฟผ๋ฆฌ ๋งค๊ฐ ๋ณ์๋ฅผ ์ฌ์ฉํ์ฌ ์นํํฌ ์ํธ ๊ฐ์ ์ค์ ํ ์ ์์ต๋๋ค. ์ฑ์์ ์นํํฌ๋ฅผ ๋ณดํธํ๊ธฐ ์ํด ๋น๋ฐ์ด ํ์ํ ๊ฒฝ์ฐ ์ฑ์ ๋ฑ๋กํ๋ ์ฌ๋์ด GitHub UI์์ ์ํธ ๊ฐ์ ์ค์ ํด์ผ ํฉ๋๋ค.
์นํํฌ ๋ฐ GitHub Apps์ ๋ํ ์์ธํ ๋ด์ฉ์ GitHub ์ฑ์ ์นํํฌ ์ฌ์ฉ์(๋ฅผ) ์ฐธ์กฐํ์ธ์.