Gmail์ OpenClaw์ ๋ถ์ผ ๋ ๊ฐ์ฅ ๋ง์ด ํท๊ฐ๋ฆฌ๋ ์ง์ ์ โ๋ธ๋ผ์ฐ์ ๋ก ๋ณด๋ ์ผโ๊ณผ โAPI๋ก ์๋ํํ๋ ์ผโ์ ํ ๋ฉ์ด๋ฆฌ๋ก ์๊ฐํ๋ ๊ฒ์ด๋ค. ์ค์ ๋ก๋ ์ด ๋์ ์ฐ์์๊ฐ ๊ฝค ๋ค๋ฅด๋ค. ์ด ๋ฌธ์๋ ์ธ์ Browser Relay๋ฅผ ์ฐ๊ณ , ์ธ์ Gmail API OAuth๋ฅผ ์ฐ๋ฉฐ, ์ด๋ค ๋ณด์ ๊ธฐ์ค์ผ๋ก ์ด์ํด์ผ ๋ ๊นจ์ง๋์ง๋ฅผ ํ ๋ฒ์ ์ ๋ฆฌํ ์ค๋ฌด ๊ฐ์ด๋๋ค.
์๋ด: ๋ณธ๋ฌธ์ ์์ฑํ AI๋ฅผ ํ์ฉํด ์ด์์ ์ ๋ฆฌํ๊ณ , ๊ณต์ ๋ฌธ์ ๊ธฐ์ค์ผ๋ก ์ฌ๋์ด ๊ฒ์ํด ๋ณด์ ํ์ต๋๋ค.
flowchart LR A[๋ฉ์ผ ๊ด๋ จ ์์ฒญ] --> B{๋ฌด์์ด ํ์ํ๊ฐ?} B -->|ํ๋ฉด ํ์ธ/๋ฒํผ ํด๋ฆญ| C[Browser Relay] B -->|๊ฒ์/๋ถ๋ฅ/์ ๊ธฐ ์ ๊ฒ| D[Gmail API OAuth] C --> E[ํญ attach ๊ธฐ๋ฐ ์กฐ์] D --> F[ํ ํฐ ๊ธฐ๋ฐ ์๋ํ] E --> G[๊ฒฐ๊ณผ ๋ณด๊ณ ] F --> G
๊ฒฐ๋ก ๋จผ์
Gmail ์ฐ๊ฒฐ์ **โUI ํ์ธ์ Browser Relay, ๋ฐ๋ณต ์๋ํ๋ Gmail APIโ**๋ก ๋๋์ด ์ฐ๋ ๊ฒ์ด ๊ฐ์ฅ ์์ ํ๋ค.
์ ์๊พธ ํท๊ฐ๋ฆฌ๋
๊ฒ์ผ๋ก๋ ๋ ๋ค โGmail ์ฐ๊ฒฐโ์ด์ง๋ง ์ค์ ๋์์ ์์ ํ ๋ค๋ฅด๋ค.
- Browser Relay๋ Gmail ์น ํ๋ฉด์ ์ง์ ์ด์ด ๋ณด๊ณ ํด๋ฆญํ๋ ๋ฐฉ์์ด๋ค.
- Gmail API OAuth๋ ๋ฉ์ผ ๋ชฉ๋ก, ๋ณธ๋ฌธ, ์ฒจ๋ถ๋ฅผ ์ฝ๋๋ ์๋ํ ๋ฃจํด์ผ๋ก ์ฒ๋ฆฌํ๋ ๋ฐฉ์์ด๋ค.
์ด ์ฐจ์ด๋ฅผ ๋จผ์ ๊ณ ์ ํ์ง ์์ผ๋ฉด,
- ํ๋ฉด์ ๋ณด์ฌ์ผ ํ๋๋ฐ API๋ก๋ง ํด๊ฒฐํ๋ ค ํ๊ฑฐ๋
- ๋ฐ๋ณต ์๋ํ๊ฐ ํ์ํ๋ฐ Relay์๋ง ์์กดํ๊ฒ ๋์ด ์์ ์ด ์๊พธ ํ๋ค๋ฆฐ๋ค.
์น ํ ํ์ํ ์นํธ์ํธ
- ๋ฐ์ํธ์งํจ์ ๋์ผ๋ก ํ์ธํด์ผ ํ๋ฉด Relay.
- ์ ๊ธฐ ์ ๊ฒยท๊ฒ์ยท๋ถ๋ฅยท์ฒจ๋ถ ํ์์ด๋ฉด Gmail API.
- Gmail ๊ถํ์ ๊ธฐ๋ณธ
read-only๋ถํฐ ์์.- ์ญ์ ยท์ธ๋ถ ๋ฐ์กยท๊ถํ ๋ณ๊ฒฝ์ ์๋ ์คํ ๊ธ์ง, ์ฌ๋ ์น์ธ ํ์.
๊ฐ๋ /์์ธ/๋์/์คํ (MECE)
1) ๊ฐ๋ : Gmail ์ฐ๊ฒฐ์ 2๊ฐ์ง ๊ฒฝ๋ก๋ค
| ๊ตฌ๋ถ | Browser Relay | Gmail API OAuth |
|---|---|---|
| ํต์ฌ ์ญํ | ํ๋ฉด ํ์ธยทํด๋ฆญยท์ ๋ ฅ | ๊ฒ์ยท๋ถ๋ฅยท์กฐํยท์๋ํ |
| ๊ฐํ ์์ | ๋ฒํผ ์ํ ํ์ธ, ์ค์ UI ์กฐ์ | ์ ๊ธฐ ๋ชจ๋ํฐ๋ง, ๋๋ ์กฐํ, ์ฒจ๋ถ ํ์ |
| ์ฝํ ์์ | ํฌ๋ก ๊ธฐ๋ฐ ๋ฐ๋ณต ์์ | ํ๋ฉด ์์ ์ง์ ๊ฒ์ฆ |
| ์ฅ์ ํฌ์ธํธ | ํญ attach, ๋ธ๋ผ์ฐ์ ์ํ | ํ ํฐ, scope, OAuth ์ค์ |
ํ ์ค๋ก ๋งํ๋ฉด,
- ์ง๊ธ ๋์ผ๋ก ๋ณด๊ณ ๋๋ฌ์ผ ํ๋ ์ผ์ Relay
- ๋ฐ๋ณต๋๊ฑฐ๋ ์๋์ผ๋ก ๊ตด๋ ค์ผ ํ๋ ์ผ์ API๋ค.
2) ์์ธ: ํ์ฅ์์ ๊ฐ์ฅ ๋ง์ด ํ๋ฆฌ๋ 4๊ฐ์ง
- Gmail ํ๋ฉด ํ์ธ์ด ํ์ํ๋ฐ API๋ง ๋ถ์ฌ ๋๊ณ โ์ ๋ฒํผ ์ํ๋ฅผ ๋ชป ๋ณด์ง?โ๋ผ๊ณ ์๊ฐํจ
- ์ ๊ธฐ ๋ชจ๋ํฐ๋ง์ด ํ์ํ๋ฐ Relay๋ง ์ผ ๋๊ณ ์๋ํ๋ฅผ ๊ธฐ๋ํจ
gmail.readonly๋ก ์ถฉ๋ถํ๋ฐ ์ฒ์๋ถํฐ ๊ณผํ ๊ถํ์ ์๊ตฌํจ- ๋ฉ์ผ ๋ณธ๋ฌธ/์ฒจ๋ถ๋ฅผ ์ ๋ขฐํด ์๋ ๋ต์ฅยท์ธ๋ถ ์ ์ก๊น์ง ์ฐ๊ฒฐํ๋ ค ํจ
3) ๋์: ๊ฐ์ฅ ๋ ๊นจ์ง๋ ์ด์ ๊ธฐ์ค์
- ๊ธฐ๋ณธ ์ด์: Gmail API๋ฅผ ์ฝ๊ธฐ ์ ์ฉ ์ค์ฌ์ผ๋ก ๋๊ณ , ๋ฐ๋ณต ์ ๋ฌด๋ ์ฌ๊ธฐ๋ก ๊ณ ์ ํ๋ค.
- ์์ธ ์ด์: ์ค์ ํ๋ฉด ํ์ธ์ด ํ์ํ ๋๋ง Browser Relay๋ฅผ ์ด๋ค.
- ๋ณด์ ๊ธฐ์ค: ์ญ์ , ์ธ๋ถ ๋ฐ์ก, ๊ถํ ๋ณ๊ฒฝ, ๋๋ ์ด๋์ ์ฌ๋ ์น์ธ ํ๋ฅผ ๊ฑฐ์น๋ค.
- ํ๋จ ์์น: โ์ฝ๊ธฐ๋ง ํ์ํ๊ฐ, ํ๋ฉด ํด๋ฆญ์ด ํ์ํ๊ฐโ๋ฅผ ๋จผ์ ๋ฌป๋๋ค.
4) ์คํ: 5๋ถ ์์ ๊ฒฝ๋ก ๊ณ ๋ฅด๋ ๋ฒ
A. Browser Relay๋ฅผ ๊ณ ๋ฅด๋ฉด ์ข์ ์๊ฐ
- Gmail ์น UI๊ฐ ์ค์ ๋ก ์ด๋ป๊ฒ ๋ณด์ด๋์ง ํ์ธํด์ผ ํ ๋
- ๋ฒํผ, ๋ผ๋ฒจ, ํญ, ๋๋กญ๋ค์ด ์ํ๋ฅผ ์ฌ๋์ด ํจ๊ป ๊ฒ์ฆํด์ผ ํ ๋
- ์๋ํ๋ณด๋ค โ์ง๊ธ ์ด ํ๋ฉด์์ ๋ญ ๋๋ฌ์ผ ํ๋์งโ๊ฐ ์ค์ํ ๋
๋น ๋ฅธ ์์:
- Gmail์ด ์ด๋ฆฐ ํญ์์ Relay ์์ด์ฝ์ ON ํ๋ค.
- attach๋ ํญ์ธ์ง ํ์ธํ๋ค.
- snapshot์ผ๋ก UI๊ฐ ๋ณด์ด๋์ง ์ ๊ฒํ๋ค.
- ํ์ํ ํ์ธยทํด๋ฆญยท์ ๋ ฅ์ ์ํํ๋ค.
- ๋๋๋ฉด Relay๋ฅผ ๋๋ค.
B. Gmail API OAuth๋ฅผ ๊ณ ๋ฅด๋ฉด ์ข์ ์๊ฐ
- ์ ๊ท ๋ฉ์ผ์ 30๋ถ๋ง๋ค ํ์ธํ๋ ํฌ๋ก ์ด ํ์ํ ๋
- ํน์ ๋ฐ์ ์/์ ๋ชฉ/์ฒจ๋ถ ์กฐ๊ฑด์ผ๋ก ์๋ ๊ฒ์ํด์ผ ํ ๋
- ๋ธ๋ผ์ฐ์ ๋ฅผ ์ด์ง ์๊ณ ๋ ์์ ์ ์ผ๋ก ๋ฉ์ผ์ ์ฝ๊ณ ๋ถ๋ฅํด์ผ ํ ๋
๋น ๋ฅธ ์์:
- Google Cloud์์ Desktop OAuth client๋ฅผ ๋ง๋ ๋ค.
- ํ์ํ scope๋ฅผ ์ ํ๋ค. ์ฒ์์
gmail.readonly๊ฐ ๊ธฐ๋ณธ์ด๋ค. - OAuth ์น์ธ ํ ํ ํฐ์ ๋ฐ๊ธ๋ฐ๋๋ค.
- ๋ฉ์ผ ์กฐํ ํ ์คํธ๋ฅผ ๋จผ์ ํ๋ค.
- ํ ์คํธ๊ฐ ์์ ์ ์ด๋ฉด cron/์๋ํ์ ๋ถ์ธ๋ค.
๋ณด์: Gmail ๊ถํ์ ํธ์์ฑ์ด ์๋๋ผ ๊ณต๊ฒฉ๋ฉด๋ ๊ฐ์ด ์ฐ๋ค
๋ฉ์ผ ๋ณธ๋ฌธ๊ณผ ์ฒจ๋ถ์๋ ์ฌ๋์๊ฒ๋ ํ๋ฒํด ๋ณด์ด์ง๋ง, ์์ด์ ํธ์๊ฒ๋ ํ๋ ์ง์์ฒ๋ผ ํด์๋ ์ ์๋ ๋ด์ฉ์ด ์์ผ ์ ์๋ค. ๊ทธ๋์ Gmail ์ฐ๊ฒฐ์ โ์ฐ๊ฒฐ ์ฑ๊ณตโ๋ณด๋ค ๊ถํ์ ์ด๋๊น์ง ์ด์๋์ง๊ฐ ๋ ์ค์ํ๋ค.
๊ธฐ๋ณธ ๋ณด์ ์์น 5๊ฐ
- ์ต์ ๊ถํ ์์น
๊ธฐ๋ณธ์gmail.readonly๋ถํฐ ์์ํ๋ค. - ๊ณ ์ํ ์ก์
์น์ธ์
์ญ์ , ์ธ๋ถ ์ ์ก, ๋๋ ์ด๋์ ์๋ ์คํํ์ง ์๋๋ค. - allowlist ์ฐ์
์ ๋ขฐ ๋ฐ์ ์/๋๋ฉ์ธ/๊ฒ์ ์กฐ๊ฑด๋ง ์๋ํ ๋์์ผ๋ก ๋ฌถ๋๋ค. - ์ฒจ๋ถยท๋งํฌ๋ ๋จ๊ณ ๋ถ๋ฆฌ
๋ฐ๋ก ์ด์ง ๋ง๊ณ , ๊ฒ์ฌโํ๋จโ์คํ์ผ๋ก ๋๋๋ค. - UI ํ์ธ ๊ฒฝ๋ก ์ ์ง
์์ฌ ๊ฑด์ Relay๋ก ์ฌ๋์ด ์ต์ข ํ์ธํ๋ค.
10์ด ์ฒดํฌ
- ์ด ์์ ์ ์ฝ๊ธฐ ์ ์ฉ ๊ถํ๋ง์ผ๋ก ๊ฐ๋ฅํ๊ฐ?
- ์ง๊ธ ํ์ํ ๊ฑด โํด๋ฆญโ์ธ๊ฐ, โ๊ฒ์/๋ถ๋ฅโ์ธ๊ฐ?
- ์ญ์ ยท์ธ๋ถ ๋ฐ์ก ๊ฐ์ ์ํ ์ก์ ์ด ์๋์ผ๋ก ์ด์ด์ง์ง ์๋๊ฐ?
๋ฐ๋ก ์ ์ฉ ๊ฐ๋ฅํ ๋ํ ์ ์ฆ์ผ์ด์ค
์ฌ๋ก A. ๊ต์ก์์ฒญ ๋ฉ์ผ ๋ชจ๋ํฐ๋ง
- ๋ชฉ์ : ์ ๊ท ๋ฌธ์๋ฅผ ๋์น์ง ์๊ธฐ
- ๊ถ์ฅ ๊ฒฝ๋ก: Gmail API OAuth
- ์ด์ : 30๋ถ ์ฃผ๊ธฐ ๊ฐ์, ํํฐ๋ง, ์์ฝ์ API๊ฐ ๋ ์์ ์ ์ด๋ค.
์ฌ๋ก B. ๋ฉ์ผ ํ๋ฉด์์ ์ค์ ๋ฒํผ ์ํ ํ์ธ
- ๋ชฉ์ : โ์ด ๋ผ๋ฒจ์ด ๋ณด์ด๋์งโ, โ์ด ๋ฒํผ์ด ํ์ฑํ๋๋์งโ ํ์ธ
- ๊ถ์ฅ ๊ฒฝ๋ก: Browser Relay
- ์ด์ : API๋ ํ๋ฉด์ ๋ณด์ฌ์ฃผ์ง ๋ชปํ๋ค.
์ฌ๋ก C. ํน์ ๋ฐ์ ์ + ์ฒจ๋ถ ํ์ฅ์ ํ์
- ๋ชฉ์ : ์๋ฅผ ๋ค์ด
pptx์ฒจ๋ถ๋ง ๋ชจ์ ๋ณด๊ณ ์ถ์ ๋ - ๊ถ์ฅ ๊ฒฝ๋ก: Gmail API OAuth
- ์ด์ : ํํฐ, ๊ฒ์, ๋ฐ๋ณต ์ฒ๋ฆฌ์ ๊ฐํ๋ค.
์ฌ๋ก D. ์์ฌ ๋ฉ์ผ ์ต์ข ํ์ธ
- ๋ชฉ์ : ๋งํฌ/์ฒจ๋ถ๊ฐ ์์ํ ๋ฉ์ผ์ ์ค์ ํ๋ฉด์ผ๋ก ๊ฒํ
- ๊ถ์ฅ ๊ฒฝ๋ก: API๋ก 1์ฐจ ๋ถ๋ฅ + Relay๋ก ์ต์ข ํ์ธ
- ์ด์ : ์๋์ ์์ ์ ๊ฐ์ด ์ฑ๊ธธ ์ ์๋ค.
์์ฃผ ๋๋ ๋ฌธ์ ์ ๋์
| ๋ฌธ์ | ๋ณดํต ์์ธ | ๋จผ์ ํ ๋์ |
|---|---|---|
no tab is connected | Relay ON ํญ์ด ์์ | Gmail ํญ์์ Relay ์์ด์ฝ ON ํ ๋ค์ ํ์ธ |
redirect_uri_mismatch | OAuth client ํ์ /์ค์ ๋ถ์ผ์น | Desktop OAuth client ๊ธฐ์ค์ผ๋ก ์ฌ์์ฑ |
token not found | OAuth ์น์ธ ๋ฏธ์๋ฃ ๋๋ ์ ์ฅ ์คํจ | ์น์ธ ํ๋ฆ ์๋ฃ ํ ํ ํฐ ๊ฒฝ๋ก ์ฌํ์ธ |
| ์ฝ๊ธฐ๋ ๋๋๋ฐ ์๋ํ๊ฐ ๋ถ์์ ํจ | Relay์ ๋ฐ๋ณต ์์ ์ ์ต์ง๋ก ํ์ | ์ ๊ธฐ ์์ ์ API ๊ฒฝ๋ก๋ก ๋ถ๋ฆฌ |
| ๊ถํ์ด ๊ณผํ๊ฒ ์ด๋ฆผ | ์ฒ์๋ถํฐ ์ฐ๊ธฐ ๊ถํ๊น์ง ํ์ฉ | read-only๋ก ๋ค์ ์์ํ๊ณ ์น์ธ์ ์ ์ฉ |
๋์ ์ฐ์ ์์ (๋๊ฐ/๋ฌด์/์์)
- ์ด์ ๋ด๋น์: ํ ๊ธฐ๋ณธ๊ฐ์ โ๋ฐ๋ณต ์ ๋ฌด๋ Gmail API, UI ํ์ธ์ Relayโ๋ก ๋ฌธ์ํํ๋ค.
- ์๋ํ ๋ด๋น์:
gmail.readonly๊ธฐ์ค์ผ๋ก ์ฒซ ํ ์คํธ๋ฅผ ๋ง๋ค๊ณ , allowlist ์กฐ๊ฑด์ ๋จผ์ ๊ณ ์ ํ๋ค. - ์ค์ฌ์ฉ์: ์์ฌ ๋ฉ์ผยท๋ฏผ๊ฐ ๋ฉ์ผ์ ์๋ ์คํํ์ง ์๊ณ Relay๋ก ๋์ผ๋ก ํ์ธํ๋ ์ต๊ด์ ๋๋ค.
์ ์ฉ ์ฒดํฌ๋ฆฌ์คํธ
- Gmail UI ํ์ธ๊ณผ ๋ฐ๋ณต ์๋ํ ๊ฒฝ๋ก๋ฅผ ๋ถ๋ฆฌํ๋ค.
- ์ ๊ธฐ ์ ๊ฒ/๋ถ๋ฅ๋ Gmail API ์ค์ฌ์ผ๋ก ์ค๊ณํ๋ค.
- Gmail ๊ถํ์
read-only์์ ์์ํ๋ค. - ์ญ์ /์ธ๋ถ ๋ฐ์ก/๊ถํ ๋ณ๊ฒฝ์ ์น์ธ ํ๋ฅผ ๊ฑฐ์น๊ฒ ํ๋ค.
- ์ ๋ขฐ ๋ฐ์ ์/๋๋ฉ์ธ allowlist๋ฅผ ์ ์ํ๋ค.
- ์์ฌ ๋ฉ์ผ์ Relay๋ก ์ต์ข ํ์ธํ๋๋ก ๋จ๊ฒจ ๋๋ค.
๋ค์ ์ฝ๊ธฐ
- 12. ๋ธ๋ผ์ฐ์ ๋ฆด๋ ์ด ์ฐ๋ ๊ตฌ์กฐ
- 16. Gmail ํธ๋ฌ๋ธ์ํ 7๊ฐ์ง
- 06. Cron Job
- 34. ์ธ์ ํด๋ก ๋ธ๋ก๊ทธ ๊ฒ์ ์๋ํ
AI ์์ฑ ๊ฒฐ๊ณผ๋ฌผ์ ํฌํจํ ๋ฌธ์์ ๋๋ค. ๋ฐฐํฌ ์ OAuth ๋ฒ์, ํ ํฐ ์ ์ฅ ์์น, ์น์ธ ์ ์ฑ ์ ๊ฐ ์ด์ ํ๊ฒฝ์ ๋ง๊ฒ ์ต์ข ํ์ธํ์ธ์.