From e18d481c217de7af3a603f0114ac9f9ccf6c8b0a Mon Sep 17 00:00:00 2001 From: YeonGyu-Kim Date: Tue, 28 Apr 2026 10:48:31 +0900 Subject: [PATCH] docs(readme): update ko README for team-mode --- README.ko.md | 344 +++++++++++++++++++++++++++++---------------------- 1 file changed, 195 insertions(+), 149 deletions(-) diff --git a/README.ko.md b/README.ko.md index 96bfb731a..59b1d3aae 100644 --- a/README.ko.md +++ b/README.ko.md @@ -1,46 +1,48 @@ -> [!WARNING] -> **임시 공지 (이번 주): 메인테이너 대응 지연 안내** -> -> 핵심 메인테이너 Q가 부상을 입어, 이번 주에는 이슈/PR 응답 및 릴리스가 지연될 수 있습니다. -> 양해와 응원에 감사드립니다. - > [!TIP] > **Building in Public** > -> 메인테이너가 Jobdori를 통해 oh-my-opencode를 실시간으로 개발하고 있습니다. Jobdori는 OpenClaw를 기반으로 대폭 커스터마이징된 AI 어시스턴트입니다. -> 모든 기능 개발, 버그 수정, 이슈 트리아지를 Discord에서 실시간으로 확인하세요. +> 메인테이너는 oh-my-openagent를 실시간으로 개발하고 유지보수합니다. OpenClaw를 크게 커스터마이즈한 포크 위에서 동작하는 AI 어시스턴트 Jobdori와 함께요. +> 모든 기능, 모든 수정, 모든 이슈 트리아지 — 전부 Discord에서 라이브로. > > [![Building in Public](./.github/assets/building-in-public.png)](https://discord.gg/PUwSMR9XNk) > -> [**→ #building-in-public에서 확인하기**](https://discord.gg/PUwSMR9XNk) +> [**→ #building-in-public 채널에서 지켜보기**](https://discord.gg/PUwSMR9XNk) +> [!NOTE] +> +> [![Sisyphus Labs - Sisyphus is the agent that codes like your team.](./.github/assets/sisyphuslabs.png?v=2)](https://sisyphuslabs.ai) +> > **Sisyphus를 완성형 프로덕트로 만들어 프론티어 에이전트의 미래를 정의하고 있습니다.
대기 명단은 [여기](https://sisyphuslabs.ai)에서 받습니다.** > [!TIP] -> 저희와 함께 하세요! +> 함께해요! > -> | [Discord link](https://discord.gg/PUwSMR9XNk) | [Discord 커뮤니티](https://discord.gg/PUwSMR9XNk)에 가입하여 기여자 및 다른 `oh-my-opencode` 사용자들과 소통하세요. | +> | [Discord link](https://discord.gg/PUwSMR9XNk) | 기여자와 `oh-my-openagent` 사용자들을 만나려면 [Discord 커뮤니티](https://discord.gg/PUwSMR9XNk)로 오세요. | > | :-----| :----- | -> | [X link](https://x.com/justsisyphus) | `oh-my-opencode`에 대한 소식과 업데이트는 제 X 계정에 올라왔었지만,
실수로 정지된 이후에는 [@justsisyphus](https://x.com/justsisyphus)가 대신 업데이트를 게시하고 있습니다. | -> | [GitHub Follow](https://github.com/code-yeongyu) | 더 많은 프로젝트를 보려면 GitHub에서 [@code-yeongyu](https://github.com/code-yeongyu)를 팔로우하세요. | +> | [X link](https://x.com/justsisyphus) | 원래 제 X 계정에서 `oh-my-openagent` 업데이트를 올렸는데, 계정이 실수로 정지되어 지금은 [@justsisyphus](https://x.com/justsisyphus)에서 대신 업데이트가 올라옵니다. | +> | [GitHub Follow](https://github.com/code-yeongyu) | 다른 프로젝트도 궁금하다면 GitHub에서 [@code-yeongyu](https://github.com/code-yeongyu)를 팔로우하세요. |
-[![Oh My OpenCode](./.github/assets/hero.jpg)](https://github.com/code-yeongyu/oh-my-openagent#oh-my-opencode) +[![Oh My OpenAgent](./.github/assets/hero.jpg)](https://github.com/code-yeongyu/oh-my-openagent#oh-my-openagent) -[![Preview](./.github/assets/omo.png)](https://github.com/code-yeongyu/oh-my-openagent#oh-my-opencode) +[![Preview](./.github/assets/omo.png)](https://github.com/code-yeongyu/oh-my-openagent#oh-my-openagent)
-> Anthropic은 당신을 가두고 싶어 합니다. Claude Code는 멋진 감옥이지만, 여전히 감옥일 뿐이죠. +> 이건 oh-my-openagent의 Team Mode 동작 장면입니다. Kimi K2.6과 GPT-5.5로요. + +> Anthropic은 [**우리 때문에 OpenCode를 차단했습니다.**](https://x.com/thdxr/status/2010149530486911014) **진짜입니다.** +> 그들은 당신을 가둬두고 싶어 합니다. Claude Code는 좋은 감옥이지만, 여전히 감옥입니다. > -> 우리는 여기서 그런 가두리를 하지 않습니다. Claude로 오케스트레이션하고, GPT로 추론하고, Kimi로 속도 내고, Gemini로 비전 처리한다. 미래는 하나의 승자를 고르는 게 아니라 전부를 오케스트레이션하는 거다. 모델은 매달 싸지고, 매달 똑똑해진다. 어떤 단일 프로바이더도 독재하지 못할 것이다. 우리는 그 열린 시장을 위해 만들고 있다. +> 2시간짜리 작업에 200달러를 낼 필요는 없습니다. +> 미래는 한 명의 승자를 고르는 게 아니라, 모두를 오케스트레이션하는 쪽에 있습니다. 모델은 매달 저렴해지고, 매달 똑똑해집니다. 어떤 벤더도 독점하지 못합니다. 우리는 그런 오픈 마켓을 위해 빌드합니다. 그들의 담장 안 정원이 아니라.
[![GitHub Release](https://img.shields.io/github/v/release/code-yeongyu/oh-my-openagent?color=369eff&labelColor=black&logo=github&style=flat-square)](https://github.com/code-yeongyu/oh-my-openagent/releases) -[![npm downloads](https://img.shields.io/npm/dt/oh-my-opencode?color=ff6b35&labelColor=black&style=flat-square)](https://www.npmjs.com/package/oh-my-opencode) +[![npm downloads](https://img.shields.io/endpoint?url=https%3A%2F%2Fohmyopenagent.com%2Fapi%2Fnpm-downloads&style=flat-square)](https://www.npmjs.com/package/oh-my-opencode) [![GitHub Contributors](https://img.shields.io/github/contributors/code-yeongyu/oh-my-openagent?color=c4f042&labelColor=black&style=flat-square)](https://github.com/code-yeongyu/oh-my-openagent/graphs/contributors) [![GitHub Forks](https://img.shields.io/github/forks/code-yeongyu/oh-my-openagent?color=8ae8ff&labelColor=black&style=flat-square)](https://github.com/code-yeongyu/oh-my-openagent/network/members) [![GitHub Stars](https://img.shields.io/github/stars/code-yeongyu/oh-my-openagent?color=ffcb47&labelColor=black&style=flat-square)](https://github.com/code-yeongyu/oh-my-openagent/stargazers) @@ -56,169 +58,171 @@ ## 리뷰 -> "이것 덕분에 Cursor 구독을 취소했습니다. 오픈소스 커뮤니티에서 믿을 수 없는 일들이 일어나고 있네요." - [Arthur Guiot](https://x.com/arthur_guiot/status/2008736347092382053?s=20) +> "Cursor 구독을 해지하게 만들었습니다. 오픈소스 커뮤니티에서 믿기지 않는 일들이 벌어지고 있어요." - [Arthur Guiot](https://x.com/arthur_guiot/status/2008736347092382053?s=20) -> "Claude Code가 인간이 3개월 걸릴 일을 7일 만에 한다면, Sisyphus는 1시간 만에 해냅니다. 작업이 끝날 때까지 그냥 계속 알아서 작동합니다. 이건 정말 규율이 잡힌 에이전트예요."
- B, Quant Researcher +> "Claude Code가 7일에 하는 일을 사람이 3개월 걸려 한다고 치면, Sisyphus는 1시간 만에 끝냅니다. 태스크가 끝날 때까지 그냥 돌아갑니다. 말 그대로 기강 잡힌 에이전트예요."
- B, 퀀트 리서처 -> "Oh My Opencode로 하루 만에 eslint 경고 8000개를 해결했습니다."
- [Jacob Ferrari](https://x.com/jacobferrari_/status/2003258761952289061) +> "Oh My Opencode로 하루 만에 eslint 경고 8000개를 날려버렸습니다."
- [Jacob Ferrari](https://x.com/jacobferrari_/status/2003258761952289061) -> "Ohmyopencode와 ralph loop를 써서 45k 라인짜리 tauri 앱을 하룻밤 만에 SaaS 웹앱으로 변환했어요. 인터뷰 모드로 시작해서, 제가 쓴 프롬프트에 대해 질문하고 추천을 부탁했죠. 일하는 걸 지켜보는 것도 재밌었고, 아침에 일어났더니 웹사이트가 대부분 돌아가고 있는 걸 보고 경악했습니다!" - [James Hargis](https://x.com/hargabyte/status/2007299688261882202) +> "4만 5천 줄짜리 Tauri 앱을 Ohmyopencode와 Ralph Loop로 하룻밤 사이에 SaaS 웹 앱으로 전환했습니다. 'interview me' 프롬프트부터 시작해서 질문들에 대한 평가와 개선 제안을 받았어요. 작업 과정을 지켜보는 것도 즐거웠고, 아침에 일어나니 거의 동작하는 사이트가 나와 있더군요!" - [James Hargis](https://x.com/hargabyte/status/2007299688261882202) -> "oh-my-opencode 쓰세요, 다시는 예전으로 못 돌아갑니다."
- [d0t3ch](https://x.com/d0t3ch/status/2001685618200580503) +> "oh-my-opencode 한 번 써보면 돌아갈 수 없습니다."
- [d0t3ch](https://x.com/d0t3ch/status/2001685618200580503) -> "뭐가 이렇게 대단한 건지 아직 정확하게 말로 표현하긴 어려운데, 개발 경험 자체가 완전히 다른 차원에 도달해버렸어요." - [苔硯:こけすずり](https://x.com/kokesuzuri/status/2008532913961529372?s=20) +> "뭐가 그렇게 대단한지 정확히 말로는 아직 못 하겠는데, 개발 경험이 완전히 다른 차원으로 넘어갔습니다." - [ +苔硯:こけすずり](https://x.com/kokesuzuri/status/2008532913961529372?s=20) -> "주말에 마인크래프트/소울라이크 같은 괴물 같은 걸 만들어보려고 open code, oh my opencode, supermemory로 실험 중입니다. 점심 먹고 산책 다녀오는 동안 앉기 애니메이션을 추가하라고 시켜뒀어요. [영상]" - [MagiMetal](https://x.com/MagiMetal/status/2005374704178373023) +> "이번 주말은 open code, oh my opencode, supermemory로 마인크래프트/소울즈류 합성체를 만들고 있습니다." +> "점심 먹고 산책 다녀오는 동안 크라우치 애니메이션 추가해달라고 시켜놨습니다. [영상]" - [MagiMetal](https://x.com/MagiMetal/status/2005374704178373023) -> "이걸 코어에 당겨오고 저 사람 스카우트해야 돼요. 진심으로. 이거 진짜, 진짜, 진짜 좋습니다."
- Henning Kilset +> "이걸 코어에 편입시키고 만든 사람 영입하세요. 진심으로요. 진짜, 진짜, 진짜 좋습니다."
- Henning Kilset -> "설득할 수만 있다면 @yeon_gyu_kim 채용하세요, 이 사람이 opencode를 혁명적으로 바꿨습니다."
- [mysticaltech](https://x.com/mysticaltech/status/2001858758608376079) +> "@yeon_gyu_kim 설득할 수 있으면 꼭 뽑으세요. 이 친구 opencode를 혁신했어요."
- [mysticaltech](https://x.com/mysticaltech/status/2001858758608376079) -> "Oh My OpenCode는 진짜 미쳤다" - [YouTube - Darren Builds AI](https://www.youtube.com/watch?v=G_Snfh2M41M) +> "Oh My OpenCode는 진짜 미쳤습니다" - [YouTube - Darren Builds AI](https://www.youtube.com/watch?v=G_Snfh2M41M) --- -# Oh My OpenCode +# Oh My OpenAgent -Claude Code, Codex, 온갖 OSS 모델들 사이에서 헤매고 있나요. 워크플로우 설정하랴, 에이전트 디버깅하랴 피곤할 겁니다. +Claude Code, Codex, 듣도 보도 못한 OSS 모델들까지 저글링 중이시죠. 워크플로우를 손보고, 에이전트를 디버깅하고. -우리가 그 삽질 다 해놨습니다. 모든 걸 테스트했고, 실제로 되는 것만 남겼습니다. - -OmO 설치하고. `ultrawork` 치세요. 끝. +그 일은 우리가 했습니다. 전부 테스트했고, 실전에 먹힌 것만 남겼습니다. +oh-my-openagent를 설치하세요. `ultrawork`를 입력하세요. 끝. ## 설치 -### 사람용 +### 사람을 위한 설치 -다음 프롬프트를 복사해서 여러분의 LLM 에이전트(Claude Code, AmpCode, Cursor 등)에 붙여넣으세요: +이 프롬프트를 당신의 LLM 에이전트(Claude Code, AmpCode, Cursor 등)에 붙여넣으세요: ``` -Install and configure oh-my-opencode by following the instructions here: +Install and configure oh-my-openagent by following the instructions here: https://raw.githubusercontent.com/code-yeongyu/oh-my-openagent/refs/heads/dev/docs/guide/installation.md ``` -아니면 [설치 가이드](docs/guide/installation.md)를 직접 읽으셔도 되지만, 진심으로 그냥 에이전트한테 시키세요. 사람은 설정하다 꼭 오타 냅니다. +아니면 [설치 가이드](docs/guide/installation.md)를 직접 읽으셔도 됩니다. 다만 진심으로, 에이전트한테 시키세요. 사람은 설정 파일을 오타로 망칩니다. -### LLM 에이전트용 +### LLM 에이전트를 위한 설치 -설치 가이드를 가져와서 따라 하세요: +설치 가이드를 받아와서 그대로 따르세요: ```bash curl -s https://raw.githubusercontent.com/code-yeongyu/oh-my-openagent/refs/heads/dev/docs/guide/installation.md ``` -**참고**: 배포된 패키지와 바이너리 이름은 `oh-my-opencode`를 사용하세요. `opencode.json` 내부에서는 호환성 레이어가 이제 플러그인 엔트리 `oh-my-openagent`를 우선시하며, 레거시 `oh-my-opencode` 엔트리는 경고와 함께 여전히 로드됩니다. 플러그인 설정 파일은 여전히 일반적으로 `oh-my-opencode.json` 또는 `oh-my-opencode.jsonc`를 사용하며, 전환 기간 동안 레거시와 변경된 basename 모두 인식됩니다. +**참고**: 배포된 npm 패키지와 CLI 바이너리 이름은 여전히 `oh-my-opencode`입니다(전환 기간 동안 `oh-my-openagent`로도 함께 배포됩니다). `opencode.json` 안에서는 호환성 레이어가 이제 `oh-my-openagent` 플러그인 엔트리를 우선합니다. 기존 `oh-my-opencode` 엔트리도 경고와 함께 여전히 로드됩니다. 플러그인 설정 파일도 여전히 `oh-my-opencode.json`이나 `oh-my-opencode.jsonc`를 많이 씁니다. 전환 기간 동안에는 기존 이름과 새 이름 둘 다 인식됩니다. -익명 텔레메트리는 설치 및 런타임 안정성 개선을 위해 기본적으로 활성화되어 있습니다. PostHog를 사용하며 해시된 설치 식별자를 사용하고 원시 호스트명은 절대 사용하지 않습니다. `OMO_SEND_ANONYMOUS_TELEMETRY=0` 또는 `OMO_DISABLE_POSTHOG=1`로 비활성화할 수 있습니다. [개인정보처리방침](docs/legal/privacy-policy.md)과 [서비스 이용약관](docs/legal/terms-of-service.md)을 참조하세요. +설치·런타임 신뢰성 향상을 위해 익명 텔레메트리가 기본 활성화되어 있습니다. PostHog를 사용하며 호스트명은 해시된 설치 식별자로만 기록됩니다(호스트명 원문은 절대 수집하지 않습니다). `OMO_SEND_ANONYMOUS_TELEMETRY=0` 또는 `OMO_DISABLE_POSTHOG=1`로 끌 수 있습니다. 자세한 내용은 [개인정보처리방침](docs/legal/privacy-policy.md)과 [이용약관](docs/legal/terms-of-service.md)을 참고하세요. --- ## 이 README 건너뛰기 -문서 읽는 시대는 지났습니다. 그냥 이 텍스트를 에이전트한테 붙여넣으세요: +이제 문서 읽는 시대는 지났습니다. 그냥 아래를 에이전트에 붙여넣으세요: ``` Read this and tell me why it's not just another boilerplate: https://raw.githubusercontent.com/code-yeongyu/oh-my-openagent/refs/heads/dev/README.md ``` -## 핵심 기능 + +## 하이라이트 ### 🪄 `ultrawork` -진짜 이걸 다 읽고 계시나요? 대단하네요. +아직도 이 문서를 읽고 있다고요? 대단하네요. -설치하세요. `ultrawork` (또는 `ulw`) 치세요. 끝. +설치하세요. `ultrawork`(또는 `ulw`)를 입력하세요. 끝. -아래 내용들, 모든 기능, 모든 최적화, 전혀 알 필요 없습니다. 그냥 알아서 다 됩니다. +아래 나오는 모든 기능, 모든 최적화는 몰라도 됩니다. 그냥 작동합니다. -다음 구독만 있어도 ultrawork는 충분히 잘 돌아갑니다 (본 프로젝트와 무관하며, 개인적인 추천일 뿐입니다): +아래 구독 조합만으로도 `ultrawork`는 잘 돌아갑니다(이 프로젝트와는 무관한 개인 추천입니다): - [ChatGPT 구독 ($20)](https://chatgpt.com/) - [Kimi Code 구독 ($19)](https://www.kimi.com/code) - [GLM Coding 요금제 ($10)](https://z.ai/subscribe) - 종량제(pay-per-token) 대상자라면 kimi와 gemini 모델을 써도 비용이 별로 안 나옵니다. -| | 기능 | 역할 | -| :---: | :------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| 🤖 | **기강 잡힌 에이전트 (Discipline Agents)** | Sisyphus가 Hephaestus, Oracle, Librarian, Explore를 오케스트레이션합니다. 완전한 AI 개발팀이 병렬로 돌아갑니다. | -| ⚡ | **`ultrawork` / `ulw`** | 단어 하나면 됩니다. 모든 에이전트가 활성화되고 다 끝날 때까지 멈추지 않습니다. | -| 🚪 | **[IntentGate](https://factory.ai/news/terminal-bench)** | 사용자의 진짜 의도를 분석한 뒤 분류하거나 행동합니다. 더 이상 문자 그대로 오해해서 헛짓거리하는 일이 없습니다. | -| 🔗 | **해시 기반 편집 툴** | `LINE#ID` 콘텐츠 해시로 모든 변경 사항을 검증합니다. stale-line 에러 0%. [oh-my-pi](https://github.com/can1357/oh-my-pi)에서 영감을 받았습니다. [하니스 프로블러 →](https://blog.can.ac/2026/02/12/the-harness-problem/) | -| 🛠️ | **LSP + AST-Grep** | 워크스페이스 단위 이름 변경, 빌드 전 진단, AST 기반 재작성. 에이전트에게 IDE급 정밀도를 제공합니다. | -| 🧠 | **백그라운드 에이전트** | 5명 이상의 전문가를 병렬로 투입합니다. 컨텍스트는 가볍게 유지하고 결과는 준비될 때 받습니다. | -| 📚 | **기본 내장 MCP** | Exa(웹 검색), Context7(공식 문서), Grep.app(GitHub 검색). 항상 켜져 있습니다. | -| 🔁 | **Ralph Loop / `/ulw-loop`** | 자기 참조 루프. 100% 완료될 때까지 절대 멈추지 않습니다. | -| ✅ | **Todo 강제 집행** | 에이전트가 딴짓한다고요? 시스템이 멱살 잡고 끌고 옵니다. 당신의 작업은 무조건 끝납니다. | -| 💬 | **주석 검사기** | 주석에 AI 냄새나는 헛소리를 빼버립니다. 시니어 개발자가 짠 것 같은 코드가 됩니다. | -| 🖥️ | **Tmux 연동** | 완전한 인터랙티브 터미널. REPL, 디버거, TUI 앱들 모두 실시간으로 돌아갑니다. | -| 🔌 | **Claude Code 호환성** | 기존 훅, 명령어, 스킬, MCP, 플러그인? 전부 여기서 그대로 돌아갑니다. | -| 🎯 | **스킬 내장 MCP** | 스킬이 자기만의 MCP 서버를 들고 다닙니다. 컨텍스트가 부풀어 오르지 않습니다. | -| 📋 | **Prometheus 플래너** | 인터뷰 모드로 코드 한 줄 만지기 전에 전략적인 계획부터 세웁니다. | -| 🔍 | **`/init-deep`** | 프로젝트 전체에 걸쳐 계층적인 `AGENTS.md` 파일을 자동 생성합니다. 토큰 효율과 에이전트 성능 둘 다 잡습니다. | +| | 기능 | 하는 일 | +| :---: | :------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| 🤖 | **Discipline Agents** | Sisyphus가 Hephaestus, Oracle, Librarian, Explore를 지휘합니다. 병렬로 도는 풀스택 AI 개발팀. | +| ⚡ | **`ultrawork` / `ulw`** | 한 단어. 모든 에이전트가 켜집니다. 끝날 때까지 멈추지 않습니다. | +| 🚪 | **[IntentGate](https://factory.ai/news/terminal-bench)** | 분류하거나 행동하기 전에 사용자의 진짜 의도부터 분석합니다. 문자 그대로 오해하는 일은 끝. | +| 🔗 | **Hash-Anchored Edit Tool** | `LINE#ID` 콘텐츠 해시가 모든 변경을 검증합니다. 낡은 라인 에러 0건. [oh-my-pi](https://github.com/can1357/oh-my-pi)에서 영감. [The Harness Problem →](https://blog.can.ac/2026/02/12/the-harness-problem/) | +| 🛠️ | **LSP + AST-Grep** | 워크스페이스 리네임, 빌드 전 진단, AST 기반 리라이트. 에이전트에게도 IDE 수준의 정밀도. | +| 🧠 | **Background Agents** | 전문가 5명 이상을 동시에 발사. 컨텍스트는 가볍게. 결과는 준비되면 도착. | +| 📚 | **Built-in MCPs** | Exa(웹 검색), Context7(공식 문서), Grep.app(GitHub 검색). 항상 켜져 있음. | +| 🔁 | **Ralph Loop / `/ulw-loop`** | 자기참조 루프. 100% 끝날 때까지 멈추지 않습니다. | +| ✅ | **Todo Enforcer** | 에이전트가 놀고 있나요? 시스템이 다시 끌어옵니다. 당신의 작업은 반드시 끝납니다. | +| 💬 | **Comment Checker** | 주석에 AI 슬롭 금지. 시니어가 쓴 것처럼 읽히는 코드. | +| 🖥️ | **Tmux Integration** | 풀 인터랙티브 터미널. REPL, 디버거, TUI 전부 라이브. | +| 🔌 | **Claude Code Compatible** | 쓰시던 hook, command, skill, MCP, plugin 전부 그대로 동작합니다. | +| 🎯 | **Skill-Embedded MCPs** | 스킬이 자기만의 MCP 서버를 들고 다닙니다. 컨텍스트 낭비 없음. | +| 📋 | **Prometheus Planner** | 실행 전 인터뷰 모드로 전략 플래닝. | +| 🔍 | **`/init-deep`** | 프로젝트 전반에 계층형 `AGENTS.md` 파일을 자동 생성합니다. 토큰 효율에도, 에이전트 성능에도 좋습니다. | -### 기강 잡힌 에이전트 (Discipline Agents) +### Discipline Agents
-**Sisyphus** (`claude-opus-4-7` / **`kimi-k2.5`** / **`glm-5`**)는 당신의 메인 오케스트레이터입니다. 공격적인 병렬 실행으로 계획을 세우고, 전문가들에게 위임하며, 완료될 때까지 밀어붙입니다. 중간에 포기하는 법이 없습니다. +**Sisyphus** (`claude-opus-4-7` / **`kimi-k2.5`** / **`glm-5`**)는 메인 오케스트레이터입니다. 계획을 세우고, 전문가에게 위임하고, 공격적인 병렬 실행으로 작업을 끝까지 밀어붙입니다. 중간에 멈추지 않습니다. -**Hephaestus** (`gpt-5.4`)는 당신의 자율 딥 워커입니다. 레시피가 아니라 목표를 주세요. 베이비시터 없이 알아서 코드베이스를 탐색하고, 패턴을 연구하며, 끝에서 끝까지 전부 해냅니다. *진정한 장인(The Legitimate Craftsman).* +**Hephaestus** (`gpt-5.4`)는 자율적으로 깊게 파는 작업자입니다. 레시피가 아니라 목표를 주세요. 코드베이스를 탐색하고, 패턴을 조사하고, 손을 잡아주지 않아도 엔드투엔드로 실행합니다. *The Legitimate Craftsman.* -**Prometheus** (`claude-opus-4-7` / **`kimi-k2.5`** / **`glm-5`**)는 당신의 전략 플래너입니다. 인터뷰 모드로 작동합니다. 코드 한 줄 만지기 전에 질문을 던져 스코프를 파악하고 상세한 계획부터 세웁니다. +**Prometheus** (`claude-opus-4-7` / **`kimi-k2.5`** / **`glm-5`**)는 전략 플래너입니다. 인터뷰 모드: 질문으로 스코프를 파악하고, 코드에 손대기 전에 상세한 계획을 만듭니다. -모든 에이전트는 해당 모델의 특장점에 맞춰 튜닝되어 있습니다. 수동으로 모델 바꿔가며 뻘짓하지 마세요. [더 알아보기 →](docs/guide/overview.md) +모든 에이전트는 자기 모델의 강점에 맞춰 튜닝되어 있습니다. 수동으로 모델을 돌려가며 쓸 필요가 없습니다. [더 알아보기 →](docs/guide/overview.md) -> Anthropic이 [우리 때문에 OpenCode를 막아버렸습니다.](https://x.com/thdxr/status/2010149530486911014) 그래서 Hephaestus의 별명이 "진정한 장인(The Legitimate Craftsman)"인 겁니다. (어디서 많이 들어본 이름이죠?) 아이러니를 노렸습니다. +> Anthropic은 [우리 때문에 OpenCode를 차단했습니다.](https://x.com/thdxr/status/2010149530486911014) 그래서 Hephaestus에게 "The Legitimate Craftsman"이라는 별명이 붙었습니다. 의도된 아이러니입니다. > -> Opus에서 제일 잘 돌아가긴 하지만, Kimi K2.5 + GPT-5.4 조합만으로도 바닐라 Claude Code는 가볍게 바릅니다. 설정도 필요 없습니다. +> Opus에서 가장 잘 돌지만, Kimi K2.5 + GPT-5.4 조합만으로도 이미 바닐라 Claude Code를 이깁니다. 별도 설정 없이요. -### 에이전트 오케스트레이션 +### Agent Orchestration -Sisyphus가 하위 에이전트에게 일을 맡길 때, 모델을 직접 고르지 않습니다. **카테고리**를 고릅니다. 카테고리는 자동으로 올바른 모델에 매핑됩니다: +Sisyphus가 서브에이전트에 위임할 때는 모델을 직접 고르지 않습니다. **카테고리**를 고릅니다. 카테고리는 자동으로 적합한 모델에 매핑됩니다: -| 카테고리 | 용도 | -| :------------------- | :------------------------ | -| `visual-engineering` | 프론트엔드, UI/UX, 디자인 | -| `deep` | 자율 리서치 및 실행 | -| `quick` | 단일 파일 변경, 오타 수정 | -| `ultrabrain` | 하드 로직, 아키텍처 결정 | +| 카테고리 | 용도 | +| :------------------- | :--------------------------------- | +| `visual-engineering` | 프론트엔드, UI/UX, 디자인 | +| `deep` | 자율 리서치 + 실행 | +| `quick` | 단일 파일 변경, 오타 수정 | +| `ultrabrain` | 어려운 로직, 아키텍처 결정 | -에이전트가 어떤 작업인지 말하면, 하네스가 알아서 적합한 모델을 꺼내옵니다. 당신은 손댈 게 없습니다. +에이전트는 필요한 작업 종류만 말하고, 하네스가 적합한 모델을 고릅니다. `ultrabrain`은 이제 기본으로 GPT-5.4 xhigh로 라우팅됩니다. 당신이 건드릴 건 없습니다. ### Claude Code 호환성 -Claude Code 열심히 세팅해두셨죠? 잘하셨습니다. +Claude Code 세팅을 손봐두셨죠. 잘하셨습니다. -모든 훅, 커맨드, 스킬, MCP, 플러그인이 여기서 그대로 돌아갑니다. 플러그인까지 완벽 호환됩니다. +hook, command, skill, MCP, plugin 전부 그대로 여기서 동작합니다. 플러그인까지 포함한 완전 호환입니다. -### 에이전트를 위한 월드클래스 툴 +### 당신의 에이전트를 위한 월드클래스 도구 -LSP, AST-Grep, Tmux, MCP가 대충 테이프로 붙여놓은 게 아니라 진짜로 "통합"되어 있습니다. +LSP, AST-Grep, Tmux, MCP — 대충 붙여놓은 게 아니라 실제로 통합되어 있습니다. -- **LSP**: `lsp_rename`, `lsp_goto_definition`, `lsp_find_references`, `lsp_diagnostics`. 에이전트에게 IDE급 정밀도를 쥐어줍니다. -- **AST-Grep**: 25개 언어를 지원하는 패턴 기반 코드 검색 및 재작성. -- **Tmux**: 완전한 인터랙티브 터미널. REPL, 디버거, TUI 앱. 에이전트가 세션 안에서 움직입니다. -- **MCP**: 웹 검색, 공식 문서, GitHub 코드 검색이 전부 내장되어 있습니다. +- **LSP**: `lsp_rename`, `lsp_goto_definition`, `lsp_find_references`, `lsp_diagnostics`. 모든 에이전트에게 IDE 수준 정밀도를. +- **AST-Grep**: 25개 언어에 걸친 패턴 기반 코드 검색·리라이트. +- **Tmux**: 풀 인터랙티브 터미널. REPL, 디버거, TUI 앱. 에이전트가 세션 안에 그대로 머뭅니다. +- **MCP**: 웹 검색, 공식 문서, GitHub 코드 검색. 기본 탑재. -### 스킬 내장 MCP +### Skill-Embedded MCPs -MCP 서버들이 당신의 컨텍스트 예산을 다 잡아먹죠. 우리가 고쳤습니다. +MCP 서버는 컨텍스트 예산을 갉아먹습니다. 우리가 고쳤습니다. -스킬들이 자기만의 MCP 서버를 들고 다닙니다. 필요할 때만 켜서 쓰고 다 쓰면 사라집니다. 컨텍스트 창이 깔끔하게 유지됩니다. +스킬이 자기만의 MCP 서버를 데리고 다닙니다. 필요할 때 올라오고, 태스크 스코프 안에서만 살아 있다가, 끝나면 사라집니다. 컨텍스트 윈도우가 깔끔하게 유지됩니다. -### 해시 기반 편집 (Codes Better. Hash-Anchored Edits) +### 더 잘 코딩합니다. Hash-Anchored Edits -하네스 문제는 진짜 심각합니다. 에이전트가 실패하는 이유의 대부분은 모델 탓이 아니라 편집 툴 탓입니다. +하네스 문제는 실존합니다. 대부분의 에이전트 실패는 모델 잘못이 아니라 편집 도구 탓입니다. -> *"어떤 툴도 모델에게 수정하려는 줄에 대한 안정적이고 검증 가능한 식별자를 제공하지 않습니다... 전부 모델이 이미 본 내용을 똑같이 재현해내길 기대하죠. 그게 안 될 때—그리고 보통 안 되는데—사용자들은 모델을 욕합니다."* +> *"이 도구들 중 어느 것도 모델이 수정하려는 라인에 대한 안정적이고 검증 가능한 식별자를 주지 않는다... 모델이 이미 본 내용을 재현해내길 바라는 방식에 의존한다. 재현하지 못할 때 — 그리고 자주 못한다 — 사용자는 모델을 탓한다."* > ->
- [Can Bölük, 하네스 문제(The Harness Problem)](https://blog.can.ac/2026/02/12/the-harness-problem/) +>
- [Can Bölük, The Harness Problem](https://blog.can.ac/2026/02/12/the-harness-problem/) -[oh-my-pi](https://github.com/can1357/oh-my-pi)에서 영감을 받아, **Hashline**을 구현했습니다. 에이전트가 읽는 모든 줄에는 콘텐츠 해시 태그가 붙어 나옵니다: +[oh-my-pi](https://github.com/can1357/oh-my-pi)에서 영감을 받아 **Hashline**을 만들었습니다. 에이전트가 읽는 모든 라인은 콘텐츠 해시가 붙어 돌아옵니다: ``` 11#VK| function hello() { @@ -226,13 +230,13 @@ MCP 서버들이 당신의 컨텍스트 예산을 다 잡아먹죠. 우리가 33#MB| } ``` -에이전트는 이 태그를 참조해서 편집합니다. 마지막으로 읽은 후 파일이 변경되었다면 해시가 일치하지 않아 코드가 망가지기 전에 편집이 거부됩니다. 공백을 똑같이 재현할 필요도 없고, 엉뚱한 줄을 수정하는 에러(stale-line)도 없습니다. +에이전트는 이 태그를 참조해 편집합니다. 마지막 읽은 이후 파일이 바뀌었다면 해시가 맞지 않고, 손상 전에 편집이 거부됩니다. 공백 재현 필요 없음. 낡은 라인 에러 없음. -Grok Code Fast 1 기준으로 성공률이 **6.7% → 68.3%** 로 올랐습니다. 오직 편집 툴 하나 바꿨을 뿐인데 말이죠. +Grok Code Fast 1: **6.7% → 68.3%** 성공률. 편집 도구만 바꿔서요. ### 깊은 초기화. `/init-deep` -`/init-deep`을 실행하세요. 계층적인 `AGENTS.md` 파일을 알아서 만들어줍니다: +`/init-deep`을 실행하세요. 계층형 `AGENTS.md` 파일을 생성합니다: ``` project/ @@ -243,45 +247,43 @@ project/ │ └── AGENTS.md ← 컴포넌트 전용 컨텍스트 ``` -에이전트가 알아서 관련된 컨텍스트만 쏙쏙 읽어갑니다. 수동으로 관리할 필요가 없습니다. +에이전트는 관련 컨텍스트를 알아서 읽습니다. 수동 관리 0. ### 플래닝. Prometheus -복잡한 작업인가요? 대충 프롬프트 던지고 기도하지 마세요. +복잡한 작업인가요? 프롬프트 쓰고 기도하지 마세요. -`/start-work`를 치면 Prometheus가 호출됩니다. **진짜 엔지니어처럼 당신을 인터뷰하고**, 스코프와 모호한 점을 식별한 뒤, 코드 한 줄 만지기 전에 검증된 계획부터 세웁니다. 에이전트는 시작하기도 전에 자기가 뭘 만들어야 하는지 정확히 알게 됩니다. +`/start-work`가 Prometheus를 호출합니다. **진짜 엔지니어처럼 인터뷰**를 진행하고, 스코프와 모호한 부분을 짚어내고, 코드에 손대기 전에 검증된 계획을 세웁니다. 에이전트는 뭘 만들지 알고 나서야 시작합니다. -### 스킬 (Skills) +### Skills -스킬은 단순한 프롬프트 쪼가리가 아닙니다. 각각 다음을 포함합니다: +Skill은 단순 프롬프트가 아닙니다. 각 스킬은: -- 도메인에 특화된 시스템 인스트럭션 -- 필요할 때만 켜지는 내장 MCP 서버 -- 스코프가 제한된 권한 (에이전트가 선을 넘지 않도록) +- 도메인 튜닝된 시스템 지시를 갖고 있고, +- MCP 서버를 필요할 때 함께 데려오며, +- 권한 범위가 지정되어 에이전트가 선을 넘지 않습니다. -기본 내장 스킬: `playwright` (브라우저 자동화), `git-master` (원자적 커밋, 리베이스 수술), `frontend-ui-ux` (디자인 중심 UI). +빌트인: `playwright`(브라우저 자동화), `git-master`(atomic 커밋, rebase 수술), `frontend-ui-ux`(디자인 우선 UI). -직접 추가하려면: `.opencode/skills/*/SKILL.md` 또는 `~/.config/opencode/skills/*/SKILL.md`. +직접 추가하려면 `.opencode/skills/*/SKILL.md` 또는 `~/.config/opencode/skills/*/SKILL.md` 아래에 넣으세요. -**전체 기능이 궁금하신가요?** 에이전트, 훅, 툴, MCP 등 모든 디테일은 **[기능 문서 (Features)](docs/reference/features.md)** 를 확인하세요. +**전체 기능을 보고 싶다면?** **[Features Documentation](docs/reference/features.md)**에서 에이전트, hook, 도구, MCP 등 모든 것을 상세히 확인할 수 있습니다. --- -> **비하인드 스토리가 궁금하신가요?** 왜 Sisyphus가 돌을 굴리는지, 왜 Hephaestus가 "진정한 장인"인지, 그리고 [오케스트레이션 가이드](docs/guide/orchestration.md)를 읽어보세요. -> -> oh-my-opencode가 처음이신가요? 어떤 모델을 써야 할지 **[설치 가이드](docs/guide/installation.md#step-5-understand-your-model-setup)** 에서 추천 조합을 확인하세요. +> **oh-my-openagent가 처음이라면?** 뭘 갖게 되는지는 **[Overview](docs/guide/overview.md)**를, 에이전트들이 어떻게 협업하는지는 **[Orchestration Guide](docs/guide/orchestration.md)**를 참고하세요. -## 제거 (Uninstallation) +## 제거 -oh-my-opencode를 지우려면: +oh-my-openagent를 제거하려면: -1. **OpenCode 설정에서 플러그인 제거** +1. **OpenCode 설정에서 플러그인을 제거합니다** - `~/.config/opencode/opencode.json` (또는 `opencode.jsonc`)를 열고 `plugin` 배열에서 `"oh-my-opencode"`를 지우세요. + `~/.config/opencode/opencode.json`(또는 `opencode.jsonc`)을 열어 `plugin` 배열에서 `"oh-my-openagent"` 또는 기존 `"oh-my-opencode"` 항목을 삭제합니다: ```bash - # jq 사용 시 - jq '.plugin = [.plugin[] | select(. != "oh-my-opencode")]' \ + # jq 사용 + jq '.plugin = [.plugin[] | select(. != "oh-my-openagent" and . != "oh-my-opencode")]' \ ~/.config/opencode/opencode.json > /tmp/oc.json && \ mv /tmp/oc.json ~/.config/opencode/opencode.json ``` @@ -289,63 +291,107 @@ oh-my-opencode를 지우려면: 2. **설정 파일 제거 (선택 사항)** ```bash - # 사용자 설정 제거 - rm -f ~/.config/opencode/oh-my-opencode.json ~/.config/opencode/oh-my-opencode.jsonc + # 호환 기간 동안 인식되는 플러그인 설정 파일 제거 + rm -f ~/.config/opencode/oh-my-openagent.jsonc ~/.config/opencode/oh-my-openagent.json \ + ~/.config/opencode/oh-my-opencode.jsonc ~/.config/opencode/oh-my-opencode.json - # 프로젝트 설정 제거 (있는 경우) - rm -f .opencode/oh-my-opencode.json .opencode/oh-my-opencode.jsonc + # 프로젝트 설정 제거 (있다면) + rm -f .opencode/oh-my-openagent.jsonc .opencode/oh-my-openagent.json \ + .opencode/oh-my-opencode.jsonc .opencode/oh-my-opencode.json ``` 3. **제거 확인** ```bash opencode --version - # 이제 플러그인이 로드되지 않아야 합니다 + # 더 이상 플러그인이 로드되지 않아야 합니다 ``` -## 작가의 말 +## Features -**우리의 철학이 궁금하다면?** [Ultrawork 선언문](docs/manifesto.md)을 읽어보세요. +진작 있었어야 했다고 느낄 기능들입니다. 한 번 쓰면 되돌아갈 수 없습니다. + +전체 내용은 [Features Documentation](docs/reference/features.md) 참고. + +**요약:** +- **Agents**: Sisyphus(메인), Prometheus(플래너), Oracle(아키텍처·디버깅), Librarian(문서·코드 검색), Explore(빠른 코드베이스 grep), Multimodal Looker +- **Background Agents**: 진짜 개발팀처럼 여러 에이전트를 병렬로 실행 +- **LSP & AST Tools**: 리팩터링, rename, 진단, AST 기반 코드 검색 +- **Hash-anchored Edit Tool**: `LINE#ID` 참조로 모든 변경 전에 내용을 검증. 수술적 편집, 낡은 라인 에러 0 +- **Context Injection**: AGENTS.md, README.md, 조건부 규칙 자동 주입 +- **Claude Code Compatibility**: 전체 hook 시스템, command, skill, agent, MCP +- **Built-in MCPs**: websearch(Exa), context7(문서), grep_app(GitHub 검색) +- **Session Tools**: 세션 히스토리 조회·읽기·검색·분석 +- **Productivity Features**: Ralph Loop, Todo Enforcer, Comment Checker, Think Mode 등 +- **Doctor Command**: 빌트인 진단(`bunx oh-my-opencode doctor`)으로 플러그인 등록, 설정, 모델, 환경 검증 +- **Model Fallbacks**: `fallback_models`에 단순 모델 문자열과 per-fallback 객체 설정을 같은 배열에 섞어 쓸 수 있음 +- **File Prompts**: 에이전트 설정에서 `file://`로 프롬프트를 파일에서 로드 +- **Session Recovery**: 세션 에러, 컨텍스트 윈도우 한계, API 실패에서 자동 복구 +- **Model Setup**: 에이전트-모델 매칭은 [설치 가이드](docs/guide/installation.md#step-5-understand-your-model-setup)에 기본 포함 + +## 설정 + +의견이 분명한 기본값. 꼭 손대야겠다면 조정 가능. + +자세한 내용은 [Configuration Documentation](docs/reference/configuration.md) 참고. + +**요약:** +- **설정 파일 위치**: 호환성 레이어는 `oh-my-openagent.json[c]`와 기존 `oh-my-opencode.json[c]` 플러그인 설정 파일을 모두 인식합니다. 기존 설치는 아직 기존 이름을 쓰는 경우가 많습니다. +- **JSONC 지원**: 주석과 trailing comma 지원 +- **Agents**: 어떤 에이전트든 모델, temperature, 프롬프트, 권한을 오버라이드 +- **Built-in Skills**: `playwright`(브라우저 자동화), `git-master`(atomic 커밋) +- **Sisyphus Agent**: Prometheus(플래너), Metis(플랜 컨설턴트)와 함께 도는 메인 오케스트레이터 +- **Background Tasks**: 프로바이더/모델별 동시성 제한 설정 +- **Categories**: 도메인별 태스크 위임(`visual`, `business-logic`, 커스텀) +- **Hooks**: 25개 이상의 빌트인 hook, `disabled_hooks`로 전부 제어 가능 +- **MCPs**: 빌트인 websearch(Exa), context7(문서), grep_app(GitHub 검색) +- **LSP**: 리팩터링 도구까지 포함한 풀 LSP 지원 +- **Experimental**: 공격적 truncation, 자동 재개 등 + + +## 저자의 메모 + +**철학이 궁금하다면?** [Ultrawork Manifesto](docs/manifesto.md)를 읽어보세요. --- -저는 개인 프로젝트에 LLM 토큰 값으로만 2만 4천 달러(약 3천만 원)를 태웠습니다. 모든 툴을 다 써봤고, 설정이란 설정은 다 건드려봤습니다. 결론은 OpenCode가 이겼습니다. +개인 프로젝트에 LLM 토큰값으로 2만 4천 달러를 태웠습니다. 온갖 도구를 다 써봤고, 설정을 죽도록 만졌습니다. 결국 OpenCode가 이겼습니다. -제가 부딪혔던 모든 문제와 그 해결책이 이 플러그인에 구워져 있습니다. 설치하고 그냥 쓰세요. +제가 부딪힌 모든 문제의 해법이 이 플러그인에 박혀 있습니다. 설치만 하고 시작하세요. -OpenCode가 Debian/Arch라면, OmO는 Ubuntu/[Omarchy](https://omarchy.org/)입니다. +OpenCode가 Debian/Arch라면, oh-my-openagent는 Ubuntu/[Omarchy](https://omarchy.org/)입니다. -[AmpCode](https://ampcode.com)와 [Claude Code](https://code.claude.com/docs/overview)의 영향을 아주 짙게 받았습니다. 기능들을 포팅했고, 대다수는 개선했습니다. 아직도 짓고 있는 중입니다. 이건 **Open**Code니까요. +[AmpCode](https://ampcode.com)와 [Claude Code](https://code.claude.com/docs/overview)의 영향을 많이 받았습니다. 기능을 옮겨왔고, 많은 경우 개선까지 했습니다. 지금도 만들고 있습니다. 이건 **Open**Code입니다. -다른 하네스들도 멀티 모델 오케스트레이션을 약속합니다. 하지만 우리는 그걸 "진짜로" 내놨습니다. 안정성도 챙겼고요. 말로만이 아니라 실제로 돌아가는 기능들입니다. +다른 하네스들은 멀티모델 오케스트레이션을 약속합니다. 우리는 출시합니다. 안정성도. 그리고 실제로 동작하는 기능들도. -제가 이 프로젝트의 가장 병적인 헤비 유저입니다: -- 어떤 모델의 로직이 가장 날카로운가? -- 디버깅의 신은 누구인가? -- 글은 누가 제일 잘 쓰는가? -- 프론트엔드 생태계는 누가 지배하고 있는가? -- 백엔드 끝판왕은 누구인가? -- 데일리 드라이빙용으로 제일 빠른 건 뭔가? -- 경쟁사들은 지금 뭘 출시하고 있는가? +저는 이 프로젝트의 가장 집착적인 사용자입니다: +- 어떤 모델이 가장 날카로운 논리를 갖고 있나? +- 누가 디버깅의 신인가? +- 누가 가장 좋은 산문을 쓰나? +- 누가 프론트엔드를 지배하나? +- 누가 백엔드를 소유하나? +- 매일 데일리 드라이빙할 때 가장 빠른 건? +- 경쟁자들은 뭘 출시하고 있나? -이 플러그인은 그 모든 질문의 정수(Distillation)입니다. 가장 좋은 것만 가져다 쓰세요. 개선할 점이 보인다고요? PR은 언제나 환영입니다. +이 플러그인은 그 증류액입니다. 가장 좋은 걸 가져가세요. 개선안 있으면 PR 환영입니다. -**어떤 하네스를 쓸지 고뇌하는 건 이제 그만두세요.** -**제가 직접 리서치하고, 제일 좋은 것만 훔쳐 와서, 여기에 욱여넣겠습니다.** +**하네스 선택으로 고뇌하는 건 이제 그만하세요.** +**제가 리서치하고, 가장 좋은 걸 훔쳐와서, 여기 출시하겠습니다.** -거만해 보이나요? 더 나은 방법이 있다면 기여하세요. 대환영입니다. +오만하게 들리나요? 더 나은 방법이 있으신가요? 기여해주세요. 환영합니다. -언급된 어떤 프로젝트/모델과도 아무런 이해관계가 없습니다. 그냥 순수하게 개인적인 실험의 결과물입니다. +언급된 어떤 프로젝트나 모델과도 제휴 관계는 없습니다. 그저 개인적인 실험의 결과입니다. -이 프로젝트의 99%는 OpenCode로 만들어졌습니다. 전 사실 TypeScript를 잘 모릅니다. **하지만 이 문서는 제가 직접 리뷰하고 갈아엎었습니다.** +이 프로젝트의 99%는 OpenCode로 만들어졌습니다. 저는 TypeScript를 사실 잘 모릅니다. **다만 이 문서만큼은 제가 직접 검토하고 대부분 다시 썼습니다.** -## 함께하는 전문가들 +## 전문가들이 현업에서 쓰고 있습니다 - [Indent](https://indentcorp.com) - - 인플루언서 마케팅 솔루션 Spray, 크로스보더 커머스 플랫폼 vovushop, AI 커머스 리뷰 마케팅 솔루션 vreview 제작 + - Spray(인플루언서 마케팅 솔루션), vovushop(크로스보더 커머스 플랫폼), vreview(AI 커머스 리뷰 마케팅 솔루션) 개발사. - [Google](https://google.com) - [Microsoft](https://microsoft.com) - [ELESTYLE](https://elestyle.jp) - - 멀티 모바일 결제 게이트웨이 elepay, 캐시리스 솔루션을 위한 모바일 애플리케이션 SaaS OneQR 제작 + - elepay(멀티 모바일 결제 게이트웨이), OneQR(캐시리스 솔루션용 모바일 앱 SaaS) 개발사. -*멋진 히어로 이미지를 만들어주신 [@junhoyeo](https://github.com/junhoyeo)님께 특별히 감사드립니다.* +*훌륭한 hero 이미지를 만들어준 [@junhoyeo](https://github.com/junhoyeo)에게 특별히 감사드립니다.*