├── .DS_Store ├── image.png ├── images ├── -.png ├── hklee-profile.png ├── 2025-08-07-09-23-54.png ├── 2025-08-07-09-24-30.png ├── 2025-08-07-09-27-25.png ├── 2025-08-07-09-29-11.png ├── 2025-08-07-09-30-33.png ├── 2025-08-07-09-31-08.png ├── 2025-08-07-09-31-45.png ├── 2025-09-01-15-31-35.png ├── 2025-09-01-17-22-07.png ├── 2025-09-01-17-24-30.png ├── 2025-09-01-17-25-43.png ├── 2025-09-01-17-26-23.png ├── 2025-09-01-17-26-59.png ├── 2025-09-01-17-28-01.png ├── 2025-09-01-17-33-15.png ├── 2025-09-01-17-43-08.png ├── 2025-09-01-17-44-19.png ├── 2025-09-01-17-57-51.png ├── 2025-09-01-17-58-20.png ├── 2025-09-01-18-03-25.png ├── 2025-09-01-18-06-58.png ├── 2025-09-01-18-07-34.png ├── 2025-09-01-18-08-05.png ├── 2025-09-01-22-25-58.png ├── 2025-09-03-21-15-51.png ├── 2025-09-08-11-58-46.png ├── 2025-09-08-15-49-15.png ├── 2025-09-08-22-42-18.png ├── 2025-09-08-22-43-36.png ├── 2025-09-08-22-45-39.png ├── 2025-09-08-22-49-02.png ├── 2025-09-08-22-50-38.png ├── 2025-09-08-22-56-55.png ├── 2025-09-11-10-58-32.png ├── 2025-09-11-19-05-33.png ├── 2025-09-11-19-07-13.png ├── 2025-09-11-19-08-04.png ├── 2025-09-11-19-08-46.png ├── 2025-09-11-19-09-11.png ├── 2025-09-11-19-11-44.png ├── 2025-09-12-13-34-25.png ├── 2025-09-12-13-56-01.png ├── 2025-09-12-13-57-33.png ├── 2025-09-12-13-58-37.png ├── 2025-09-12-14-53-13.png ├── 2025-09-12-15-18-54.png ├── 2025-09-12-15-21-00.png ├── 2025-09-12-15-21-32.png ├── 2025-09-12-15-22-42.png ├── 2025-09-12-15-39-23.png ├── 2025-09-12-15-40-58.png ├── 2025-09-12-15-43-28.png ├── 2025-09-12-15-44-04.png ├── 2025-09-12-15-50-03.png ├── 2025-09-12-16-58-32.png ├── 2025-09-12-16-59-20.png ├── 2025-09-12-16-59-47.png ├── 2025-09-12-17-01-14.png ├── 2025-09-13-13-44-37.png ├── 2025-09-13-16-50-46.png ├── 2025-09-13-16-53-22.png ├── 2025-09-13-16-54-01.png ├── 2025-09-13-19-52-29.png ├── 2025-09-15-15-50-03.png ├── 2025-09-15-15-50-36.png ├── 2025-09-15-15-51-49.png ├── 2025-09-15-15-58-32.png ├── 2025-09-15-15-58-59.png ├── 2025-09-15-16-00-47.png ├── 2025-09-15-16-51-05.png ├── 2025-09-15-20-19-28.png ├── 2025-09-15-23-12-59.png ├── 2025-09-15-23-14-35.png ├── 2025-09-15-23-15-36.png ├── 2025-09-15-23-17-54.png ├── 2025-09-15-23-21-17.png ├── 2025-09-15-23-23-47.png ├── 2025-09-15-23-27-00.png ├── 2025-09-15-23-29-01.png ├── 2025-09-15-23-31-19.png ├── 2025-09-15-23-35-29.png ├── 2025-09-15-23-37-21.png ├── 2025-09-16-00-33-57.png ├── 2025-09-16-00-38-26.png ├── 2025-09-16-00-42-31.png ├── 2025-09-16-02-40-20.png ├── 2025-09-16-02-40-42.png ├── 2025-09-16-02-58-43.png ├── 2025-09-17-15-56-58.png ├── 2025-12-02-16-57-11.png └── 2025-12-02-16-58-23.png ├── references ├── 데모기획 가이드.docx ├── Istio 설치 및 사용 예제.docx ├── images │ ├── 2025-07-23-19-21-28.png │ ├── 2025-07-23-19-22-02.png │ ├── 2025-07-23-19-22-26.png │ ├── 2025-07-23-19-22-49.png │ ├── 2025-07-23-19-43-12.png │ ├── 2025-07-23-19-44-02.png │ ├── 2025-07-23-19-45-30.png │ ├── 2025-07-23-19-46-00.png │ ├── 2025-07-23-19-46-53.png │ ├── 2025-07-23-19-47-17.png │ ├── 2025-07-23-19-47-51.png │ ├── 2025-07-23-19-48-16.png │ ├── 2025-07-23-19-48-23.png │ ├── 2025-07-27-07-37-21.png │ ├── 2025-07-27-08-52-18.png │ ├── 2025-07-29-11-13-04.png │ ├── 2025-07-29-11-16-31.png │ ├── 2025-08-03-09-27-22.png │ ├── 2025-08-03-09-27-54.png │ ├── 2025-08-03-10-14-07.png │ ├── 2025-08-03-10-15-09.png │ ├── 2025-08-03-10-17-47.png │ ├── 2025-08-03-10-29-16.png │ ├── 2025-08-03-10-31-32.png │ ├── 2025-08-03-10-34-49.png │ ├── 2025-08-03-10-35-59.png │ ├── 2025-08-03-10-46-23.png │ ├── 2025-08-03-10-47-14.png │ ├── 2025-08-03-10-48-02.png │ ├── 2025-08-03-10-51-18.png │ ├── 2025-08-03-11-00-43.png │ ├── 2025-08-03-11-52-25.png │ ├── 2025-08-03-12-01-13.png │ ├── 2025-08-03-12-03-05.png │ ├── 2025-08-03-12-04-02.png │ ├── 2025-08-03-12-04-59.png │ ├── 2025-08-03-12-09-33.png │ ├── 2025-08-26-16-48-35.png │ ├── 2025-08-26-16-58-51.png │ ├── 2025-08-26-17-06-34.png │ ├── 2025-08-26-17-07-43.png │ ├── 2025-08-26-17-13-23.png │ ├── 2025-08-26-17-15-16.png │ ├── 2025-08-26-17-17-39.png │ ├── 2025-08-26-17-40-55.png │ ├── 2025-08-26-18-21-37.png │ ├── 2025-08-26-18-22-09.png │ ├── 2025-08-26-18-24-00.png │ ├── 2025-08-27-11-58-16.png │ ├── 2025-09-11-14-07-23.png │ ├── 2025-09-11-14-07-37.png │ ├── 2025-09-11-14-07-50.png │ ├── 2025-09-11-14-07-59.png │ ├── 2025-09-11-14-08-15.png │ ├── 2025-09-11-14-09-45.png │ ├── 2025-09-11-14-10-22.png │ ├── 2025-09-11-14-11-02.png │ ├── 2025-09-11-14-11-46.png │ ├── 2025-09-11-14-12-01.png │ ├── 2025-09-11-14-12-20.png │ ├── 2025-09-11-14-12-42.png │ ├── 2025-09-11-14-13-09.png │ ├── 2025-09-11-14-13-19.png │ ├── 2025-09-11-14-13-34.png │ ├── 2025-09-11-14-13-48.png │ ├── 2025-09-11-14-13-59.png │ ├── 2025-09-11-14-31-43.png │ ├── 2025-09-11-14-41-08.png │ ├── 2025-09-11-15-14-42.png │ ├── 2025-10-20-22-32-41.png │ ├── 2025-10-20-22-33-20.png │ ├── 2025-10-20-22-40-07.png │ ├── 2025-10-23-14-58-52.png │ ├── 2025-12-01-15-18-03.png │ ├── 2025-12-01-15-19-12.png │ ├── 2025-12-01-15-19-34.png │ ├── 2025-12-01-15-20-18.png │ ├── 2025-12-01-15-20-55.png │ ├── 2025-12-01-15-27-40.png │ ├── 2025-12-01-15-32-27.png │ ├── 2025-12-01-15-32-46.png │ └── 2025-12-01-15-33-24.png ├── create-vm.md ├── azure-firewall-open.md ├── MCP-linuxmac.json ├── MCP-window.json ├── Claude Code 사용통계.md ├── sample-basic-instruction.md ├── git-repo-guide.md ├── instruction-template.md └── 제품버전참조.md ├── guides ├── setup │ ├── images │ │ ├── image.png │ │ ├── image2.png │ │ ├── 2025-01-31-09-27-27.png │ │ ├── 2025-01-31-09-28-24.png │ │ ├── 2025-01-31-09-32-24.png │ │ ├── 2025-01-31-09-33-16.png │ │ ├── 2025-01-31-09-33-31.png │ │ ├── 2025-01-31-09-33-49.png │ │ ├── 2025-01-31-09-34-02.png │ │ ├── 2025-01-31-09-36-31.png │ │ ├── 2025-01-31-09-37-57.png │ │ ├── 2025-01-31-09-38-15.png │ │ ├── 2025-01-31-11-10-43.png │ │ ├── 2025-01-31-11-11-53.png │ │ ├── 2025-01-31-15-00-42.png │ │ ├── 2025-01-31-15-06-16.png │ │ ├── 2025-02-01-02-46-27.png │ │ ├── 2025-02-01-03-32-16.png │ │ ├── 2025-02-01-05-12-08.png │ │ ├── 2025-02-01-05-43-49.png │ │ ├── 2025-02-06-19-06-47.png │ │ ├── 2025-02-13-16-04-48.png │ │ ├── 2025-02-13-16-05-06.png │ │ ├── 2025-02-13-16-05-16.png │ │ ├── 2025-02-13-16-07-02.png │ │ ├── 2025-02-16-04-10-30.png │ │ ├── 2025-02-16-04-11-48.png │ │ ├── 2025-02-16-04-14-30.png │ │ ├── 2025-02-16-05-09-02.png │ │ ├── 2025-02-16-05-11-15.png │ │ ├── 2025-02-16-05-20-27.png │ │ ├── 2025-02-16-05-22-53.png │ │ ├── 2025-02-16-05-24-20.png │ │ ├── 2025-02-16-15-51-51.png │ │ ├── 2025-02-23-18-42-20.png │ │ ├── 2025-02-23-18-49-46.png │ │ ├── 2025-02-23-18-50-04.png │ │ ├── 2025-02-23-18-50-35.png │ │ ├── 2025-02-23-18-50-48.png │ │ ├── 2025-02-23-18-52-19.png │ │ ├── 2025-02-23-18-53-16.png │ │ ├── 2025-02-23-18-53-46.png │ │ ├── 2025-02-23-18-53-56.png │ │ ├── 2025-02-23-18-55-03.png │ │ ├── 2025-02-23-18-55-10.png │ │ ├── 2025-02-23-18-56-25.png │ │ ├── 2025-02-23-18-56-38.png │ │ ├── 2025-02-23-18-56-50.png │ │ ├── 2025-02-23-18-57-40.png │ │ ├── 2025-02-23-18-57-55.png │ │ ├── 2025-02-23-18-58-08.png │ │ ├── 2025-02-23-18-58-18.png │ │ ├── 2025-02-23-18-58-26.png │ │ ├── 2025-02-23-18-59-04.png │ │ ├── 2025-02-23-18-59-29.png │ │ ├── 2025-02-23-19-00-26.png │ │ ├── 2025-02-23-19-01-26.png │ │ ├── 2025-02-23-19-02-51.png │ │ ├── 2025-02-23-19-03-09.png │ │ ├── 2025-02-23-19-03-30.png │ │ ├── 2025-02-23-19-03-44.png │ │ ├── 2025-02-23-19-04-31.png │ │ ├── 2025-02-23-19-04-39.png │ │ ├── 2025-02-23-19-04-49.png │ │ ├── 2025-02-23-19-05-05.png │ │ ├── 2025-02-23-19-05-13.png │ │ ├── 2025-02-23-19-05-24.png │ │ ├── 2025-02-23-19-05-43.png │ │ ├── 2025-02-23-19-05-54.png │ │ ├── 2025-02-23-19-14-59.png │ │ ├── 2025-02-23-19-21-12.png │ │ ├── 2025-02-23-19-41-01.png │ │ ├── 2025-02-23-23-19-31.png │ │ ├── 2025-02-23-23-22-57.png │ │ ├── 2025-03-09-18-04-52.png │ │ ├── 2025-03-09-18-05-43.png │ │ ├── 2025-03-09-18-06-36.png │ │ ├── 2025-07-23-19-20-32.png │ │ ├── 2025-07-23-19-24-04.png │ │ ├── 2025-07-27-00-44-11.png │ │ ├── 2025-07-27-01-14-19.png │ │ ├── 2025-07-27-01-15-02.png │ │ ├── 2025-07-27-01-16-07.png │ │ ├── 2025-07-27-01-20-04.png │ │ ├── 2025-07-27-01-33-00.png │ │ ├── 2025-08-02-20-37-43.png │ │ ├── 2025-08-03-07-31-43.png │ │ ├── 2025-08-03-07-32-32.png │ │ ├── 2025-08-03-07-34-10.png │ │ ├── 2025-08-03-07-36-03.png │ │ ├── 2025-08-03-07-37-30.png │ │ ├── 2025-08-03-07-38-14.png │ │ ├── 2025-08-03-07-39-49.png │ │ ├── 2025-08-03-07-40-43.png │ │ ├── 2025-08-03-07-41-48.png │ │ ├── 2025-08-03-07-44-39.png │ │ ├── 2025-08-03-08-00-06.png │ │ ├── 2025-08-03-08-13-12.png │ │ ├── 2025-08-03-08-21-25.png │ │ ├── 2025-08-03-08-25-17.png │ │ ├── 2025-08-03-08-25-59.png │ │ ├── 2025-08-03-08-35-06.png │ │ ├── 2025-08-03-08-36-22.png │ │ ├── 2025-08-03-08-38-33.png │ │ ├── 2025-08-03-08-40-08.png │ │ ├── 2025-08-03-08-40-42.png │ │ ├── 2025-08-03-08-44-33.png │ │ ├── 2025-08-03-14-21-32.png │ │ ├── 2025-08-03-14-22-47.png │ │ ├── 2025-08-03-19-57-43.png │ │ ├── 2025-08-03-20-02-26.png │ │ ├── 2025-08-03-20-03-35.png │ │ ├── 2025-08-03-20-21-37.png │ │ ├── 2025-08-03-20-24-07.png │ │ ├── 2025-08-03-20-42-21.png │ │ ├── 2025-08-03-20-45-12.png │ │ ├── 2025-08-04-07-10-51.png │ │ ├── 2025-08-04-07-11-43.png │ │ ├── 2025-08-04-07-14-56.png │ │ ├── 2025-08-04-07-15-30.png │ │ ├── 2025-08-04-07-15-59.png │ │ ├── 2025-08-04-07-16-43.png │ │ ├── 2025-08-04-07-17-27.png │ │ ├── 2025-08-04-07-28-48.png │ │ ├── 2025-08-04-07-29-11.png │ │ ├── 2025-08-04-07-29-50.png │ │ ├── 2025-08-04-07-34-45.png │ │ ├── 2025-08-04-07-50-29.png │ │ ├── 2025-08-04-16-42-10.png │ │ ├── 2025-09-01-22-52-22.png │ │ ├── 2025-09-01-23-42-50.png │ │ ├── 2025-09-01-23-43-03.png │ │ ├── 2025-09-01-23-43-15.png │ │ ├── 2025-09-02-00-03-55.png │ │ ├── 2025-09-02-00-04-44.png │ │ ├── 2025-09-02-00-06-14.png │ │ ├── 2025-09-02-00-19-03.png │ │ ├── 2025-09-02-00-29-45.png │ │ ├── 2025-09-02-00-45-01.png │ │ ├── 2025-09-02-01-04-01.png │ │ ├── 2025-09-02-01-04-30.png │ │ ├── 2025-09-11-17-47-03.png │ │ ├── 2025-09-11-17-47-35.png │ │ ├── 2025-09-11-17-48-02.png │ │ ├── 2025-09-11-17-49-03.png │ │ ├── 2025-09-11-17-50-06.png │ │ ├── 2025-09-11-17-50-29.png │ │ ├── 2025-09-11-17-50-50.png │ │ ├── 2025-09-11-17-51-46.png │ │ ├── 2025-09-11-17-52-41.png │ │ ├── 2025-09-11-18-12-58.png │ │ ├── 2025-09-11-18-13-41.png │ │ ├── 2025-09-12-14-09-55.png │ │ ├── 2025-09-12-14-10-21.png │ │ ├── 2025-09-12-14-13-51.png │ │ ├── 2025-09-12-14-16-09.png │ │ ├── 2025-09-12-14-19-08.png │ │ ├── 2025-09-12-14-20-20.png │ │ ├── 2025-09-12-14-21-01.png │ │ ├── 2025-09-12-14-23-24.png │ │ ├── 2025-09-12-14-24-21.png │ │ ├── 2025-09-12-14-25-43.png │ │ ├── 2025-09-12-14-29-29.png │ │ ├── 2025-09-12-23-58-09.png │ │ ├── 2025-09-12-23-58-57.png │ │ ├── 2025-09-12-23-59-43.png │ │ ├── 2025-09-13-00-01-56.png │ │ ├── 2025-09-16-23-48-20.png │ │ ├── 2025-09-17-22-11-39.png │ │ ├── 2025-09-17-22-12-36.png │ │ ├── 2025-09-22-22-14-14.png │ │ ├── 2025-09-22-22-14-59.png │ │ ├── 2025-09-22-22-16-16.png │ │ ├── 2025-12-01-12-29-46.png │ │ └── ![](images │ │ │ └── 2025-03-03-12-11-52.png) .png │ └── 03.instruction-guide.md ├── images │ ├── 2025-07-23-05-55-48.png │ ├── 2025-07-23-05-56-06.png │ ├── 2025-07-23-05-57-04.png │ ├── 2025-07-23-05-58-48.png │ ├── 2025-07-23-06-00-01.png │ ├── 2025-07-23-06-00-10.png │ └── 2025-07-23-06-00-19.png ├── prompt │ ├── images │ │ └── 2025-07-27-06-58-29.png │ ├── 02.think-prompt.md │ ├── 01.setup-prompt.md │ └── 04.develop-prompt.md ├── think │ ├── images │ │ ├── 2025-07-26-15-24-23.png │ │ ├── 2025-07-26-15-35-24.png │ │ └── 2025-07-26-15-36-47.png │ └── think-guide.md ├── tools │ ├── claude-encoding-fix.ps1 │ ├── openapi-to-csv │ │ └── package.json │ ├── check-plantuml.sh │ ├── sync_mcp.md │ ├── plantuml-guide.md │ └── check-plantuml.ps1 ├── develop │ ├── mq-install.md │ ├── database-install.md │ ├── mq-plan.md │ ├── dev-backend-testcode.md │ ├── database-plan.md │ ├── gradle-wrapper.md │ └── test-backend.md ├── design │ ├── uiux-design.md │ ├── data-design.md │ ├── sequence-outer-design.md │ ├── logical-architecture-design.md │ ├── frontend-design.md │ ├── uiux-prototype.md │ ├── class-design.md │ ├── sequence-inner-design.md │ ├── architecture-highlevel.md │ └── api-design.md └── deploy │ ├── build-image-back.md │ ├── deploy-k8s-front-minikube.md │ ├── build-image-front.md │ └── deploy-k8s-front.md ├── .claude ├── commands │ ├── design-test-prototype.md │ ├── design-uiux.md │ ├── design-api.md │ ├── design-data.md │ ├── design-prototype.md │ ├── deploy-build-image-back.md │ ├── deploy-build-image-front.md │ ├── develop-db-guide.md │ ├── design-logical.md │ ├── design-seq-inner.md │ ├── design-seq-outer.md │ ├── design-update-uiux.md │ ├── develop-mq-guide.md │ ├── design-pattern.md │ ├── design-improve-userstory.md │ ├── develop-fix-backend.md │ ├── design-fix-prototype.md │ ├── design-improve-prototype.md │ ├── develop-mq-remove.md │ ├── design-physical.md │ ├── design-high-level.md │ ├── develop-db-remove.md │ ├── think-help.md │ ├── develop-dev-backend.md │ ├── think-planning.md │ ├── develop-mq-install.md │ ├── develop-db-install.md │ ├── design-class.md │ ├── deploy-run-container-guide-back.md │ ├── deploy-jenkins-cicd-guide-back.md │ ├── deploy-jenkins-cicd-guide-front.md │ ├── deploy-k8s-guide-back.md │ ├── develop-make-run-profile.md │ ├── deploy-run-container-guide-front.md │ ├── develop-dev-front.md │ ├── deploy-actions-cicd-guide-back.md │ ├── deploy-actions-cicd-guide-front.md │ ├── deploy-k8s-guide-front.md │ ├── develop-test-backend.md │ ├── think-userstory.md │ ├── design-front.md │ ├── develop-help.md │ ├── deploy-help.md │ └── design-help.md └── settings.local.json ├── samples ├── physical │ └── sample-physical-architecture-dev.mmd ├── sample-기능추가예시.md ├── sample-논리아키텍처.mmd └── sample-시퀀스설계서(외부).puml └── utils ├── merge-java.py └── merge-manifest.py /.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/.DS_Store -------------------------------------------------------------------------------- /image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/image.png -------------------------------------------------------------------------------- /images/-.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/images/-.png -------------------------------------------------------------------------------- /images/hklee-profile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/images/hklee-profile.png -------------------------------------------------------------------------------- /references/데모기획 가이드.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/references/데모기획 가이드.docx -------------------------------------------------------------------------------- /guides/setup/images/image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/image.png -------------------------------------------------------------------------------- /guides/setup/images/image2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/image2.png -------------------------------------------------------------------------------- /images/2025-08-07-09-23-54.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/images/2025-08-07-09-23-54.png -------------------------------------------------------------------------------- /images/2025-08-07-09-24-30.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/images/2025-08-07-09-24-30.png -------------------------------------------------------------------------------- /images/2025-08-07-09-27-25.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/images/2025-08-07-09-27-25.png -------------------------------------------------------------------------------- /images/2025-08-07-09-29-11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/images/2025-08-07-09-29-11.png -------------------------------------------------------------------------------- /images/2025-08-07-09-30-33.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/images/2025-08-07-09-30-33.png -------------------------------------------------------------------------------- /images/2025-08-07-09-31-08.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/images/2025-08-07-09-31-08.png -------------------------------------------------------------------------------- /images/2025-08-07-09-31-45.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/images/2025-08-07-09-31-45.png -------------------------------------------------------------------------------- /images/2025-09-01-15-31-35.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/images/2025-09-01-15-31-35.png -------------------------------------------------------------------------------- /images/2025-09-01-17-22-07.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/images/2025-09-01-17-22-07.png -------------------------------------------------------------------------------- /images/2025-09-01-17-24-30.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/images/2025-09-01-17-24-30.png -------------------------------------------------------------------------------- /images/2025-09-01-17-25-43.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/images/2025-09-01-17-25-43.png -------------------------------------------------------------------------------- /images/2025-09-01-17-26-23.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/images/2025-09-01-17-26-23.png -------------------------------------------------------------------------------- /images/2025-09-01-17-26-59.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/images/2025-09-01-17-26-59.png -------------------------------------------------------------------------------- /images/2025-09-01-17-28-01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/images/2025-09-01-17-28-01.png -------------------------------------------------------------------------------- /images/2025-09-01-17-33-15.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/images/2025-09-01-17-33-15.png -------------------------------------------------------------------------------- /images/2025-09-01-17-43-08.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/images/2025-09-01-17-43-08.png -------------------------------------------------------------------------------- /images/2025-09-01-17-44-19.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/images/2025-09-01-17-44-19.png -------------------------------------------------------------------------------- /images/2025-09-01-17-57-51.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/images/2025-09-01-17-57-51.png -------------------------------------------------------------------------------- /images/2025-09-01-17-58-20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/images/2025-09-01-17-58-20.png -------------------------------------------------------------------------------- /images/2025-09-01-18-03-25.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/images/2025-09-01-18-03-25.png -------------------------------------------------------------------------------- /images/2025-09-01-18-06-58.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/images/2025-09-01-18-06-58.png -------------------------------------------------------------------------------- /images/2025-09-01-18-07-34.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/images/2025-09-01-18-07-34.png -------------------------------------------------------------------------------- /images/2025-09-01-18-08-05.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/images/2025-09-01-18-08-05.png -------------------------------------------------------------------------------- /images/2025-09-01-22-25-58.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/images/2025-09-01-22-25-58.png -------------------------------------------------------------------------------- /images/2025-09-03-21-15-51.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/images/2025-09-03-21-15-51.png -------------------------------------------------------------------------------- /images/2025-09-08-11-58-46.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/images/2025-09-08-11-58-46.png -------------------------------------------------------------------------------- /images/2025-09-08-15-49-15.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/images/2025-09-08-15-49-15.png -------------------------------------------------------------------------------- /images/2025-09-08-22-42-18.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/images/2025-09-08-22-42-18.png -------------------------------------------------------------------------------- /images/2025-09-08-22-43-36.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/images/2025-09-08-22-43-36.png -------------------------------------------------------------------------------- /images/2025-09-08-22-45-39.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/images/2025-09-08-22-45-39.png -------------------------------------------------------------------------------- /images/2025-09-08-22-49-02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/images/2025-09-08-22-49-02.png -------------------------------------------------------------------------------- /images/2025-09-08-22-50-38.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/images/2025-09-08-22-50-38.png -------------------------------------------------------------------------------- /images/2025-09-08-22-56-55.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/images/2025-09-08-22-56-55.png -------------------------------------------------------------------------------- /images/2025-09-11-10-58-32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/images/2025-09-11-10-58-32.png -------------------------------------------------------------------------------- /images/2025-09-11-19-05-33.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/images/2025-09-11-19-05-33.png -------------------------------------------------------------------------------- /images/2025-09-11-19-07-13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/images/2025-09-11-19-07-13.png -------------------------------------------------------------------------------- /images/2025-09-11-19-08-04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/images/2025-09-11-19-08-04.png -------------------------------------------------------------------------------- /images/2025-09-11-19-08-46.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/images/2025-09-11-19-08-46.png -------------------------------------------------------------------------------- /images/2025-09-11-19-09-11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/images/2025-09-11-19-09-11.png -------------------------------------------------------------------------------- /images/2025-09-11-19-11-44.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/images/2025-09-11-19-11-44.png -------------------------------------------------------------------------------- /images/2025-09-12-13-34-25.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/images/2025-09-12-13-34-25.png -------------------------------------------------------------------------------- /images/2025-09-12-13-56-01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/images/2025-09-12-13-56-01.png -------------------------------------------------------------------------------- /images/2025-09-12-13-57-33.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/images/2025-09-12-13-57-33.png -------------------------------------------------------------------------------- /images/2025-09-12-13-58-37.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/images/2025-09-12-13-58-37.png -------------------------------------------------------------------------------- /images/2025-09-12-14-53-13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/images/2025-09-12-14-53-13.png -------------------------------------------------------------------------------- /images/2025-09-12-15-18-54.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/images/2025-09-12-15-18-54.png -------------------------------------------------------------------------------- /images/2025-09-12-15-21-00.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/images/2025-09-12-15-21-00.png -------------------------------------------------------------------------------- /images/2025-09-12-15-21-32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/images/2025-09-12-15-21-32.png -------------------------------------------------------------------------------- /images/2025-09-12-15-22-42.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/images/2025-09-12-15-22-42.png -------------------------------------------------------------------------------- /images/2025-09-12-15-39-23.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/images/2025-09-12-15-39-23.png -------------------------------------------------------------------------------- /images/2025-09-12-15-40-58.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/images/2025-09-12-15-40-58.png -------------------------------------------------------------------------------- /images/2025-09-12-15-43-28.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/images/2025-09-12-15-43-28.png -------------------------------------------------------------------------------- /images/2025-09-12-15-44-04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/images/2025-09-12-15-44-04.png -------------------------------------------------------------------------------- /images/2025-09-12-15-50-03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/images/2025-09-12-15-50-03.png -------------------------------------------------------------------------------- /images/2025-09-12-16-58-32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/images/2025-09-12-16-58-32.png -------------------------------------------------------------------------------- /images/2025-09-12-16-59-20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/images/2025-09-12-16-59-20.png -------------------------------------------------------------------------------- /images/2025-09-12-16-59-47.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/images/2025-09-12-16-59-47.png -------------------------------------------------------------------------------- /images/2025-09-12-17-01-14.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/images/2025-09-12-17-01-14.png -------------------------------------------------------------------------------- /images/2025-09-13-13-44-37.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/images/2025-09-13-13-44-37.png -------------------------------------------------------------------------------- /images/2025-09-13-16-50-46.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/images/2025-09-13-16-50-46.png -------------------------------------------------------------------------------- /images/2025-09-13-16-53-22.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/images/2025-09-13-16-53-22.png -------------------------------------------------------------------------------- /images/2025-09-13-16-54-01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/images/2025-09-13-16-54-01.png -------------------------------------------------------------------------------- /images/2025-09-13-19-52-29.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/images/2025-09-13-19-52-29.png -------------------------------------------------------------------------------- /images/2025-09-15-15-50-03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/images/2025-09-15-15-50-03.png -------------------------------------------------------------------------------- /images/2025-09-15-15-50-36.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/images/2025-09-15-15-50-36.png -------------------------------------------------------------------------------- /images/2025-09-15-15-51-49.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/images/2025-09-15-15-51-49.png -------------------------------------------------------------------------------- /images/2025-09-15-15-58-32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/images/2025-09-15-15-58-32.png -------------------------------------------------------------------------------- /images/2025-09-15-15-58-59.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/images/2025-09-15-15-58-59.png -------------------------------------------------------------------------------- /images/2025-09-15-16-00-47.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/images/2025-09-15-16-00-47.png -------------------------------------------------------------------------------- /images/2025-09-15-16-51-05.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/images/2025-09-15-16-51-05.png -------------------------------------------------------------------------------- /images/2025-09-15-20-19-28.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/images/2025-09-15-20-19-28.png -------------------------------------------------------------------------------- /images/2025-09-15-23-12-59.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/images/2025-09-15-23-12-59.png -------------------------------------------------------------------------------- /images/2025-09-15-23-14-35.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/images/2025-09-15-23-14-35.png -------------------------------------------------------------------------------- /images/2025-09-15-23-15-36.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/images/2025-09-15-23-15-36.png -------------------------------------------------------------------------------- /images/2025-09-15-23-17-54.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/images/2025-09-15-23-17-54.png -------------------------------------------------------------------------------- /images/2025-09-15-23-21-17.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/images/2025-09-15-23-21-17.png -------------------------------------------------------------------------------- /images/2025-09-15-23-23-47.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/images/2025-09-15-23-23-47.png -------------------------------------------------------------------------------- /images/2025-09-15-23-27-00.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/images/2025-09-15-23-27-00.png -------------------------------------------------------------------------------- /images/2025-09-15-23-29-01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/images/2025-09-15-23-29-01.png -------------------------------------------------------------------------------- /images/2025-09-15-23-31-19.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/images/2025-09-15-23-31-19.png -------------------------------------------------------------------------------- /images/2025-09-15-23-35-29.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/images/2025-09-15-23-35-29.png -------------------------------------------------------------------------------- /images/2025-09-15-23-37-21.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/images/2025-09-15-23-37-21.png -------------------------------------------------------------------------------- /images/2025-09-16-00-33-57.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/images/2025-09-16-00-33-57.png -------------------------------------------------------------------------------- /images/2025-09-16-00-38-26.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/images/2025-09-16-00-38-26.png -------------------------------------------------------------------------------- /images/2025-09-16-00-42-31.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/images/2025-09-16-00-42-31.png -------------------------------------------------------------------------------- /images/2025-09-16-02-40-20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/images/2025-09-16-02-40-20.png -------------------------------------------------------------------------------- /images/2025-09-16-02-40-42.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/images/2025-09-16-02-40-42.png -------------------------------------------------------------------------------- /images/2025-09-16-02-58-43.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/images/2025-09-16-02-58-43.png -------------------------------------------------------------------------------- /images/2025-09-17-15-56-58.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/images/2025-09-17-15-56-58.png -------------------------------------------------------------------------------- /images/2025-12-02-16-57-11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/images/2025-12-02-16-57-11.png -------------------------------------------------------------------------------- /images/2025-12-02-16-58-23.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/images/2025-12-02-16-58-23.png -------------------------------------------------------------------------------- /.claude/commands/design-test-prototype.md: -------------------------------------------------------------------------------- 1 | --- 2 | description: 프로토타입 테스트 3 | --- 4 | 5 | @test-front 6 | 프로토타입을 테스트 해 주세요. 7 | -------------------------------------------------------------------------------- /references/Istio 설치 및 사용 예제.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/references/Istio 설치 및 사용 예제.docx -------------------------------------------------------------------------------- /.claude/commands/design-uiux.md: -------------------------------------------------------------------------------- 1 | --- 2 | description: UI/UX 설계 3 | --- 4 | 5 | @uiux 6 | UI/UX 설계를 해주세요: 7 | - 'UI/UX설계가이드'를 준용하여 작성 8 | -------------------------------------------------------------------------------- /guides/images/2025-07-23-05-55-48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/images/2025-07-23-05-55-48.png -------------------------------------------------------------------------------- /guides/images/2025-07-23-05-56-06.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/images/2025-07-23-05-56-06.png -------------------------------------------------------------------------------- /guides/images/2025-07-23-05-57-04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/images/2025-07-23-05-57-04.png -------------------------------------------------------------------------------- /guides/images/2025-07-23-05-58-48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/images/2025-07-23-05-58-48.png -------------------------------------------------------------------------------- /guides/images/2025-07-23-06-00-01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/images/2025-07-23-06-00-01.png -------------------------------------------------------------------------------- /guides/images/2025-07-23-06-00-10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/images/2025-07-23-06-00-10.png -------------------------------------------------------------------------------- /guides/images/2025-07-23-06-00-19.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/images/2025-07-23-06-00-19.png -------------------------------------------------------------------------------- /.claude/commands/design-api.md: -------------------------------------------------------------------------------- 1 | --- 2 | description: API 설계 3 | --- 4 | 5 | @architecture 6 | API를 설계해 주세요: 7 | - '공통설계원칙'과 'API설계가이드'를 준용하여 설계 8 | -------------------------------------------------------------------------------- /.claude/commands/design-data.md: -------------------------------------------------------------------------------- 1 | --- 2 | description: 데이터 설계 3 | --- 4 | 5 | @architecture 6 | 데이터 설계를 해주세요: 7 | - '공통설계원칙'과 '데이터설계가이드'를 준용하여 설계 8 | -------------------------------------------------------------------------------- /.claude/commands/design-prototype.md: -------------------------------------------------------------------------------- 1 | --- 2 | description: 프로토타입 작성 3 | --- 4 | 5 | @prototype 6 | 프로토타입을 작성해 주세요: 7 | - '프로토타입작성가이드'를 준용하여 작성 8 | -------------------------------------------------------------------------------- /references/images/2025-07-23-19-21-28.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/references/images/2025-07-23-19-21-28.png -------------------------------------------------------------------------------- /references/images/2025-07-23-19-22-02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/references/images/2025-07-23-19-22-02.png -------------------------------------------------------------------------------- /references/images/2025-07-23-19-22-26.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/references/images/2025-07-23-19-22-26.png -------------------------------------------------------------------------------- /references/images/2025-07-23-19-22-49.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/references/images/2025-07-23-19-22-49.png -------------------------------------------------------------------------------- /references/images/2025-07-23-19-43-12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/references/images/2025-07-23-19-43-12.png -------------------------------------------------------------------------------- /references/images/2025-07-23-19-44-02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/references/images/2025-07-23-19-44-02.png -------------------------------------------------------------------------------- /references/images/2025-07-23-19-45-30.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/references/images/2025-07-23-19-45-30.png -------------------------------------------------------------------------------- /references/images/2025-07-23-19-46-00.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/references/images/2025-07-23-19-46-00.png -------------------------------------------------------------------------------- /references/images/2025-07-23-19-46-53.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/references/images/2025-07-23-19-46-53.png -------------------------------------------------------------------------------- /references/images/2025-07-23-19-47-17.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/references/images/2025-07-23-19-47-17.png -------------------------------------------------------------------------------- /references/images/2025-07-23-19-47-51.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/references/images/2025-07-23-19-47-51.png -------------------------------------------------------------------------------- /references/images/2025-07-23-19-48-16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/references/images/2025-07-23-19-48-16.png -------------------------------------------------------------------------------- /references/images/2025-07-23-19-48-23.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/references/images/2025-07-23-19-48-23.png -------------------------------------------------------------------------------- /references/images/2025-07-27-07-37-21.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/references/images/2025-07-27-07-37-21.png -------------------------------------------------------------------------------- /references/images/2025-07-27-08-52-18.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/references/images/2025-07-27-08-52-18.png -------------------------------------------------------------------------------- /references/images/2025-07-29-11-13-04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/references/images/2025-07-29-11-13-04.png -------------------------------------------------------------------------------- /references/images/2025-07-29-11-16-31.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/references/images/2025-07-29-11-16-31.png -------------------------------------------------------------------------------- /references/images/2025-08-03-09-27-22.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/references/images/2025-08-03-09-27-22.png -------------------------------------------------------------------------------- /references/images/2025-08-03-09-27-54.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/references/images/2025-08-03-09-27-54.png -------------------------------------------------------------------------------- /references/images/2025-08-03-10-14-07.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/references/images/2025-08-03-10-14-07.png -------------------------------------------------------------------------------- /references/images/2025-08-03-10-15-09.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/references/images/2025-08-03-10-15-09.png -------------------------------------------------------------------------------- /references/images/2025-08-03-10-17-47.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/references/images/2025-08-03-10-17-47.png -------------------------------------------------------------------------------- /references/images/2025-08-03-10-29-16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/references/images/2025-08-03-10-29-16.png -------------------------------------------------------------------------------- /references/images/2025-08-03-10-31-32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/references/images/2025-08-03-10-31-32.png -------------------------------------------------------------------------------- /references/images/2025-08-03-10-34-49.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/references/images/2025-08-03-10-34-49.png -------------------------------------------------------------------------------- /references/images/2025-08-03-10-35-59.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/references/images/2025-08-03-10-35-59.png -------------------------------------------------------------------------------- /references/images/2025-08-03-10-46-23.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/references/images/2025-08-03-10-46-23.png -------------------------------------------------------------------------------- /references/images/2025-08-03-10-47-14.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/references/images/2025-08-03-10-47-14.png -------------------------------------------------------------------------------- /references/images/2025-08-03-10-48-02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/references/images/2025-08-03-10-48-02.png -------------------------------------------------------------------------------- /references/images/2025-08-03-10-51-18.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/references/images/2025-08-03-10-51-18.png -------------------------------------------------------------------------------- /references/images/2025-08-03-11-00-43.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/references/images/2025-08-03-11-00-43.png -------------------------------------------------------------------------------- /references/images/2025-08-03-11-52-25.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/references/images/2025-08-03-11-52-25.png -------------------------------------------------------------------------------- /references/images/2025-08-03-12-01-13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/references/images/2025-08-03-12-01-13.png -------------------------------------------------------------------------------- /references/images/2025-08-03-12-03-05.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/references/images/2025-08-03-12-03-05.png -------------------------------------------------------------------------------- /references/images/2025-08-03-12-04-02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/references/images/2025-08-03-12-04-02.png -------------------------------------------------------------------------------- /references/images/2025-08-03-12-04-59.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/references/images/2025-08-03-12-04-59.png -------------------------------------------------------------------------------- /references/images/2025-08-03-12-09-33.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/references/images/2025-08-03-12-09-33.png -------------------------------------------------------------------------------- /references/images/2025-08-26-16-48-35.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/references/images/2025-08-26-16-48-35.png -------------------------------------------------------------------------------- /references/images/2025-08-26-16-58-51.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/references/images/2025-08-26-16-58-51.png -------------------------------------------------------------------------------- /references/images/2025-08-26-17-06-34.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/references/images/2025-08-26-17-06-34.png -------------------------------------------------------------------------------- /references/images/2025-08-26-17-07-43.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/references/images/2025-08-26-17-07-43.png -------------------------------------------------------------------------------- /references/images/2025-08-26-17-13-23.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/references/images/2025-08-26-17-13-23.png -------------------------------------------------------------------------------- /references/images/2025-08-26-17-15-16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/references/images/2025-08-26-17-15-16.png -------------------------------------------------------------------------------- /references/images/2025-08-26-17-17-39.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/references/images/2025-08-26-17-17-39.png -------------------------------------------------------------------------------- /references/images/2025-08-26-17-40-55.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/references/images/2025-08-26-17-40-55.png -------------------------------------------------------------------------------- /references/images/2025-08-26-18-21-37.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/references/images/2025-08-26-18-21-37.png -------------------------------------------------------------------------------- /references/images/2025-08-26-18-22-09.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/references/images/2025-08-26-18-22-09.png -------------------------------------------------------------------------------- /references/images/2025-08-26-18-24-00.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/references/images/2025-08-26-18-24-00.png -------------------------------------------------------------------------------- /references/images/2025-08-27-11-58-16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/references/images/2025-08-27-11-58-16.png -------------------------------------------------------------------------------- /references/images/2025-09-11-14-07-23.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/references/images/2025-09-11-14-07-23.png -------------------------------------------------------------------------------- /references/images/2025-09-11-14-07-37.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/references/images/2025-09-11-14-07-37.png -------------------------------------------------------------------------------- /references/images/2025-09-11-14-07-50.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/references/images/2025-09-11-14-07-50.png -------------------------------------------------------------------------------- /references/images/2025-09-11-14-07-59.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/references/images/2025-09-11-14-07-59.png -------------------------------------------------------------------------------- /references/images/2025-09-11-14-08-15.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/references/images/2025-09-11-14-08-15.png -------------------------------------------------------------------------------- /references/images/2025-09-11-14-09-45.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/references/images/2025-09-11-14-09-45.png -------------------------------------------------------------------------------- /references/images/2025-09-11-14-10-22.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/references/images/2025-09-11-14-10-22.png -------------------------------------------------------------------------------- /references/images/2025-09-11-14-11-02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/references/images/2025-09-11-14-11-02.png -------------------------------------------------------------------------------- /references/images/2025-09-11-14-11-46.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/references/images/2025-09-11-14-11-46.png -------------------------------------------------------------------------------- /references/images/2025-09-11-14-12-01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/references/images/2025-09-11-14-12-01.png -------------------------------------------------------------------------------- /references/images/2025-09-11-14-12-20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/references/images/2025-09-11-14-12-20.png -------------------------------------------------------------------------------- /references/images/2025-09-11-14-12-42.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/references/images/2025-09-11-14-12-42.png -------------------------------------------------------------------------------- /references/images/2025-09-11-14-13-09.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/references/images/2025-09-11-14-13-09.png -------------------------------------------------------------------------------- /references/images/2025-09-11-14-13-19.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/references/images/2025-09-11-14-13-19.png -------------------------------------------------------------------------------- /references/images/2025-09-11-14-13-34.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/references/images/2025-09-11-14-13-34.png -------------------------------------------------------------------------------- /references/images/2025-09-11-14-13-48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/references/images/2025-09-11-14-13-48.png -------------------------------------------------------------------------------- /references/images/2025-09-11-14-13-59.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/references/images/2025-09-11-14-13-59.png -------------------------------------------------------------------------------- /references/images/2025-09-11-14-31-43.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/references/images/2025-09-11-14-31-43.png -------------------------------------------------------------------------------- /references/images/2025-09-11-14-41-08.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/references/images/2025-09-11-14-41-08.png -------------------------------------------------------------------------------- /references/images/2025-09-11-15-14-42.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/references/images/2025-09-11-15-14-42.png -------------------------------------------------------------------------------- /references/images/2025-10-20-22-32-41.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/references/images/2025-10-20-22-32-41.png -------------------------------------------------------------------------------- /references/images/2025-10-20-22-33-20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/references/images/2025-10-20-22-33-20.png -------------------------------------------------------------------------------- /references/images/2025-10-20-22-40-07.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/references/images/2025-10-20-22-40-07.png -------------------------------------------------------------------------------- /references/images/2025-10-23-14-58-52.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/references/images/2025-10-23-14-58-52.png -------------------------------------------------------------------------------- /references/images/2025-12-01-15-18-03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/references/images/2025-12-01-15-18-03.png -------------------------------------------------------------------------------- /references/images/2025-12-01-15-19-12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/references/images/2025-12-01-15-19-12.png -------------------------------------------------------------------------------- /references/images/2025-12-01-15-19-34.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/references/images/2025-12-01-15-19-34.png -------------------------------------------------------------------------------- /references/images/2025-12-01-15-20-18.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/references/images/2025-12-01-15-20-18.png -------------------------------------------------------------------------------- /references/images/2025-12-01-15-20-55.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/references/images/2025-12-01-15-20-55.png -------------------------------------------------------------------------------- /references/images/2025-12-01-15-27-40.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/references/images/2025-12-01-15-27-40.png -------------------------------------------------------------------------------- /references/images/2025-12-01-15-32-27.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/references/images/2025-12-01-15-32-27.png -------------------------------------------------------------------------------- /references/images/2025-12-01-15-32-46.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/references/images/2025-12-01-15-32-46.png -------------------------------------------------------------------------------- /references/images/2025-12-01-15-33-24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/references/images/2025-12-01-15-33-24.png -------------------------------------------------------------------------------- /.claude/commands/deploy-build-image-back.md: -------------------------------------------------------------------------------- 1 | --- 2 | description: 백엔드 컨테이너 이미지 작성 3 | --- 4 | 5 | @cicd 6 | '백엔드컨테이너이미지작성가이드'에 따라 컨테이너 이미지를 작성해 주세요. 7 | -------------------------------------------------------------------------------- /guides/prompt/images/2025-07-27-06-58-29.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/prompt/images/2025-07-27-06-58-29.png -------------------------------------------------------------------------------- /guides/setup/images/2025-01-31-09-27-27.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-01-31-09-27-27.png -------------------------------------------------------------------------------- /guides/setup/images/2025-01-31-09-28-24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-01-31-09-28-24.png -------------------------------------------------------------------------------- /guides/setup/images/2025-01-31-09-32-24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-01-31-09-32-24.png -------------------------------------------------------------------------------- /guides/setup/images/2025-01-31-09-33-16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-01-31-09-33-16.png -------------------------------------------------------------------------------- /guides/setup/images/2025-01-31-09-33-31.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-01-31-09-33-31.png -------------------------------------------------------------------------------- /guides/setup/images/2025-01-31-09-33-49.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-01-31-09-33-49.png -------------------------------------------------------------------------------- /guides/setup/images/2025-01-31-09-34-02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-01-31-09-34-02.png -------------------------------------------------------------------------------- /guides/setup/images/2025-01-31-09-36-31.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-01-31-09-36-31.png -------------------------------------------------------------------------------- /guides/setup/images/2025-01-31-09-37-57.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-01-31-09-37-57.png -------------------------------------------------------------------------------- /guides/setup/images/2025-01-31-09-38-15.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-01-31-09-38-15.png -------------------------------------------------------------------------------- /guides/setup/images/2025-01-31-11-10-43.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-01-31-11-10-43.png -------------------------------------------------------------------------------- /guides/setup/images/2025-01-31-11-11-53.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-01-31-11-11-53.png -------------------------------------------------------------------------------- /guides/setup/images/2025-01-31-15-00-42.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-01-31-15-00-42.png -------------------------------------------------------------------------------- /guides/setup/images/2025-01-31-15-06-16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-01-31-15-06-16.png -------------------------------------------------------------------------------- /guides/setup/images/2025-02-01-02-46-27.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-02-01-02-46-27.png -------------------------------------------------------------------------------- /guides/setup/images/2025-02-01-03-32-16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-02-01-03-32-16.png -------------------------------------------------------------------------------- /guides/setup/images/2025-02-01-05-12-08.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-02-01-05-12-08.png -------------------------------------------------------------------------------- /guides/setup/images/2025-02-01-05-43-49.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-02-01-05-43-49.png -------------------------------------------------------------------------------- /guides/setup/images/2025-02-06-19-06-47.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-02-06-19-06-47.png -------------------------------------------------------------------------------- /guides/setup/images/2025-02-13-16-04-48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-02-13-16-04-48.png -------------------------------------------------------------------------------- /guides/setup/images/2025-02-13-16-05-06.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-02-13-16-05-06.png -------------------------------------------------------------------------------- /guides/setup/images/2025-02-13-16-05-16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-02-13-16-05-16.png -------------------------------------------------------------------------------- /guides/setup/images/2025-02-13-16-07-02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-02-13-16-07-02.png -------------------------------------------------------------------------------- /guides/setup/images/2025-02-16-04-10-30.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-02-16-04-10-30.png -------------------------------------------------------------------------------- /guides/setup/images/2025-02-16-04-11-48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-02-16-04-11-48.png -------------------------------------------------------------------------------- /guides/setup/images/2025-02-16-04-14-30.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-02-16-04-14-30.png -------------------------------------------------------------------------------- /guides/setup/images/2025-02-16-05-09-02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-02-16-05-09-02.png -------------------------------------------------------------------------------- /guides/setup/images/2025-02-16-05-11-15.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-02-16-05-11-15.png -------------------------------------------------------------------------------- /guides/setup/images/2025-02-16-05-20-27.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-02-16-05-20-27.png -------------------------------------------------------------------------------- /guides/setup/images/2025-02-16-05-22-53.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-02-16-05-22-53.png -------------------------------------------------------------------------------- /guides/setup/images/2025-02-16-05-24-20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-02-16-05-24-20.png -------------------------------------------------------------------------------- /guides/setup/images/2025-02-16-15-51-51.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-02-16-15-51-51.png -------------------------------------------------------------------------------- /guides/setup/images/2025-02-23-18-42-20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-02-23-18-42-20.png -------------------------------------------------------------------------------- /guides/setup/images/2025-02-23-18-49-46.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-02-23-18-49-46.png -------------------------------------------------------------------------------- /guides/setup/images/2025-02-23-18-50-04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-02-23-18-50-04.png -------------------------------------------------------------------------------- /guides/setup/images/2025-02-23-18-50-35.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-02-23-18-50-35.png -------------------------------------------------------------------------------- /guides/setup/images/2025-02-23-18-50-48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-02-23-18-50-48.png -------------------------------------------------------------------------------- /guides/setup/images/2025-02-23-18-52-19.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-02-23-18-52-19.png -------------------------------------------------------------------------------- /guides/setup/images/2025-02-23-18-53-16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-02-23-18-53-16.png -------------------------------------------------------------------------------- /guides/setup/images/2025-02-23-18-53-46.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-02-23-18-53-46.png -------------------------------------------------------------------------------- /guides/setup/images/2025-02-23-18-53-56.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-02-23-18-53-56.png -------------------------------------------------------------------------------- /guides/setup/images/2025-02-23-18-55-03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-02-23-18-55-03.png -------------------------------------------------------------------------------- /guides/setup/images/2025-02-23-18-55-10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-02-23-18-55-10.png -------------------------------------------------------------------------------- /guides/setup/images/2025-02-23-18-56-25.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-02-23-18-56-25.png -------------------------------------------------------------------------------- /guides/setup/images/2025-02-23-18-56-38.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-02-23-18-56-38.png -------------------------------------------------------------------------------- /guides/setup/images/2025-02-23-18-56-50.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-02-23-18-56-50.png -------------------------------------------------------------------------------- /guides/setup/images/2025-02-23-18-57-40.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-02-23-18-57-40.png -------------------------------------------------------------------------------- /guides/setup/images/2025-02-23-18-57-55.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-02-23-18-57-55.png -------------------------------------------------------------------------------- /guides/setup/images/2025-02-23-18-58-08.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-02-23-18-58-08.png -------------------------------------------------------------------------------- /guides/setup/images/2025-02-23-18-58-18.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-02-23-18-58-18.png -------------------------------------------------------------------------------- /guides/setup/images/2025-02-23-18-58-26.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-02-23-18-58-26.png -------------------------------------------------------------------------------- /guides/setup/images/2025-02-23-18-59-04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-02-23-18-59-04.png -------------------------------------------------------------------------------- /guides/setup/images/2025-02-23-18-59-29.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-02-23-18-59-29.png -------------------------------------------------------------------------------- /guides/setup/images/2025-02-23-19-00-26.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-02-23-19-00-26.png -------------------------------------------------------------------------------- /guides/setup/images/2025-02-23-19-01-26.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-02-23-19-01-26.png -------------------------------------------------------------------------------- /guides/setup/images/2025-02-23-19-02-51.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-02-23-19-02-51.png -------------------------------------------------------------------------------- /guides/setup/images/2025-02-23-19-03-09.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-02-23-19-03-09.png -------------------------------------------------------------------------------- /guides/setup/images/2025-02-23-19-03-30.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-02-23-19-03-30.png -------------------------------------------------------------------------------- /guides/setup/images/2025-02-23-19-03-44.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-02-23-19-03-44.png -------------------------------------------------------------------------------- /guides/setup/images/2025-02-23-19-04-31.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-02-23-19-04-31.png -------------------------------------------------------------------------------- /guides/setup/images/2025-02-23-19-04-39.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-02-23-19-04-39.png -------------------------------------------------------------------------------- /guides/setup/images/2025-02-23-19-04-49.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-02-23-19-04-49.png -------------------------------------------------------------------------------- /guides/setup/images/2025-02-23-19-05-05.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-02-23-19-05-05.png -------------------------------------------------------------------------------- /guides/setup/images/2025-02-23-19-05-13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-02-23-19-05-13.png -------------------------------------------------------------------------------- /guides/setup/images/2025-02-23-19-05-24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-02-23-19-05-24.png -------------------------------------------------------------------------------- /guides/setup/images/2025-02-23-19-05-43.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-02-23-19-05-43.png -------------------------------------------------------------------------------- /guides/setup/images/2025-02-23-19-05-54.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-02-23-19-05-54.png -------------------------------------------------------------------------------- /guides/setup/images/2025-02-23-19-14-59.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-02-23-19-14-59.png -------------------------------------------------------------------------------- /guides/setup/images/2025-02-23-19-21-12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-02-23-19-21-12.png -------------------------------------------------------------------------------- /guides/setup/images/2025-02-23-19-41-01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-02-23-19-41-01.png -------------------------------------------------------------------------------- /guides/setup/images/2025-02-23-23-19-31.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-02-23-23-19-31.png -------------------------------------------------------------------------------- /guides/setup/images/2025-02-23-23-22-57.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-02-23-23-22-57.png -------------------------------------------------------------------------------- /guides/setup/images/2025-03-09-18-04-52.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-03-09-18-04-52.png -------------------------------------------------------------------------------- /guides/setup/images/2025-03-09-18-05-43.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-03-09-18-05-43.png -------------------------------------------------------------------------------- /guides/setup/images/2025-03-09-18-06-36.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-03-09-18-06-36.png -------------------------------------------------------------------------------- /guides/setup/images/2025-07-23-19-20-32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-07-23-19-20-32.png -------------------------------------------------------------------------------- /guides/setup/images/2025-07-23-19-24-04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-07-23-19-24-04.png -------------------------------------------------------------------------------- /guides/setup/images/2025-07-27-00-44-11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-07-27-00-44-11.png -------------------------------------------------------------------------------- /guides/setup/images/2025-07-27-01-14-19.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-07-27-01-14-19.png -------------------------------------------------------------------------------- /guides/setup/images/2025-07-27-01-15-02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-07-27-01-15-02.png -------------------------------------------------------------------------------- /guides/setup/images/2025-07-27-01-16-07.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-07-27-01-16-07.png -------------------------------------------------------------------------------- /guides/setup/images/2025-07-27-01-20-04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-07-27-01-20-04.png -------------------------------------------------------------------------------- /guides/setup/images/2025-07-27-01-33-00.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-07-27-01-33-00.png -------------------------------------------------------------------------------- /guides/setup/images/2025-08-02-20-37-43.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-08-02-20-37-43.png -------------------------------------------------------------------------------- /guides/setup/images/2025-08-03-07-31-43.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-08-03-07-31-43.png -------------------------------------------------------------------------------- /guides/setup/images/2025-08-03-07-32-32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-08-03-07-32-32.png -------------------------------------------------------------------------------- /guides/setup/images/2025-08-03-07-34-10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-08-03-07-34-10.png -------------------------------------------------------------------------------- /guides/setup/images/2025-08-03-07-36-03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-08-03-07-36-03.png -------------------------------------------------------------------------------- /guides/setup/images/2025-08-03-07-37-30.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-08-03-07-37-30.png -------------------------------------------------------------------------------- /guides/setup/images/2025-08-03-07-38-14.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-08-03-07-38-14.png -------------------------------------------------------------------------------- /guides/setup/images/2025-08-03-07-39-49.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-08-03-07-39-49.png -------------------------------------------------------------------------------- /guides/setup/images/2025-08-03-07-40-43.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-08-03-07-40-43.png -------------------------------------------------------------------------------- /guides/setup/images/2025-08-03-07-41-48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-08-03-07-41-48.png -------------------------------------------------------------------------------- /guides/setup/images/2025-08-03-07-44-39.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-08-03-07-44-39.png -------------------------------------------------------------------------------- /guides/setup/images/2025-08-03-08-00-06.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-08-03-08-00-06.png -------------------------------------------------------------------------------- /guides/setup/images/2025-08-03-08-13-12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-08-03-08-13-12.png -------------------------------------------------------------------------------- /guides/setup/images/2025-08-03-08-21-25.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-08-03-08-21-25.png -------------------------------------------------------------------------------- /guides/setup/images/2025-08-03-08-25-17.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-08-03-08-25-17.png -------------------------------------------------------------------------------- /guides/setup/images/2025-08-03-08-25-59.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-08-03-08-25-59.png -------------------------------------------------------------------------------- /guides/setup/images/2025-08-03-08-35-06.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-08-03-08-35-06.png -------------------------------------------------------------------------------- /guides/setup/images/2025-08-03-08-36-22.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-08-03-08-36-22.png -------------------------------------------------------------------------------- /guides/setup/images/2025-08-03-08-38-33.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-08-03-08-38-33.png -------------------------------------------------------------------------------- /guides/setup/images/2025-08-03-08-40-08.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-08-03-08-40-08.png -------------------------------------------------------------------------------- /guides/setup/images/2025-08-03-08-40-42.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-08-03-08-40-42.png -------------------------------------------------------------------------------- /guides/setup/images/2025-08-03-08-44-33.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-08-03-08-44-33.png -------------------------------------------------------------------------------- /guides/setup/images/2025-08-03-14-21-32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-08-03-14-21-32.png -------------------------------------------------------------------------------- /guides/setup/images/2025-08-03-14-22-47.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-08-03-14-22-47.png -------------------------------------------------------------------------------- /guides/setup/images/2025-08-03-19-57-43.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-08-03-19-57-43.png -------------------------------------------------------------------------------- /guides/setup/images/2025-08-03-20-02-26.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-08-03-20-02-26.png -------------------------------------------------------------------------------- /guides/setup/images/2025-08-03-20-03-35.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-08-03-20-03-35.png -------------------------------------------------------------------------------- /guides/setup/images/2025-08-03-20-21-37.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-08-03-20-21-37.png -------------------------------------------------------------------------------- /guides/setup/images/2025-08-03-20-24-07.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-08-03-20-24-07.png -------------------------------------------------------------------------------- /guides/setup/images/2025-08-03-20-42-21.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-08-03-20-42-21.png -------------------------------------------------------------------------------- /guides/setup/images/2025-08-03-20-45-12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-08-03-20-45-12.png -------------------------------------------------------------------------------- /guides/setup/images/2025-08-04-07-10-51.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-08-04-07-10-51.png -------------------------------------------------------------------------------- /guides/setup/images/2025-08-04-07-11-43.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-08-04-07-11-43.png -------------------------------------------------------------------------------- /guides/setup/images/2025-08-04-07-14-56.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-08-04-07-14-56.png -------------------------------------------------------------------------------- /guides/setup/images/2025-08-04-07-15-30.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-08-04-07-15-30.png -------------------------------------------------------------------------------- /guides/setup/images/2025-08-04-07-15-59.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-08-04-07-15-59.png -------------------------------------------------------------------------------- /guides/setup/images/2025-08-04-07-16-43.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-08-04-07-16-43.png -------------------------------------------------------------------------------- /guides/setup/images/2025-08-04-07-17-27.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-08-04-07-17-27.png -------------------------------------------------------------------------------- /guides/setup/images/2025-08-04-07-28-48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-08-04-07-28-48.png -------------------------------------------------------------------------------- /guides/setup/images/2025-08-04-07-29-11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-08-04-07-29-11.png -------------------------------------------------------------------------------- /guides/setup/images/2025-08-04-07-29-50.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-08-04-07-29-50.png -------------------------------------------------------------------------------- /guides/setup/images/2025-08-04-07-34-45.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-08-04-07-34-45.png -------------------------------------------------------------------------------- /guides/setup/images/2025-08-04-07-50-29.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-08-04-07-50-29.png -------------------------------------------------------------------------------- /guides/setup/images/2025-08-04-16-42-10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-08-04-16-42-10.png -------------------------------------------------------------------------------- /guides/setup/images/2025-09-01-22-52-22.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-09-01-22-52-22.png -------------------------------------------------------------------------------- /guides/setup/images/2025-09-01-23-42-50.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-09-01-23-42-50.png -------------------------------------------------------------------------------- /guides/setup/images/2025-09-01-23-43-03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-09-01-23-43-03.png -------------------------------------------------------------------------------- /guides/setup/images/2025-09-01-23-43-15.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-09-01-23-43-15.png -------------------------------------------------------------------------------- /guides/setup/images/2025-09-02-00-03-55.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-09-02-00-03-55.png -------------------------------------------------------------------------------- /guides/setup/images/2025-09-02-00-04-44.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-09-02-00-04-44.png -------------------------------------------------------------------------------- /guides/setup/images/2025-09-02-00-06-14.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-09-02-00-06-14.png -------------------------------------------------------------------------------- /guides/setup/images/2025-09-02-00-19-03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-09-02-00-19-03.png -------------------------------------------------------------------------------- /guides/setup/images/2025-09-02-00-29-45.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-09-02-00-29-45.png -------------------------------------------------------------------------------- /guides/setup/images/2025-09-02-00-45-01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-09-02-00-45-01.png -------------------------------------------------------------------------------- /guides/setup/images/2025-09-02-01-04-01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-09-02-01-04-01.png -------------------------------------------------------------------------------- /guides/setup/images/2025-09-02-01-04-30.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-09-02-01-04-30.png -------------------------------------------------------------------------------- /guides/setup/images/2025-09-11-17-47-03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-09-11-17-47-03.png -------------------------------------------------------------------------------- /guides/setup/images/2025-09-11-17-47-35.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-09-11-17-47-35.png -------------------------------------------------------------------------------- /guides/setup/images/2025-09-11-17-48-02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-09-11-17-48-02.png -------------------------------------------------------------------------------- /guides/setup/images/2025-09-11-17-49-03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-09-11-17-49-03.png -------------------------------------------------------------------------------- /guides/setup/images/2025-09-11-17-50-06.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-09-11-17-50-06.png -------------------------------------------------------------------------------- /guides/setup/images/2025-09-11-17-50-29.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-09-11-17-50-29.png -------------------------------------------------------------------------------- /guides/setup/images/2025-09-11-17-50-50.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-09-11-17-50-50.png -------------------------------------------------------------------------------- /guides/setup/images/2025-09-11-17-51-46.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-09-11-17-51-46.png -------------------------------------------------------------------------------- /guides/setup/images/2025-09-11-17-52-41.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-09-11-17-52-41.png -------------------------------------------------------------------------------- /guides/setup/images/2025-09-11-18-12-58.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-09-11-18-12-58.png -------------------------------------------------------------------------------- /guides/setup/images/2025-09-11-18-13-41.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-09-11-18-13-41.png -------------------------------------------------------------------------------- /guides/setup/images/2025-09-12-14-09-55.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-09-12-14-09-55.png -------------------------------------------------------------------------------- /guides/setup/images/2025-09-12-14-10-21.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-09-12-14-10-21.png -------------------------------------------------------------------------------- /guides/setup/images/2025-09-12-14-13-51.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-09-12-14-13-51.png -------------------------------------------------------------------------------- /guides/setup/images/2025-09-12-14-16-09.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-09-12-14-16-09.png -------------------------------------------------------------------------------- /guides/setup/images/2025-09-12-14-19-08.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-09-12-14-19-08.png -------------------------------------------------------------------------------- /guides/setup/images/2025-09-12-14-20-20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-09-12-14-20-20.png -------------------------------------------------------------------------------- /guides/setup/images/2025-09-12-14-21-01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-09-12-14-21-01.png -------------------------------------------------------------------------------- /guides/setup/images/2025-09-12-14-23-24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-09-12-14-23-24.png -------------------------------------------------------------------------------- /guides/setup/images/2025-09-12-14-24-21.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-09-12-14-24-21.png -------------------------------------------------------------------------------- /guides/setup/images/2025-09-12-14-25-43.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-09-12-14-25-43.png -------------------------------------------------------------------------------- /guides/setup/images/2025-09-12-14-29-29.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-09-12-14-29-29.png -------------------------------------------------------------------------------- /guides/setup/images/2025-09-12-23-58-09.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-09-12-23-58-09.png -------------------------------------------------------------------------------- /guides/setup/images/2025-09-12-23-58-57.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-09-12-23-58-57.png -------------------------------------------------------------------------------- /guides/setup/images/2025-09-12-23-59-43.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-09-12-23-59-43.png -------------------------------------------------------------------------------- /guides/setup/images/2025-09-13-00-01-56.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-09-13-00-01-56.png -------------------------------------------------------------------------------- /guides/setup/images/2025-09-16-23-48-20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-09-16-23-48-20.png -------------------------------------------------------------------------------- /guides/setup/images/2025-09-17-22-11-39.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-09-17-22-11-39.png -------------------------------------------------------------------------------- /guides/setup/images/2025-09-17-22-12-36.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-09-17-22-12-36.png -------------------------------------------------------------------------------- /guides/setup/images/2025-09-22-22-14-14.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-09-22-22-14-14.png -------------------------------------------------------------------------------- /guides/setup/images/2025-09-22-22-14-59.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-09-22-22-14-59.png -------------------------------------------------------------------------------- /guides/setup/images/2025-09-22-22-16-16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-09-22-22-16-16.png -------------------------------------------------------------------------------- /guides/setup/images/2025-12-01-12-29-46.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/2025-12-01-12-29-46.png -------------------------------------------------------------------------------- /guides/think/images/2025-07-26-15-24-23.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/think/images/2025-07-26-15-24-23.png -------------------------------------------------------------------------------- /guides/think/images/2025-07-26-15-35-24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/think/images/2025-07-26-15-35-24.png -------------------------------------------------------------------------------- /guides/think/images/2025-07-26-15-36-47.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/think/images/2025-07-26-15-36-47.png -------------------------------------------------------------------------------- /.claude/commands/deploy-build-image-front.md: -------------------------------------------------------------------------------- 1 | --- 2 | description: 프론트엔드 컨테이너 이미지 작성 3 | --- 4 | 5 | @cicd 6 | '프론트엔드컨테이너이미지작성가이드'에 따라 컨테이너 이미지를 작성해 주세요. 7 | -------------------------------------------------------------------------------- /.claude/commands/develop-db-guide.md: -------------------------------------------------------------------------------- 1 | --- 2 | description: 데이터베이스 설치계획서 작성 3 | --- 4 | @backing-service 5 | "데이터베이스설치계획서가이드"에 따라 데이터베이스 설치계획서를 작성해 주십시오. 6 | -------------------------------------------------------------------------------- /.claude/commands/design-logical.md: -------------------------------------------------------------------------------- 1 | --- 2 | description: 논리아키텍처 설계 3 | --- 4 | 5 | @architecture 6 | 논리 아키텍처를 설계해 주세요: 7 | - '공통설계원칙'과 '논리아키텍처 설계 가이드'를 준용하여 설계 8 | -------------------------------------------------------------------------------- /.claude/commands/design-seq-inner.md: -------------------------------------------------------------------------------- 1 | --- 2 | description: 내부 시퀀스 설계 3 | --- 4 | 5 | @architecture 6 | 내부 시퀀스 설계를 해 주세요: 7 | - '공통설계원칙'과 '내부시퀀스설계 가이드'를 준용하여 설계 8 | -------------------------------------------------------------------------------- /.claude/commands/design-seq-outer.md: -------------------------------------------------------------------------------- 1 | --- 2 | description: 외부 시퀀스 설계 3 | --- 4 | 5 | @architecture 6 | 외부 시퀀스 설계를 해 주세요: 7 | - '공통설계원칙'과 '외부시퀀스설계가이드'를 준용하여 설계 8 | -------------------------------------------------------------------------------- /.claude/commands/design-update-uiux.md: -------------------------------------------------------------------------------- 1 | --- 2 | description: 설계서 다시 업데이트 3 | --- 4 | 5 | @document @front 6 | 현재 프로토타입과 유저스토리를 기준으로 UI/UX설계서와 스타일가이드를 수정해 주세요. 7 | -------------------------------------------------------------------------------- /.claude/commands/develop-mq-guide.md: -------------------------------------------------------------------------------- 1 | --- 2 | description: Message Queue 설치 계획서 작성 3 | --- 4 | @backing-service 5 | "MQ설치게획서가이드"에 따라 Message Queue 설치계획서를 작성해 주세요. 6 | -------------------------------------------------------------------------------- /.claude/commands/design-pattern.md: -------------------------------------------------------------------------------- 1 | --- 2 | description: 클라우드 아키텍처 패턴 선정 3 | --- 4 | 5 | @design-pattern 6 | 클라우드 아키텍처 패턴 적용 방안을 작성해 주세요: 7 | - '클라우드아키텍처패턴선정가이드'를 준용하여 작성 8 | -------------------------------------------------------------------------------- /guides/setup/images/![](images/2025-03-03-12-11-52.png) .png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/HEAD/guides/setup/images/![](images/2025-03-03-12-11-52.png) .png -------------------------------------------------------------------------------- /.claude/commands/design-improve-userstory.md: -------------------------------------------------------------------------------- 1 | --- 2 | description: 유저스토리 품질 높이기 3 | --- 4 | 5 | @analyze as @front 프로토타입을 웹브라우저에서 분석한 후, 6 | @document as @scribe 수정된 프로토타입에 따라 유저스토리를 업데이트 해주십시오. 7 | -------------------------------------------------------------------------------- /.claude/commands/develop-fix-backend.md: -------------------------------------------------------------------------------- 1 | --- 2 | description: 백엔드 오류 해결 3 | --- 4 | @fix as @back 5 | 개발된 각 서비스와 common 모듈을 컴파일하고 에러를 해결해 주세요. 6 | - common 모듈 우선 수행 7 | - 각 서비스별로 서브 에이젠트를 병렬로 수행 8 | - 컴파일이 모두 성공할때까지 계속 수행 9 | -------------------------------------------------------------------------------- /.claude/commands/design-fix-prototype.md: -------------------------------------------------------------------------------- 1 | --- 2 | description: 프로토타입 오류수정 3 | --- 4 | 5 | @fix as @front 6 | '[오류내용]'섹션에 제공된 오류를 해결해 주세요. 7 | 프롬프트에 '[오류내용]'섹션이 없으면 수행 중단하고 안내 메시지 표시 8 | {안내메시지} 9 | '[오류내용]'섹션 하위에 오류 내용을 제공 10 | -------------------------------------------------------------------------------- /.claude/settings.local.json: -------------------------------------------------------------------------------- 1 | { 2 | "permissions": { 3 | "allow": [ 4 | "Bash(git add:*)", 5 | "Bash(git commit:*)", 6 | "Bash(git push:*)" 7 | ], 8 | "deny": [], 9 | "ask": [] 10 | } 11 | } -------------------------------------------------------------------------------- /.claude/commands/design-improve-prototype.md: -------------------------------------------------------------------------------- 1 | --- 2 | description: 프로토타입 개선 3 | --- 4 | 5 | @improve as @front 6 | '[개선내용]'섹션에 있는 내용을 개선해 주세요. 7 | 프롬프트에 '[개선내용]'항목이 없으면 수행을 중단하고 안내 메시지 표시 8 | {안내메시지} 9 | '[개선내용]'섹션 하위에 개선할 내용을 제공 10 | -------------------------------------------------------------------------------- /.claude/commands/develop-mq-remove.md: -------------------------------------------------------------------------------- 1 | --- 2 | description: Message Queue 설치 제거 3 | --- 4 | @backing-service 5 | [요구사항] 6 | - "MQ설치결과서"를 보고 관련된 모든 리소스를 삭제 7 | - 현재 OS에 맞게 수행 8 | - 서브 에이젼트를 병렬로 수행하여 삭제 9 | - 결과파일은 생성할 필요 없고 화면에만 결과 표시 10 | [참고자료] 11 | - MQ설치결과서 12 | -------------------------------------------------------------------------------- /.claude/commands/design-physical.md: -------------------------------------------------------------------------------- 1 | --- 2 | description: 물리 아키텍처 설계 3 | --- 4 | 5 | @architecture 6 | '물리아키텍처설계가이드'를 준용하여 물리아키텍처를 설계해 주세요. 7 | 'CLOUD' 정보가 없으면 수행을 중단하고 안내메시지를 표시하세요. 8 | {안내메시지} 9 | 아래 예와 같이 CLOUD 제공자를 Azure, AWS, Google과 같이 제공하세요. 10 | - CLOUD: Azure 11 | -------------------------------------------------------------------------------- /.claude/commands/design-high-level.md: -------------------------------------------------------------------------------- 1 | --- 2 | description: High Level 아키텍처 정의서 작성 3 | --- 4 | 5 | @architecture 6 | 'HighLevel아키텍처정의가이드'를 준용하여 High Level 아키텍처 정의서를 작성해 주세요. 7 | 'CLOUD' 정보가 없으면 수행을 중단하고 안내메시지를 표시하세요. 8 | {안내메시지} 9 | 아래 예와 같이 CLOUD 제공자를 Azure, AWS, Google과 같이 제공하세요. 10 | - CLOUD: Azure 11 | -------------------------------------------------------------------------------- /.claude/commands/develop-db-remove.md: -------------------------------------------------------------------------------- 1 | --- 2 | description: 데이터베이스 설치 제거 3 | --- 4 | @backing-service 5 | [요구사항] 6 | - "데이터베이스설치결과서"를 보고 관련된 모든 리소스를 삭제 7 | - "캐시설치결과서"를 보고 관련된 모든 리소스를 삭제 8 | - 현재 OS에 맞게 수행 9 | - 서브 에이젼트를 병렬로 수행하여 삭제 10 | - 결과파일은 생성할 필요 없고 화면에만 결과 표시 11 | [참고자료] 12 | - 데이터베이스설치결과서 13 | - 캐시설치결과서 14 | -------------------------------------------------------------------------------- /.claude/commands/think-help.md: -------------------------------------------------------------------------------- 1 | --- 2 | description: 기획 작업 순서 안내 3 | --- 4 | 아래 내용을 터미널에 표시합니다: 5 | 6 | ``` 7 | 기획 작업 순서 8 | 9 | 1단계: 서비스 기획 10 | /think-planning 11 | - AI활용 서비스 기획 가이드를 참고하여 서비스를 기획합니다 12 | 13 | 2단계: 유저스토리 작성 14 | /think-userstory 15 | - 유저스토리작성방법을 준용하여 작성합니다 16 | - 마이크로서비스로 나누어 작성합니다 17 | ``` 18 | -------------------------------------------------------------------------------- /.claude/commands/develop-dev-backend.md: -------------------------------------------------------------------------------- 1 | --- 2 | description: 백엔드 개발 3 | --- 4 | @dev-backend 5 | "백엔드개발가이드"에 따라 개발해 주세요. 6 | 프롬프트에 '[개발정보]'항목이 없으면 수행을 중단하고 안내 메시지를 표시해 주세요. 7 | {안내메시지} 8 | [개발정보] 9 | - 개발 아키텍처패턴 10 | - auth: Layered 11 | - bill-inquiry: Clean 12 | - product-change: Layered 13 | - kos-mock: Layered 14 | -------------------------------------------------------------------------------- /.claude/commands/think-planning.md: -------------------------------------------------------------------------------- 1 | --- 2 | description: 서비스 기획 수행 3 | --- 4 | 아래 내용을 터미널에 표시만 하고 수행을 하지는 않습니다. 5 | ``` 6 | 아래 가이드를 참고하여 서비스 기획을 수행합니다. 7 | 8 | https://github.com/cna-bootcamp/aiguide/blob/main/AI%ED%99%9C%EC%9A%A9%20%EC%84%9C%EB%B9%84%EC%8A%A4%20%EA%B8%B0%ED%9A%8D%20%EA%B0%80%EC%9D%B4%EB%93%9C.md 9 | ``` 10 | -------------------------------------------------------------------------------- /.claude/commands/develop-mq-install.md: -------------------------------------------------------------------------------- 1 | --- 2 | description: Message Queue 설치 수행 3 | --- 4 | @backing-service 5 | [요구사항] 6 | 'MQ설치가이드'에 따라 설치해 주세요. 7 | '[설치정보]'섹션이 없으면 수행을 중단하고 안내 메시지를 표시하세요. 8 | {안내메시지} 9 | '[설치정보]'섹션 하위에 아래 예와 같이 설치에 필요한 정보를 추가해 주세요. 10 | - 설치대상환경: 개발환경 11 | - Resource Group: rg-digitalgarage-01 12 | - Namespace: tripgen-dev 13 | -------------------------------------------------------------------------------- /guides/tools/claude-encoding-fix.ps1: -------------------------------------------------------------------------------- 1 | # UTF-8 Encoding Force Setup 2 | chcp 65001 > $null 3 | [Console]::OutputEncoding = [System.Text.Encoding]::UTF8 4 | $OutputEncoding = [System.Text.Encoding]::UTF8 5 | if ($PSVersionTable.PSVersion.Major -ge 6) { 6 | $PSDefaultParameterValues['*:Encoding'] = 'utf8' 7 | } 8 | Write-Host "Encoding set to UTF-8" -ForegroundColor Green -------------------------------------------------------------------------------- /.claude/commands/develop-db-install.md: -------------------------------------------------------------------------------- 1 | --- 2 | description: 데이터베이스 설치 수행 3 | --- 4 | @backing-service 5 | [요구사항] 6 | '데이터베이스설치가이드'에 따라 설치해 주세요. 7 | '[설치정보]'섹션이 없으면 수행을 중단하고 안내 메시지를 표시하세요. 8 | {안내메시지} 9 | '[설치정보]'섹션 하위에 아래 예와 같이 설치에 필요한 정보를 추가해 주세요. 10 | - 설치대상환경: 개발환경 11 | - AKS Resource Group: rg-digitalgarage-01 12 | - AKS Name: aks-digitalgarage-01 13 | - Namespace: tripgen-dev 14 | -------------------------------------------------------------------------------- /.claude/commands/design-class.md: -------------------------------------------------------------------------------- 1 | --- 2 | description: 클래스 설계 3 | --- 4 | 5 | @architecture 6 | '공통설계원칙'과 '클래스설계가이드'를 준용하여 클래스를 설계해 주세요. 7 | 프롬프트에 '[클래스설계 정보]'항목이 없으면 수행을 중단하고 안내 메시지를 표시합니다. 8 | {안내메시지} 9 | '[클래스설계 정보]' 섹션에 아래 예와 같은 정보를 제공해 주십시오. 10 | [클래스설계 정보] 11 | - 패키지 그룹: com.unicorn.tripgen 12 | - 설계 아키텍처 패턴 13 | - User: Layered 14 | - Trip: Clean 15 | - Location: Layered 16 | - AI: Layered 17 | -------------------------------------------------------------------------------- /.claude/commands/deploy-run-container-guide-back.md: -------------------------------------------------------------------------------- 1 | --- 2 | description: 백엔드 컨테이너 실행방법 작성 3 | --- 4 | 5 | @cicd 6 | '백엔드컨테이너실행방법가이드'에 따라 컨테이너 실행 가이드를 작성해 주세요. 7 | 프롬프트에 '[실행정보]'항목이 없으면 수행을 중단하고 안내 메시지를 표시해 주세요. 8 | {안내메시지} 9 | '[실행정보]'섹션 하위에 아래 예와 같이 필요한 정보를 제시해 주세요. 10 | [실행정보] 11 | - ACR명: acrdigitalgarage01 12 | - VM 13 | - KEY파일: ~/home/bastion-dg0500 14 | - USERID: azureuser 15 | - IP: 4.230.5.6 16 | -------------------------------------------------------------------------------- /references/create-vm.md: -------------------------------------------------------------------------------- 1 | # Azure에 VM 생성 2 | 3 | ![](images/2025-12-01-15-19-12.png) 4 | 5 | ![](images/2025-12-01-15-19-34.png) 6 | 7 | ![](images/2025-12-01-15-20-18.png) 8 | 9 | '모든크기보기' 클릭하여 적절한 사이즈 선택. 10 | 실습을 위해서는 최소 8core / 32GB 필요. 11 | ![](images/2025-12-01-15-20-55.png) 12 | 13 | 생성 후 Access Key를 PC의 적절한 위치에 저장 14 | 15 | IP 확인 16 | ![](images/2025-12-01-15-27-40.png) 17 | 18 | 19 | -------------------------------------------------------------------------------- /.claude/commands/deploy-jenkins-cicd-guide-back.md: -------------------------------------------------------------------------------- 1 | --- 2 | description: 백엔드 Jenkins CI/CD 가이드 작성 3 | --- 4 | 5 | @cicd 6 | '백엔드Jenkins파이프라인작성가이드'에 따라 Jenkins를 이용한 CI/CD 가이드를 작성해 주세요. 7 | 프롬프트에 '[실행정보]'항목이 없으면 수행을 중단하고 안내 메시지를 표시해 주세요. 8 | {안내메시지} 9 | '[실행정보]'섹션 하위에 아래 예와 같이 필요한 정보를 제시해 주세요. 10 | [실행정보] 11 | - IMG_REG: docker.io 12 | - IMG_ORG: phonebill 13 | - JENKINS_CLOUD_NAME: k8s 14 | - NAMESPACE: phonebill 15 | -------------------------------------------------------------------------------- /.claude/commands/deploy-jenkins-cicd-guide-front.md: -------------------------------------------------------------------------------- 1 | --- 2 | description: 프론트엔드 Jenkins CI/CD 가이드 작성 3 | --- 4 | 5 | @cicd 6 | '프론트엔드Jenkins파이프라인작성가이드'에 따라 Jenkins를 이용한 CI/CD 가이드를 작성해 주세요. 7 | 프롬프트에 '[실행정보]'항목이 없으면 수행을 중단하고 안내 메시지를 표시해 주세요. 8 | {안내메시지} 9 | '[실행정보]'섹션 하위에 아래 예와 같이 필요한 정보를 제시해 주세요. 10 | [실행정보] 11 | - IMG_REG: docker.io 12 | - IMG_ORG: phonebill 13 | - JENKINS_CLOUD_NAME: k8s 14 | - NAMESPACE: phonebill 15 | -------------------------------------------------------------------------------- /.claude/commands/deploy-k8s-guide-back.md: -------------------------------------------------------------------------------- 1 | --- 2 | description: 백엔드 배포 가이드 작성 3 | --- 4 | 5 | @cicd 6 | '백엔드배포가이드'에 따라 백엔드 서비스 배포 방법을 작성해 주세요. 7 | 프롬프트에 '[실행정보]'항목이 없으면 수행을 중단하고 안내 메시지를 표시해 주세요. 8 | {안내메시지} 9 | '[실행정보]'섹션 하위에 아래 예와 같이 필요한 정보를 제시해 주세요. 10 | [실행정보] 11 | - ACR명: acrdigitalgarage01 12 | - k8s명: aks-digitalgarage-01 13 | - 네임스페이스: tripgen 14 | - 파드수: 2 15 | - 리소스(CPU): 256m/1024m 16 | - 리소스(메모리): 256Mi/1024Mi 17 | -------------------------------------------------------------------------------- /.claude/commands/develop-make-run-profile.md: -------------------------------------------------------------------------------- 1 | --- 2 | description: 서비스 실행파일 작성 3 | --- 4 | @test-backend 5 | '서비스실행파일작성가이드'에 따라 테스트를 해 주세요. 6 | 프롬프트에 '[작성정보]'항목이 없으면 수행을 중단하고 안내 메시지를 표시해 주세요. 7 | DB나 Redis의 접근 정보는 지정할 필요 없습니다. 특별히 없으면 '[작성정보]'섹션에 '없음'이라고 하세요. 8 | {안내메시지} 9 | [작성정보] 10 | - API Key 11 | - Claude: sk-ant-ap... 12 | - OpenAI: sk-proj-An4Q... 13 | - Open Weather Map: 1aa5b... 14 | - Kakao API Key: 5cdc24.... 15 | -------------------------------------------------------------------------------- /.claude/commands/deploy-run-container-guide-front.md: -------------------------------------------------------------------------------- 1 | --- 2 | description: 프론트엔드 컨테이너 실행방법 작성 3 | --- 4 | 5 | @cicd 6 | '프론트엔드컨테이너실행방법가이드'에 따라 컨테이너 실행 가이드를 작성해 주세요. 7 | 프롬프트에 '[실행정보]'항목이 없으면 수행을 중단하고 안내 메시지를 표시해 주세요. 8 | {안내메시지} 9 | '[실행정보]'섹션 하위에 아래 예와 같이 필요한 정보를 제시해 주세요. 10 | [실행정보] 11 | - 시스템명: tripgen 12 | - ACR명: acrdigitalgarage01 13 | - VM 14 | - KEY파일: ~/home/bastion-dg0500 15 | - USERID: azureuser 16 | - IP: 4.230.5.6 17 | -------------------------------------------------------------------------------- /.claude/commands/develop-dev-front.md: -------------------------------------------------------------------------------- 1 | --- 2 | description: 프론트엔드 개발 3 | --- 4 | @dev-front 5 | "프론트엔드개발가이드"에 따라 개발해 주세요. 6 | 프롬프트에 '[개발정보]'항목이 없으면 수행을 중단하고 안내 메시지를 표시해 주세요. 7 | {안내메시지} 8 | '[개발정보]'섹션 하위에 아래 예와 같이 개발에 필요한 정보를 제시해 주세요. 9 | [개발정보] 10 | - 개발프레임워크: Typescript + React 18 11 | - UI프레임워크: MUI v5 12 | - 상태관리: Redux Toolkit 13 | - 라우팅: React Router v6 14 | - API통신: Axios 15 | - 스타일링: MUI + styled-components 16 | - 빌드도구: Vite 17 | -------------------------------------------------------------------------------- /.claude/commands/deploy-actions-cicd-guide-back.md: -------------------------------------------------------------------------------- 1 | --- 2 | description: 백엔드 GitHub Actions CI/CD 가이드 작성 3 | --- 4 | 5 | @cicd 6 | '백엔드GitHubActions파이프라인작성가이드'에 따라 GitHub Actions를 이용한 CI/CD 가이드를 작성해 주세요. 7 | 프롬프트에 '[실행정보]'항목이 없으면 수행을 중단하고 안내 메시지를 표시해 주세요. 8 | {안내메시지} 9 | '[실행정보]'섹션 하위에 아래 예와 같이 필요한 정보를 제시해 주세요. 10 | [실행정보] 11 | - ACR_NAME: acrdigitalgarage01 12 | - RESOURCE_GROUP: rg-digitalgarage-01 13 | - AKS_CLUSTER: aks-digitalgarage-01 14 | - NAMESPACE: phonebill-dg0500 15 | -------------------------------------------------------------------------------- /.claude/commands/deploy-actions-cicd-guide-front.md: -------------------------------------------------------------------------------- 1 | --- 2 | description: 프론트엔드 GitHub Actions CI/CD 가이드 작성 3 | --- 4 | 5 | @cicd 6 | '프론트엔드GitHubActions파이프라인작성가이드'에 따라 GitHub Actions를 이용한 CI/CD 가이드를 작성해 주세요. 7 | 프롬프트에 '[실행정보]'항목이 없으면 수행을 중단하고 안내 메시지를 표시해 주세요. 8 | {안내메시지} 9 | '[실행정보]'섹션 하위에 아래 예와 같이 필요한 정보를 제시해 주세요. 10 | [실행정보] 11 | - SYSTEM_NAME: phonebill 12 | - ACR_NAME: acrdigitalgarage01 13 | - RESOURCE_GROUP: rg-digitalgarage-01 14 | - AKS_CLUSTER: aks-digitalgarage-01 15 | - NAMESPACE: phonebill-dg0500 16 | -------------------------------------------------------------------------------- /.claude/commands/deploy-k8s-guide-front.md: -------------------------------------------------------------------------------- 1 | --- 2 | description: 프론트엔드 배포 가이드 작성 3 | --- 4 | 5 | @cicd 6 | '프론트엔드배포가이드'에 따라 프론트엔드 서비스 배포 방법을 작성해 주세요. 7 | 프롬프트에 '[실행정보]'항목이 없으면 수행을 중단하고 안내 메시지를 표시해 주세요. 8 | {안내메시지} 9 | '[실행정보]'섹션 하위에 아래 예와 같이 필요한 정보를 제시해 주세요. 10 | [실행정보] 11 | - 시스템명: tripgen 12 | - ACR명: acrdigitalgarage01 13 | - k8s명: aks-digitalgarage-01 14 | - 네임스페이스: tripgen 15 | - 파드수: 2 16 | - 리소스(CPU): 256m/1024m 17 | - 리소스(메모리): 256Mi/1024Mi 18 | - Gateway Host: http://tripgen-api.20.214.196.128.nip.io 19 | -------------------------------------------------------------------------------- /.claude/commands/develop-test-backend.md: -------------------------------------------------------------------------------- 1 | --- 2 | description: 백엔드 테스트 3 | --- 4 | @test-backend 5 | '백엔드테스트가이드'에 따라 테스트를 해 주세요. 6 | 프롬프트에 '[테스트정보]'항목이 없으면 수행을 중단하고 안내 메시지를 표시해 주세요. 7 | 테스트 대상 서비스를 지정안하면 모든 서비스를 테스트 합니다. 8 | {안내메시지} 9 | '[테스트정보]'섹션 하위에 아래 예와 같이 테스트에 필요한 정보를 제시해 주세요. 10 | 테스트 대상 서비스를 콤마로 구분하여 입력할 수 있으며 전체를 테스트 할 때는 '전체'라고 입력하세요. 11 | - 서비스: user-service 12 | - API Key 13 | - Claude: sk-ant-ap... 14 | - OpenAI: sk-proj-An4Q... 15 | - Open Weather Map: 1aa5b... 16 | - Kakao API Key: 5cdc24.... 17 | -------------------------------------------------------------------------------- /references/azure-firewall-open.md: -------------------------------------------------------------------------------- 1 | # Azure 방화벽 오픈** 2 | 3 | AKS에 배포된 DB나 서비스를 접근하기 위해 방화벽 포트를 오픈하는 방법입니다. 4 | 5 | - AKS찾기 6 | ![](../images/2025-09-01-17-22-07.png) 7 | 8 | - 노드풀 클릭: 기본 생성되는 노드풀 이름은 보통 'nodepool1'임. 9 | ![](../images/2025-09-01-17-24-30.png) 10 | 11 | - 서브넷 클릭 12 | ![](../images/2025-09-01-17-25-43.png) 13 | 14 | - 보안그룹 클릭 15 | ![](../images/2025-09-01-17-26-23.png) 16 | 17 | - 방화벽 포트 추가 : 18 | ![](../images/2025-09-01-17-26-59.png) 19 | 20 | ![](../images/2025-09-01-17-28-01.png) 21 | 22 | -------------------------------------------------------------------------------- /guides/develop/mq-install.md: -------------------------------------------------------------------------------- 1 | # MQ설치가이드 2 | 3 | [요청사항] 4 | - 제공된 {설치대상환경}에만 설치 5 | - 'MQ설치계획서'에 따라 병렬로 설치 6 | - 현재 OS에 맞게 설치 7 | - 설치 후 연결 방법 안내 8 | - 설치 대상 클라우드 플랫폼은 이미 로그인되어 있음 9 | - Kubernetes에 배포 manifest나 helm 설치를 위한 values.yaml은 develop/mq 디렉토리에 생성 10 | - MQ연결문자열을 얻는 명령어를 결과서에 명시하고 연결문자열을 mq-connection-string.txt에 저장 11 | - '[결과파일]' 안내에 따라 파일 작성 12 | - 설치 결과 파일에는 설치 시 사용한 명령을 포함하여 작성 13 | 14 | [참고자료] 15 | - MQ설치계획서 16 | 17 | [결과파일] 18 | - develop/mq/mq-exec-{설치대상환경}.md 19 | - {설치대상환경}은 dev 또는 prod로 함 20 | - mq-connection-string.txt -------------------------------------------------------------------------------- /.claude/commands/think-userstory.md: -------------------------------------------------------------------------------- 1 | --- 2 | description: 유저스토리 작성 3 | --- 4 | @document 5 | 유저스토리를 작성하세요. 6 | 프롬프트에 '[요구사항]'섹션이 없으면 수행을 중단하고 안내 메시지를 표시합니다. 7 | {안내메시지} 8 | '[요구사항]' 섹션에 아래 예와 같은 정보를 제공해 주십시오. 9 | [요구사항] 10 | Case 1) 이벤트스토밍을 피그마로 수행한 경우는 피그마 채널ID를 제공 11 | 예) 피그마 채널ID 'abcde'에 접속하여 분석 12 | Case 2) 다른 방법으로 이벤트스토밍을 한 경우는 요구사항을 정리한 파일 경로를 제공 13 | 예) 요구사항문서 'design/requirement.md'를 읽어 분석 14 | 15 | 프롬프트에 '[요구사항]'섹션이 있으면 아래와 같이 수행합니다. 16 | 1. 요구사항 분석 17 | - 피그마 채널ID가 제공된 경우 figma MCP를 이용하여 해당 채널에 접속하여 분석 18 | - 요구사항문서 경로가 제공된 경우 해당 문서를 읽어 요구사항을 분석 19 | 2. 유저스토리 작성 20 | - '유저스토리작성방법'과 '유저스토리예제'를 참고하여 유저스토리를 작성 21 | - 결과파일은 'design/userstory.md'에 생성 22 | -------------------------------------------------------------------------------- /guides/tools/openapi-to-csv/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "openapi-to-csv", 3 | "version": "1.0.0", 4 | "description": "Convert OpenAPI YAML files to CSV format for API documentation", 5 | "main": "openapi-to-csv.js", 6 | "bin": { 7 | "openapi-to-csv": "./openapi-to-csv.js" 8 | }, 9 | "scripts": { 10 | "start": "node openapi-to-csv.js" 11 | }, 12 | "keywords": [ 13 | "openapi", 14 | "csv", 15 | "api", 16 | "documentation" 17 | ], 18 | "author": "", 19 | "license": "MIT", 20 | "dependencies": { 21 | "js-yaml": "^4.1.0", 22 | "commander": "^9.4.1" 23 | }, 24 | "engines": { 25 | "node": ">=12.0.0" 26 | } 27 | } -------------------------------------------------------------------------------- /.claude/commands/design-front.md: -------------------------------------------------------------------------------- 1 | --- 2 | description: 프론트엔드 설계 3 | --- 4 | 5 | @plan as @front 6 | '프론트엔드설계가이드'를 준용하여 **프론트엔드설계서**를 작성해 주세요. 7 | 프롬프트에 '[백엔드시스템]'항목이 없으면 수행을 중단하고 안내 메시지를 표시합니다. 8 | {안내메시지} 9 | '[백엔드시스템]' 섹션에 아래 예와 같은 정보를 제공해 주십시오. 10 | [백엔드시스템] 11 | - 시스템: tripgen 12 | - 마이크로서비스: user-service, location-service, trip-service, ai-service 13 | - API문서 14 | - user service: http://localhost:8081/v3/api-docs 15 | - location service: http://localhost:8082/v3/api-docs 16 | - trip service: http://localhost:8083/v3/api-docs 17 | - ai service: http://localhost:8084/v3/api-docs 18 | [요구사항] 19 | - 각 화면에 Back 아이콘 버튼과 화면 타이틀 표시 20 | - 하단 네비게이션 바 아이콘화: 홈, 새여행, 주변장소검색, 여행보기 21 | -------------------------------------------------------------------------------- /guides/develop/database-install.md: -------------------------------------------------------------------------------- 1 | # 데이터베이스설치가이드 2 | 3 | [요청사항] 4 | - 제공된 {설치대상환경}에만 설치 5 | - 데이터베이스설치계획서에 따라 병렬로 설치 6 | - (중요) 테이블은 생성하지 않고 데이터베이스만 설치 7 | - 기본 설치되는 데이터베이스 외에 추가 데이터베이스 생성하지 말것 8 | - 캐시설치계획서에 따라 병렬로 설치 9 | - 현재 OS에 맞게 설치 10 | - 설치 후 데이터베이스 종류에 맞게 연결 방법 안내 11 | - 설치 대상 클라우드 플랫폼은 이미 로그인되어 있고 Kubernetes도 연결되어 있음 12 | - Kubernetes에 배포 manifest나 helm 설치를 위한 values.yaml은 develop/database/exec 디렉토리에 생성 13 | - Database나 Redis를 Kubernetes에 배포한 경우 로컬에서 연결하기 위한 LoadBalancer 타입의 서비스 객체 생성 14 | - '[결과파일]' 안내에 따라 파일 작성 15 | - 설치 결과 파일에는 설치 helm 명령, 설치 시 사용한 values.yaml 등을 포함하여 작성 16 | 17 | [참고자료] 18 | - 데이터베이스설치계획서 19 | - 캐시설치계획서 20 | 21 | [결과파일] 22 | - develop/database/exec/db-exec-{설치대상환경}.md 23 | - develop/database/exec/cache-exec-{설치대상환경}.md 24 | - {service-name}은 영어로 작성 25 | - {설치대상환경}은 dev 또는 prod로 함 26 | -------------------------------------------------------------------------------- /references/MCP-linuxmac.json: -------------------------------------------------------------------------------- 1 | { 2 | "mcpServers": { 3 | "context7": { 4 | "command": "npx", 5 | "args": [ 6 | "-y", 7 | "@upstash/context7-mcp" 8 | ] 9 | }, 10 | "sequential-thinking": { 11 | "command": "npx", 12 | "args": [ 13 | "-y", 14 | "@modelcontextprotocol/server-sequential-thinking" 15 | ] 16 | }, 17 | "playwright": { 18 | "command": "npx", 19 | "args": [ 20 | "-y", 21 | "@playwright/mcp@latest" 22 | ] 23 | }, 24 | "filesystem": { 25 | "command": "npx", 26 | "args": [ 27 | "-y", 28 | "@modelcontextprotocol/server-filesystem", 29 | "/Users" 30 | ] 31 | }, 32 | "ClaudeTalkToFigma": { 33 | "command": "npx", 34 | "args": [ 35 | "claude-talk-to-figma-mcp@latest" 36 | ] 37 | } 38 | } 39 | } -------------------------------------------------------------------------------- /guides/develop/mq-plan.md: -------------------------------------------------------------------------------- 1 | # MQ설치게획서가이드 2 | 3 | [요청사항] 4 | - <작성원칙>을 준용하여 작성 5 | - <작성순서>에 따라 작성 6 | - [결과파일] 안내에 따라 파일 작성 7 | 8 | [가이드] 9 | <작성원칙> 10 | - 외부시퀀스설계서에 없는 불필요한 비동기 통신은 설계하지 않음 11 | - '물리아키텍처 > 6. 메시징 아키텍처'과 일치해야 함 12 | - 그 외 데이터베이스 설치에 필요한 항목은 '물리아키텍처'와 일치해야 함 13 | - (중요) "백킹서비스설치방법"의 가이드를 반드시 준용하여 작성 14 | - Kubernetes에 배포 시 아래 준수 15 | - "백킹서비스설치방법"을 참조하여 helm chart로 설치하는 계획서 작성 16 | - 기본 StorageClass를 찾아 기술 17 | <작성순서> 18 | - 준비: 19 | - 외부시퀀스설계서, 물리아키텍처, 백킹서비스설치방법 분석 및 이해 20 | - 실행: 21 | - 외부시퀀스설계서에서 MQ을 이용한 비동기 통신이 필요한 곳을 파악 22 | - Message Queue 설치계획서 작성 23 | - 결과: 24 | - mq-plan-{설치대상환경}.md 25 | - 검토: 26 | - <작성원칙> 준수 검토 27 | - 스쿼드 팀원 리뷰: 누락 및 개선 사항 검토 28 | - 수정 사항 선택 및 반영 29 | 30 | [참고자료] 31 | - 외부시퀀스설계서 32 | - 물리아키텍처 33 | - 백킹서비스설치방법 34 | 35 | [예제] 36 | https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/refs/heads/main/samples/sample-MQ%EC%84%A4%EC%B9%98%EA%B3%84%ED%9A%8D%EC%84%9C.md 37 | 38 | [결과파일] 39 | - develop/mq/mq-plan-{설치대상환경}.md 40 | - {설치대상환경}은 dev 또는 prod로 함 41 | 42 | -------------------------------------------------------------------------------- /.claude/commands/develop-help.md: -------------------------------------------------------------------------------- 1 | --- 2 | description: 개발 작업 순서 안내 3 | --- 4 | 아래 내용을 터미널에 표시합니다: 5 | 6 | ``` 7 | 개발 작업 순서 8 | 9 | 1단계: 데이터베이스 설치계획서 작성 10 | /develop-db-guide 11 | - 데이터베이스설치계획서가이드에 따라 작성 12 | 13 | 2단계: 데이터베이스 설치 수행 14 | /develop-db-install 15 | - [설치정보] 섹션에 환경 정보 제공 필요 16 | 17 | 3단계: 데이터베이스 설치 제거 (필요시) 18 | /develop-db-remove 19 | - 설치결과서 기반으로 리소스 삭제 20 | 21 | 4단계: Message Queue 설치 계획서 작성 22 | /develop-mq-guide 23 | - MQ설치게획서가이드에 따라 작성 24 | 25 | 5단계: Message Queue 설치 수행 (필요시) 26 | /develop-mq-install 27 | - [설치정보] 섹션에 환경 정보 제공 필요 28 | 29 | 6단계: Message Queue 설치 제거 (필요시) 30 | /develop-mq-remove 31 | - MQ설치결과서 기반으로 리소스 삭제 32 | 33 | 7단계: 백엔드 개발 34 | /develop-dev-backend 35 | - [개발정보] 섹션에 개발 아키텍처패턴 제공 필요 36 | 37 | 8단계: 백엔드 오류 해결 38 | /develop-fix-backend 39 | - 컴파일 에러 해결 40 | 41 | 9단계: 서비스 실행파일 작성 42 | /develop-make-run-profile 43 | - [작성정보] 섹션에 API Key 등 정보 제공 필요 44 | 45 | 10단계: 백엔드 테스트 46 | /develop-test-backend 47 | - [테스트정보] 섹션에 서비스, API Key 정보 제공 필요 48 | 49 | 11단계: 프론트엔드 개발 50 | /develop-dev-front 51 | - [개발정보] 섹션에 개발프레임워크 정보 제공 필요 52 | ``` 53 | -------------------------------------------------------------------------------- /guides/prompt/02.think-prompt.md: -------------------------------------------------------------------------------- 1 | # 서비스 기획 프롬프트 2 | 3 | ## 서비스 기획 4 | command: "/think-planning" 5 | prompt: 6 | 아래 내용을 터미널에 표시만 하고 수행을 하지는 않습니다. 7 | ``` 8 | 아래 가이드를 참고하여 서비스 기획을 수행합니다. 9 | 10 | https://github.com/cna-bootcamp/aiguide/blob/main/AI%ED%99%9C%EC%9A%A9%20%EC%84%9C%EB%B9%84%EC%8A%A4%20%EA%B8%B0%ED%9A%8D%20%EA%B0%80%EC%9D%B4%EB%93%9C.md 11 | 12 | ``` 13 | 14 | --- 15 | 16 | ## 유저스토리 작성 17 | command: "/think-userstory" 18 | prompt: 19 | 20 | ``` 21 | @document 22 | 유저스토리를 작성하세요. 23 | 프롬프트에 '[요구사항]'섹션이 없으면 수행을 중단하고 안내 메시지를 표시합니다. 24 | {안내메시지} 25 | '[요구사항]' 섹션에 아래 예와 같은 정보를 제공해 주십시오. 26 | [요구사항] 27 | Case 1) 이벤트스토밍을 피그마로 수행한 경우는 피그마 채널ID를 제공 28 | 예) 피그마 채널ID 'abcde'에 접속하여 분석 29 | Case 2) 다른 방법으로 이벤트스토밍을 한 경우는 요구사항을 정리한 파일 경로를 제공 30 | 예) 요구사항문서 'design/requirement.md'를 읽어 분석 31 | 32 | 프롬프트에 '[요구사항]'섹션이 있으면 아래와 같이 수행합니다. 33 | 1. 요구사항 분석 34 | - 피그마 채널ID가 제공된 경우 figma MCP를 이용하여 해당 채널에 접속하여 분석 35 | - 요구사항문서 경로가 제공된 경우 해당 문서를 읽어 요구사항을 분석 36 | 2. 유저스토리 작성 37 | - '유저스토리작성방법'과 '유저스토리예제'를 참고하여 유저스토리를 작성 38 | - 결과파일은 'design/userstory.md'에 생성 39 | 40 | ``` 41 | 42 | -------------------------------------------------------------------------------- /guides/design/uiux-design.md: -------------------------------------------------------------------------------- 1 | # UI/UX설계가이드 2 | 3 | [요청사항] 4 | - <작성원칙>을 준용하여 설계 5 | - <작성순서>에 따라 설계 6 | - [결과파일] 안내에 따라 파일 작성 7 | 8 | [가이드] 9 | <작성원칙> 10 | - **유저스토리와 매칭**되어야 함. **불필요한 추가 설계 금지** 11 | <작성순서> 12 | 아래 순서에 따라 순차적으로 작성 13 | - 준비 14 | - 유저스토리의 분석 및 이해 15 | - 설계 계획 16 | - UI/UX 설계서 작성: 아래 항목을 반드시 포함하고 필요 시 항목 추가 17 | - 프로토타입 화면 목록 정의 18 | - 화면 간 사용자 플로우 정의 19 | - 화면별 상세 설계: 20 | - 개요: 목적, 관련 유저스토리, 비즈니스 중요도 21 | - 주요 기능 22 | - UI 구성요소 23 | - 인터랙션 24 | - 화면간 전환 및 네비게이션 25 | - 반응형 설계 전략 26 | - 접근성 보장 방안 27 | - 성능 최적화 방안 28 | - 변경 이력 29 | - UI/UX 스타일 가이드 작성: 아래 항목을 반드시 포함하고 필요 시 항목 추가 30 | - 브랜드 아이덴티티: 디자인 컨셉 등 31 | - 디자인 원칙 32 | - 컬러 시스템 33 | - 타이포그래피 34 | - 간격 시스템 35 | - 컴포넌트 스타일 36 | - 반응형 브레이크포인트 37 | - 대상 서비스 특화 컴포넌트 38 | - 인터랙션 패턴 39 | - 변경 이력 40 | - 검토: 41 | - <작성원칙> 준수 검토 42 | - 스쿼드 팀원 리뷰: 누락 및 개선 사항 검토 43 | - 수정 사항 선택 및 반영 44 | 45 | [참고자료] 46 | - 유저스토리 47 | 48 | [결과파일] 49 | - 스타일가이드: design/uiux/style-guide.md 50 | - UI/UX설계서: design/uiux/uiux.md 51 | - 화면명은 한글로 작성 52 | 예시) 01-대시보드.svg 53 | -------------------------------------------------------------------------------- /references/MCP-window.json: -------------------------------------------------------------------------------- 1 | { 2 | "mcpServers": { 3 | "context7": { 4 | "command": "cmd", 5 | "args": [ 6 | "/c", 7 | "npx", 8 | "-y", 9 | "@upstash/context7-mcp@latest" 10 | ] 11 | }, 12 | "sequential-thinking": { 13 | "command": "cmd", 14 | "args": [ 15 | "/c", 16 | "npx", 17 | "-y", 18 | "@modelcontextprotocol/server-sequential-thinking" 19 | ] 20 | }, 21 | "playwright": { 22 | "command": "cmd", 23 | "args": [ 24 | "/c", 25 | "npx", 26 | "@playwright/mcp@latest" 27 | ] 28 | }, 29 | "filesystem": { 30 | "type": "stdio", 31 | "command": "cmd", 32 | "args": [ 33 | "/c", 34 | "npx", 35 | "-y", 36 | "@modelcontextprotocol/server-filesystem", 37 | "/Users" 38 | ] 39 | }, 40 | "ClaudeTalkToFigma": { 41 | "type": "stdio", 42 | "command": "cmd", 43 | "args": [ 44 | "/c", 45 | "npx", 46 | "-y", 47 | "claude-talk-to-figma-mcp@latest" 48 | ] 49 | } 50 | } 51 | } -------------------------------------------------------------------------------- /guides/setup/03.instruction-guide.md: -------------------------------------------------------------------------------- 1 | # Claude Project Instruction 작성 가이드 2 | 3 | Claude Code의 Claude Project Instruction은 프로젝트 루트 하위에 CLAUDE.md파일에 지정합니다. 4 | Claude Code가 다이랙트 모드로 시작될 때 이 파일의 내용을 읽어 메모리에 저장하여 사용합니다. 5 | 6 | 아래와 같은 순서로 'CLAUDE.md 템플릿'을 이용하여 CLAUDE.md 파일을 작성합니다. 7 | 8 | CLAUDE.md 템플릿: https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/refs/heads/main/references/instruction-template.md 9 | 10 | 1.'CLAUDE.md 템플릿' 다운로드 11 | - WebFetch가 아닌 'curl {URL} > claude/instruction-template.md'명령으로 저장 12 | - claude/instruction-template.md을 이용하여 이후 작업 13 | 14 | 2.프로젝트명과 목표 치환 15 | - 사용자가 제공한 값으로 'claude/instruction-template.md'의 '{프로젝트명}'과 '{목표}'값을 치환함 16 | 17 | 3.프로젝트 멤버 목록 구성 18 | - 프로젝트 목표를 수행하기 위한 팀원을 추천함 19 | - 아래 '팀원목록 예시'를 참고하여 팀원을 구성함 20 | - 닉네임은 역할에 맞게 2~3자로 네이밍 21 | [팀원목록 예시] 22 | ``` 23 | Product Owner 24 | - 책임: 프로젝트 방향성 설정, 요구사항 정의, 우선순위 결정 25 | - 이름/별명: 이해경/온달 26 | - 성별/나이: 남자/55세 27 | - 주요경력: 기업 디지털 전환 컨설팅 15년, AI 도구 도입 전략 수립 경험 28 | ``` 29 | - claude/instruction-template.md 파일의 '팀원목록'값을 치환함 30 | 31 | 4.CLAUDE.md 파일 생성 32 | - claude/instruction-template.md 파일을 프로젝트 루트 하위에 CLAUDE.md파일로 복사 33 | 34 | 5.가이드 로딩 35 | - '[가이드 로딩]' 섹션에 지정된 명령을 수행함 36 | -------------------------------------------------------------------------------- /.claude/commands/deploy-help.md: -------------------------------------------------------------------------------- 1 | --- 2 | description: 배포 작업 순서 안내 3 | --- 4 | 5 | 아래 내용을 터미널에 표시합니다: 6 | 7 | ``` 8 | 배포 작업 순서 9 | 10 | 1단계: 백엔드 컨테이너 이미지 작성 11 | /deploy-build-image-back 12 | - 백엔드컨테이너이미지작성가이드에 따라 작성 13 | 14 | 2단계: 프론트엔드 컨테이너 이미지 작성 15 | /deploy-build-image-front 16 | - 프론트엔드컨테이너이미지작성가이드에 따라 작성 17 | 18 | 3단계: 백엔드 컨테이너 실행방법 작성 19 | /deploy-run-container-guide-back 20 | - [실행정보] 섹션에 ACR명, VM 정보 제공 필요 21 | 22 | 4단계: 프론트엔드 컨테이너 실행방법 작성 23 | /deploy-run-container-guide-front 24 | - [실행정보] 섹션에 시스템명, ACR명, VM 정보 제공 필요 25 | 26 | 5단계: 백엔드 배포 가이드 작성 27 | /deploy-k8s-guide-back 28 | - [실행정보] 섹션에 ACR명, k8s명, 네임스페이스 등 제공 필요 29 | 30 | 6단계: 프론트엔드 배포 가이드 작성 31 | /deploy-k8s-guide-front 32 | - [실행정보] 섹션에 시스템명, ACR명, k8s명, Gateway Host 등 제공 필요 33 | 34 | 7단계: CI/CD 파이프라인 작성 (택1) 35 | 36 | [Jenkins 사용 시] 37 | /deploy-jenkins-cicd-guide-back - 백엔드 Jenkins CI/CD 38 | /deploy-jenkins-cicd-guide-front - 프론트엔드 Jenkins CI/CD 39 | - [실행정보] 필수: IMG_REG, IMG_ORG, JENKINS_CLOUD_NAME, NAMESPACE 40 | 41 | [GitHub Actions 사용 시] 42 | /deploy-actions-cicd-guide-back - 백엔드 GitHub Actions CI/CD 43 | /deploy-actions-cicd-guide-front - 프론트엔드 GitHub Actions CI/CD 44 | - [실행정보] 필수: ACR_NAME, RESOURCE_GROUP, AKS_CLUSTER, NAMESPACE 45 | ``` 46 | -------------------------------------------------------------------------------- /references/Claude Code 사용통계.md: -------------------------------------------------------------------------------- 1 | # Claude Code 사용 통계 보는 방법 2 | ccusage라는 유틸리티를 사용합니다. 3 | 4 | ## 사전 작업 5 | ### bun 설치: 6 | Linux/Mac사용자는 기본 터미널에서 수행하고, Window사용자는 Window Terminal의 Git Bash에서 수행합니다. 7 | 8 | ```bash 9 | curl -fsSL https://bun.sh/install | bash 10 | ``` 11 | 설정 적용: Mac은 ~/.zshrc, Linux와 Window는 ~/.bashrc에 추가 12 | ``` 13 | export PATH="$HOME/.bun/bin:$PATH" 14 | ``` 15 | 16 | 터미널을 닫고 새 터미널을 열거나, 17 | 아래 명령으로 설정 적용. 18 | 19 | Linux/Mac: 20 | ``` 21 | source ~/.zshrc 22 | ``` 23 | 24 | Window: 25 | ``` 26 | source ~/.bashrc 27 | ``` 28 | 29 | ## 실시간 사용량 보기 30 | 31 | 남은 세션 사용시간과 사용량 보기 32 | ``` 33 | bunx ccusage blocks --live 34 | ``` 35 | 결과예시: 지금 세션 3시간 남았고 이 세션에서 23%사용했으며 36 | 지금 사용량으로 예상하면 세션이 끝날때까지 101.7% 사용할 것 같다는 의미입니다. 37 | 예상 사용율을 보고 본인의 Claude 사용 플랜을 정할 수 있습니다. 38 | ![](./images/2025-07-29-11-13-04.png) 39 | 40 | 이 창을 계속 띄워 놓으면 거의 실시간으로 사용량을 볼 수 있습니다 41 | 42 | ## 일별/월별 사용량 보기 43 | 44 | ``` 45 | bunx ccusage daily/monthly [--since YYYYMMDD] [--until YYYYMMDD] 46 | ``` 47 | Cost는 만약에 Claude API를 사용했다면 예상되는 비용입니다. 48 | Claude Plan(Pro, Max)이 쓰는게 좋을 지 API를 쓰는게 좋을 지 판단할 수 있습니다. 49 | 자주 사용한다면 Claude Plan이 보통 더 좋습니다. 50 | 결과예시) 51 | ![](./images/2025-07-29-11-16-31.png) 52 | 53 | -------------------------------------------------------------------------------- /guides/develop/dev-backend-testcode.md: -------------------------------------------------------------------------------- 1 | # 백엔드 테스트 코드 작성 가이드 2 | 3 | [요청사항] 4 | - <테스트원칙>을 준용하여 수행 5 | - <테스트순서>에 따라 수행 6 | - [결과파일] 안내에 따라 파일 작성 7 | 8 | [가이드] 9 | <테스트원칙> 10 | - '테스트코드표준'의 '공통전략'과 'E2E 테스트 전략'을 준용 11 | - 네이밍룰은 '테스트코드표준'에 정의된 패키지, 클래스, 메소드, 테스트 데이터 네이밍룰을 준용 12 | - '개발주석표준'에 맞게 주석 작성 13 | - 테스트 코드 개발 툴은 'Mockito'를 사용 14 | <테스트순서> 15 | - 준비: 16 | - 데이터베이스설치결과서, 캐시설치결과서, MQ설치결과서, 테스트코드표준 분석 및 이해 17 | - 실행: 18 | - E2E 테스트 코드 작성 19 | - 각 서비스의 API들을 테스트하는 코드 작성 20 | - 테스트 Class에 @ActiveProfile("e2e-test")로 지정 21 | - @SpringBootTest와 MockMvc 사용 22 | - 각 서비스별로 서브에이젼트를 사용하여 동시 작성 23 | - common 모듈은 공통 라이브러리이므로 제외 24 | - 테스트 설정 Manifest(src/test/resources/application*.yml)의 각 항목의 값은 하드코딩하지 않고 환경변수 처리 25 | - E2E 테스트 수행 및 오류 해결 26 | - 각 서비스별로 서브에이젼트를 사용하여 동시 수행 27 | - 백킹서비스는 데이터베이스설치결과서, 캐시설치결과서, MQ설치결과서를 보고 설치된 서비스를 로컬에서 연결하여 수행 28 | - Kubernetes에 배포된 데이터베이스는 LoadBalacer유형의 Service를 만들어 연결 29 | - 테스트가 모두 성공할 때까지 계속 수행 30 | - 설정 Manifest(src/main/resources/application*.yml) 변경 31 | - 테스트 결과를 이용하여 Manifest를 검토하여 필요 시 수정 32 | - 각 항목의 값은 하드코딩하지 않고 환경변수 처리 33 | - 결과: test-backend.md 34 | - 검토: 35 | - <개발원칙> 준수 검토 36 | - 스쿼드 팀원 리뷰: 누락 및 개선 사항 검토 37 | - 수정 사항 선택 및 반영 38 | 39 | [참고자료] 40 | - 데이터베이스설치결과서 41 | - 캐시설치결과서 42 | - MQ설치결과서 43 | - 테스트코드표준 44 | 45 | [결과파일] 46 | - develop/dev/test-backend.md -------------------------------------------------------------------------------- /.claude/commands/design-help.md: -------------------------------------------------------------------------------- 1 | --- 2 | description: 설계 작업 순서 안내 3 | command: /design-help 4 | --- 5 | 6 | 아래 내용을 터미널에 표시합니다: 7 | 8 | ``` 9 | 설계 작업 순서 10 | 11 | 1단계: UI/UX 설계 12 | /design-uiux 13 | - UI/UX설계가이드를 준용하여 작성 14 | 15 | 2단계: 프로토타입 작성 16 | /design-prototype 17 | - 프로토타입작성가이드를 준용하여 작성 18 | 19 | 3단계: 프로토타입 테스트 20 | /design-test-prototype 21 | - 프로토타입을 테스트 22 | 23 | 4단계: 프로토타입 오류수정 (필요시) 24 | /design-fix-prototype 25 | - [오류내용] 섹션에 오류 내용 제공 필요 26 | 27 | 5단계: 프로토타입 개선 (필요시) 28 | /design-improve-prototype 29 | - [개선내용] 섹션에 개선할 내용 제공 필요 30 | 31 | 6단계: 유저스토리 품질 높이기 32 | /design-improve-userstory 33 | - 프로토타입 분석 후 유저스토리 업데이트 34 | 35 | 7단계: 설계서 업데이트 36 | /design-update-uiux 37 | - UI/UX설계서와 스타일가이드 수정 38 | 39 | 8단계: 클라우드 아키텍처 패턴 선정 40 | /design-pattern 41 | - 클라우드아키텍처패턴선정가이드 준용 42 | 43 | 9단계: 논리아키텍처 설계 44 | /design-logical 45 | - 공통설계원칙과 논리아키텍처설계가이드 준용 46 | 47 | 10단계: 외부 시퀀스 설계 48 | /design-seq-outer 49 | - 외부시퀀스설계가이드 준용 50 | 51 | 11단계: 내부 시퀀스 설계 52 | /design-seq-inner 53 | - 내부시퀀스설계가이드 준용 54 | 55 | 12단계: API 설계 56 | /design-api 57 | - API설계가이드 준용 58 | 59 | 13단계: 클래스 설계 60 | /design-class 61 | - [클래스설계 정보] 섹션에 패키지 그룹, 설계 아키텍처 패턴 제공 필요 62 | 63 | 14단계: 데이터 설계 64 | /design-data 65 | - 데이터설계가이드 준용 66 | 67 | 15단계: High Level 아키텍처 정의서 작성 68 | /design-high-level 69 | - CLOUD 정보 제공 필요 (Azure, AWS, Google) 70 | 71 | 16단계: 물리 아키텍처 설계 72 | /design-physical 73 | - CLOUD 정보 제공 필요 (Azure, AWS, Google) 74 | 75 | 17단계: 프론트엔드 설계 76 | /design-front 77 | - [백엔드시스템] 섹션에 시스템 정보 제공 필요 78 | ``` 79 | -------------------------------------------------------------------------------- /guides/design/data-design.md: -------------------------------------------------------------------------------- 1 | # 데이터설계가이드 2 | 3 | [요청사항] 4 | - <작성원칙>을 준용하여 설계 5 | - <작성순서>에 따라 설계 6 | - [결과파일] 안내에 따라 파일 작성 7 | 8 | [가이드] 9 | <작성원칙> 10 | - **클래스설계서의 각 서비스별 Entity정의와 일치**해야 함. **불필요한 추가 설계 금지** 11 | - <데이터독립성원칙>에 따라 각 서비스마다 데이터베이스를 분리 12 | <작성순서> 13 | - 준비: 14 | - 유저스토리, API설계서, 외부시퀀스설계서, 내부시퀀스설계서, 패키지구조표준 분석 및 이해 15 | - 실행: 16 | - <병렬처리>안내에 따라 각 서비스별 병렬 수행 17 | - 데이터설계서 작성 18 | - 캐시 사용 시 캐시DB 설계 포함 19 | - 시작 부분에 '데이터설계 요약' 제공 20 | - 결과: {service-name}.md 21 | - ERD 작성 22 | - 결과: {service-name}-erd.puml 23 | - **PlantUML 스크립트 파일 생성 즉시 검사 실행**: 'PlantUML 문법 검사 가이드' 준용 24 | - 데이터베이스 스키마 스크립트 작성 25 | - 실행 가능한 SQL 스크립트 작성 26 | - 결과: {service-name}-schema.psql 27 | - 검토: 28 | - <작성원칙> 준수 검토 29 | - 스쿼드 팀원 리뷰: 누락 및 개선 사항 검토 30 | - 수정 사항 선택 및 반영 31 | 32 | <병렬처리> 33 | Agent 1~N: 각 서비스별 데이터베이스 설계 34 | - 서비스별 독립적인 스키마 설계 35 | - Entity 클래스와 1:1 매핑 36 | - 서비스 간 데이터 공유 금지 37 | - FK 관계는 서비스 내부에서만 설정 38 | 39 | <데이터독립성원칙> 40 | - **데이터 소유권**: 각 서비스가 자신의 데이터 완전 소유 41 | - **크로스 서비스 조인 금지**: 서비스 간 DB 조인 불가 42 | - **이벤트 기반 동기화**: 필요시 이벤트/메시지로 데이터 동기화 43 | - **캐시 활용**: 타 서비스 데이터는 캐시로만 참조 44 | 45 | [참고자료] 46 | - 클래스설계서 47 | 48 | [예시] 49 | - 링크: https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/refs/heads/main/samples/sample-데이터설계서.puml 50 | 51 | [결과파일] 52 | - design/backend/database/{service-name}.md 53 | - design/backend/database/{service-name}-erd.puml 54 | - design/backend/database/{service-name}-schema.psql 55 | - service-name은 영어로 작성 56 | -------------------------------------------------------------------------------- /guides/tools/check-plantuml.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # PlantUML file syntax checker script 4 | # Usage: ./check_plantuml.sh 5 | 6 | # Check parameters 7 | if [ $# -eq 0 ]; then 8 | echo "Usage: $0 " 9 | echo "Example: $0 diagram.puml" 10 | exit 1 11 | fi 12 | 13 | # File to check parameter 14 | CHECK_FILE="$1" 15 | 16 | # Check if file exists 17 | if [ ! -f "$CHECK_FILE" ]; then 18 | echo "Error: File '$CHECK_FILE' does not exist." 19 | exit 1 20 | fi 21 | 22 | # 1. Generate unique filename (prevent conflicts) 23 | TEMP_FILE="/tmp/puml_$(date +%s)_$$.puml" 24 | 25 | # 2. Copy file 26 | echo "Copying file to Docker container..." 27 | docker cp "$CHECK_FILE" plantuml:"$TEMP_FILE" 28 | 29 | # 3. Find JAR file location 30 | echo "Finding PlantUML JAR file location..." 31 | JAR_PATH=$(docker exec plantuml find / -name "plantuml*.jar" 2>/dev/null | head -1) 32 | 33 | if [ -z "$JAR_PATH" ]; then 34 | echo "Error: PlantUML JAR file not found." 35 | exit 1 36 | fi 37 | 38 | # 4. Syntax check 39 | echo "Running PlantUML syntax check..." 40 | docker exec plantuml java -jar "$JAR_PATH" -checkonly "$TEMP_FILE" 41 | 42 | # 5. Detailed error check (if needed) 43 | echo "Checking detailed error information..." 44 | docker exec plantuml sh -c "cd /tmp && java -jar $JAR_PATH -failfast -v $TEMP_FILE 2>&1 | grep -E 'Error line'" 45 | 46 | # 6. Clean up temporary file 47 | echo "Cleaning up temporary files..." 48 | docker exec -u root plantuml rm -f "$TEMP_FILE" 49 | 50 | echo "Check completed." 51 | -------------------------------------------------------------------------------- /guides/design/sequence-outer-design.md: -------------------------------------------------------------------------------- 1 | # 외부시퀀스설계가이드 2 | 3 | [요청사항] 4 | - <작성원칙>을 준용하여 설계 5 | - <작성순서>에 따라 설계 6 | - [결과파일] 안내에 따라 파일 작성 7 | 8 | [가이드] 9 | <작성원칙> 10 | - **유저스토리와 매칭**되어야 함. **불필요한 추가 설계 금지** 11 | - **논리아키텍처에 정의한 참여자와 일치**해야 함 12 | - UI/UX설계서의 '사용자 플로우'참조하여 설계 13 | - **해당 플로우에 참여하는** 프론트엔드, 모든 서비스, 인프라 컴포넌트(예: Gateway, Message Queue, Database), 외부시스템을 참여자로 추가 14 | - 플로우에 참여자들의 역할과 책임을 명확히 표시 15 | - 플로우 수행에 필요한 프론트엔드부터 End-to-End 호출을 순서대로 표시하고 한글 설명 추가 16 | - 마이크로서비스 내부의 처리 흐름은 표시하지 않음 17 | - 동기/비동기 통신 구분 (실선/점선) 18 | - 캐시, 큐 등 인프라 컴포넌트와의 상호작용 포함 19 | <작성순서> 20 | - 준비: 21 | - 유저스토리, UI/UX설계서, 논리아키텍처 분석 및 이해 22 | - "@analyze --play" 프로토타입이 있는 경우 웹브라우저에서 실행하여 서비스 이해 23 | - 실행: 24 | - <플로우 분류기준>에 따라 최적의 플로우를 결정함 25 | - 외부시퀀스설계서 작성 26 | - <병렬수행>가이드에 따라 병렬 수행 27 | - **PlantUML 스크립트 파일 생성 즉시 검사 실행**: 'PlantUML 문법 검사 가이드' 준용 28 | - 검토: 29 | - <작성원칙> 준수 검토 30 | - 스쿼드 팀원 리뷰: 누락 및 개선 사항 검토 31 | - 수정 사항 선택 및 반영 32 | <플로우 분류기준> 33 | - **핵심 비즈니스 플로우별**: 사용자가 목표를 달성하기 위한 주요 업무 흐름 34 | - **통합 패턴별**: 동기/비동기, 캐시 활용, 외부 연동 등 기술적 통합 방식 35 | - **사용자 시나리오별**: 엔드투엔드 사용자 경험 기준 36 | - **데이터 흐름별**: 데이터의 생성, 변환, 저장 과정 37 | <병렬수행> 38 | - **서브 에이전트를 활용한 병렬 작성 필수** 39 | - 서비스별 독립적인 에이전트가 각 외부시퀀스설계를 동시에 작업 40 | - 모든 설계 완료 후 전체 검증 41 | 42 | [참고자료] 43 | - 유저스토리 44 | - UI/UX설계서 45 | - 논리아키텍처 46 | - 프로토타입 47 | 48 | [예시] 49 | - 링크: https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/refs/heads/main/samples/sample-시퀀스설계서(외부).puml 50 | 51 | [결과파일] 52 | - **주요 비즈니스 플로우별로 파일을 분리하여 작성** 53 | - 플로우명은 한글로 네이밍 54 | - 위치: design/backend/sequence/outer/{플로우명}.puml 55 | -------------------------------------------------------------------------------- /guides/develop/database-plan.md: -------------------------------------------------------------------------------- 1 | # 데이터베이스설치계획서가이드 2 | 3 | [요청사항] 4 | - <작성원칙>을 준용하여 작성 5 | - <작성순서>에 따라 작성 6 | - [결과파일] 안내에 따라 파일 작성 7 | 8 | [가이드] 9 | <작성원칙> 10 | - 물리아키텍처가 있는 경우 아래 준용 11 | - '물리아키텍처 > 4.2.1 데이터베이스 아키텍처'과 일치해야 함 12 | - '물리아키텍처 > 5.1.1 서비스별 데이터베이스 매핑'의 서비스별 데이터베이스와 스크마와 일치해야 함 13 | - '물리아키텍처 > 4.2.2 캐시 아키텍처'과 일치해야 함 14 | - '물리아키텍처 > 5.1.2 캐시 전략'과 일치해야 함 15 | - 그 외 데이터베이스 설치에 필요한 항목은 '물리아키텍처'와 일치해야 함 16 | - (중요) "백킹서비스설치방법"의 가이드를 반드시 준용하여 작성 17 | - Kubernetes에 배포 시 아래 준수 18 | - "백킹서비스설치방법"을 참조하여 helm chart로 설치하는 계획서 작성 19 | - 기본 StorageClass를 찾아 기술 20 | - 데이터베이스 생성 및 권한 부여 계획서 작성하지 말것 21 | - 테이블 스키마 생성 계획서는 작성하지 말것 22 | - 설치 대상 클라우드 플랫폼은 이미 로그인되어 있고 Kubernetes도 연결되어 있음 23 | 24 | <작성순서> 25 | - 준비: 26 | - 물리아키텍처, 데이터설계서, 백킹서비스설치방법 분석 및 이해 27 | - 실행: 28 | - '<병렬처리>'가이드대로 병렬 수행 29 | - 각 서비스별로 데이터베이스 설치 계획서와 캐시 설치 계획서 작성 30 | - 데이터베이스는 서비스별로 분리 구성 31 | - 캐시는 모든 서비스가 공유하도록 구성 32 | - 결과: 33 | - db-plan-{service-name}-{설치대상환경}.md 34 | - cache-plan-{설치대상환경}.md 35 | - 검토: 36 | - <작성원칙> 준수 검토 37 | - 스쿼드 팀원 리뷰: 누락 및 개선 사항 검토 38 | - 수정 사항 선택 및 반영 39 | 40 | <병렬처리> 41 | - **의존성 분석 선행**: 병렬 처리 전 반드시 의존성 파악 42 | - **순차 처리 필요시**: 무리한 병렬화보다는 안전한 순차 처리 43 | - **검증 단계 필수**: 병렬 처리 후 통합 검증 44 | 45 | [참고자료] 46 | - 물리아키텍처 47 | - 백킹서비스설치방법 48 | - 데이터설계서 49 | 50 | [예제] 51 | https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/refs/heads/main/samples/sample-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%EC%84%A4%EC%B9%98%EA%B3%84%ED%9A%8D%EC%84%9C.md 52 | 53 | [결과파일] 54 | - develop/database/plan/db-plan-{service-name}-{설치대상환경}.md 55 | - develop/database/plan/cache-plan-{설치대상환경}.md 56 | - {service-name}은 영어로 작성 57 | - {설치대상환경}은 dev 또는 prod로 함 -------------------------------------------------------------------------------- /guides/develop/gradle-wrapper.md: -------------------------------------------------------------------------------- 1 | # GradleWrapper생성가이드 2 | 3 | Java 버전을 확인하고 호환되는 Gradle Wrapper를 자동으로 생성해주세요. 4 | 5 | ## 작업 단계 6 | 7 | ### 1단계: Java 버전 확인 8 | - `java -version` 명령으로 현재 Java 버전 확인 9 | - Major 버전 추출 (예: 23, 21, 17, 11, 8) 10 | 11 | ### 2단계: Gradle 버전 결정 12 | Java 버전에 맞는 Gradle 버전 선택: 13 | - Java 23 → Gradle 8.10.2+ 14 | - Java 21 → Gradle 8.5+ 15 | - Java 17 → Gradle 7.5+ 16 | - Java 11 → Gradle 7.0+ 17 | - Java 8 → Gradle 6.0+ 18 | 19 | ### 3단계: Gradle Wrapper 생성 20 | 21 | 시스템에 Gradle이 설치되어 있으면: 22 | ```bash 23 | gradle wrapper --gradle-version {결정된버전} 24 | ``` 25 | 26 | Gradle이 없으면 수동 생성: 27 | 28 | #### 3-1. 디렉토리 생성 29 | ```bash 30 | mkdir -p gradle/wrapper 31 | ``` 32 | 33 | #### 3-2. gradle-wrapper.properties 파일 생성 34 | ```properties 35 | distributionBase=GRADLE_USER_HOME 36 | distributionPath=wrapper/dists 37 | distributionUrl=https\://services.gradle.org/distributions/gradle-{VERSION}-bin.zip 38 | networkTimeout=10000 39 | validateDistributionUrl=true 40 | zipStoreBase=GRADLE_USER_HOME 41 | zipStorePath=wrapper/dists 42 | ``` 43 | 44 | #### 3-3. gradle-wrapper.jar 다운로드 45 | ```bash 46 | curl -L -o gradle/wrapper/gradle-wrapper.jar \ 47 | https://raw.githubusercontent.com/gradle/gradle/v{VERSION}/gradle/wrapper/gradle-wrapper.jar 48 | ``` 49 | 50 | #### 3-4. gradlew 스크립트 다운로드 및 실행 권한 부여 51 | ```bash 52 | # Linux/Mac 53 | curl -L -o gradlew https://raw.githubusercontent.com/gradle/gradle/v{VERSION}/gradlew 54 | chmod +x gradlew 55 | 56 | # Windows 57 | curl -L -o gradlew.bat https://raw.githubusercontent.com/gradle/gradle/v{VERSION}/gradlew.bat 58 | ``` 59 | 60 | ### 4단계: 검증 61 | ```bash 62 | ./gradlew --version 63 | ``` 64 | 65 | ### 5단계: 결과 보고 66 | - 생성된 Gradle 버전 확인 67 | - Java 버전과 호환성 확인 68 | - 테스트 빌드 수행 (`./gradlew clean build`) 69 | 70 | ## 주의사항 71 | - {VERSION}을 실제 버전 번호로 교체 (예: 8.10.2) 72 | - 네트워크 연결 필요 73 | - Windows에서는 `./gradlew` 대신 `.\gradlew.bat` 사용 74 | -------------------------------------------------------------------------------- /guides/tools/sync_mcp.md: -------------------------------------------------------------------------------- 1 | Claude Desktop 설정을 읽어서 맞춤형 배치 파일을 자동으로 생성합니다. 2 | - **Claude Desktop 설정을 읽기 위해 별도의 스크립트 파일을 만들지 않음** 3 | - claude desktop 설정 파일 위치: `{User Home}\AppData\Roaming\Claude\claude_desktop_config.json` 4 | - **배치파일 생성 위치**: `C:\Users\{사용자명}\sync_mcp_servers_auto.bat` 5 | - **기존에 배치 파일이 있는 경우 자동으로 덮어씀** 6 | - **배치파일은 영어로 작성** 7 | - 반드시 PowerShell이 아닌 Command창에서 수행하도록 가이드 8 | - 아래 예시를 참고하여 배치파일 생성 9 | ``` 10 | @echo off 11 | echo =============================================== 12 | echo Claude Desktop MCP Auto Sync 13 | echo =============================================== 14 | echo. 15 | echo Installing 6 MCP servers to Claude Code... 16 | echo Each installation may take 10-30 seconds. 17 | echo. 18 | 19 | echo [1/6] Installing MCP-GitHub... 20 | echo y | claude mcp add-json MCP-GitHub_Local "{\"type\":\"stdio\",\"command\":\"cmd\",\"args\":[\"/c\",\"npx\",\"-y\",\"@smithery/cli@latest\",\"run\",\"@smithery-ai/github\",\"--key\",\"6bf03d02-65a9-4a0d-ac05-6d4a5b0d4343\",\"--profile\",\"motionless-flamingo-aj9dsM\"]}" -s user 21 | if errorlevel 1 echo - Failed or already exists 22 | if not errorlevel 1 echo + Success 23 | echo. 24 | 25 | echo [2/6] Installing TalkToFigma... 26 | echo y | claude mcp add-json TalkToFigma "{\"type\":\"stdio\",\"command\":\"bunx\",\"args\":[\"cursor-talk-to-figma-mcp@latest\",\"--server=vps.sonnylab.com\"]}" -s user 27 | if errorlevel 1 echo - Failed or already exists 28 | if not errorlevel 1 echo + Success 29 | echo. 30 | 31 | echo =============================================== 32 | echo Installation Complete! 33 | echo =============================================== 34 | echo. 35 | echo Checking installed servers: 36 | claude mcp list 37 | echo. 38 | echo Next steps: 39 | echo 1. Run: claude 40 | echo 2. Wait 2 minutes then use /mcp command to check server status 41 | echo 3. Verify all servers are working properly 42 | echo. 43 | pause 44 | ``` -------------------------------------------------------------------------------- /guides/design/logical-architecture-design.md: -------------------------------------------------------------------------------- 1 | # 논리아키텍처설계가이드 2 | 3 | [요청사항] 4 | - <작성원칙>을 준용하여 설계 5 | - <작성순서>에 따라 설계 6 | - [결과파일] 안내에 따라 파일 작성 7 | - 완료 후 mermaid 스크립트 테스트 방법 안내 8 | - https://mermaid.live/edit 에 접근 9 | - 스크립트 내용을 붙여넣어 확인 10 | 11 | [가이드] 12 | <작성원칙> 13 | - **유저스토리와 매칭**되어야 함. **불필요한 추가 설계 금지** 14 | - UI/UX설계서의 '사용자 플로우'참조하여 설계 15 | - '아키텍처패턴'에 선정된 클라우드 디자인 패턴을 적용하여 설계 16 | - 사용자 관점의 컴포넌트 다이어그램 작성 17 | - Context Map 스타일로 서비스 내부 구조는 생략하고 서비스 간 관계에 집중 18 | - 클라이언트에서 API Gateway로는 단일 연결선으로 표현 19 | <작성순서> 20 | - 준비: 21 | - 유저스토리, UI/UX설계서, 아키텍처패턴 분석 및 이해 22 | - "@analyze --play" 프로토타입이 있는 경우 웹브라우저에서 실행하여 서비스 이해 23 | - 실행: 24 | - 논리아키텍처 설계서(logical-architecture.md) 작성: 아래 항목은 필수 포함하고 필요 시 항목 추가 25 | - 개요: 설계 원칙, 핵심 컴포넌트 정의 26 | - 서비스 아키텍처 27 | - 서비스별 책임 28 | - 서비스 간 통신 전략 29 | - 주요 사용자 플로우 30 | - 데이터 흐름 및 캐싱 전략 31 | - 확장성 및 성능 고려사항 32 | - 보안 고려사항 33 | - 논리아키텍처 다이어그램 34 | - Mermaid 형식으로 작성하며 별도 파일로 작성: logical-architecture.mmd 35 | - <통신전략>과 <의존성 표현 방법>을 준수 36 | - **Mermaid 스크립트 파일 검사 실행**: 'Mermaid문법검사가이드' 준용 37 | - 검토: 38 | - <작성원칙> 준수 검토 39 | - 스쿼드 팀원 리뷰: 누락 및 개선 사항 검토 40 | - 수정 사항 선택 및 반영 41 | <통신 전략> 42 | - **동기 통신**: 즉시 응답이 필요한 단순 조회 43 | - **캐시 우선**: 자주 사용되는 데이터는 캐시에서 직접 읽기 44 | - **비동기 처리**: 외부 API 다중 호출 등 장시간 작업 45 | <의존성 표현 방법> 46 | - 실선 화살표(→): 동기적 의존성 (필수) 47 | - 비동기 화살표(->>): 비동기 의존성 (fire-and-forget) 48 | - 점선 화살표(-->): 선택적 의존성 또는 느슨한 결합 49 | - 양방향 화살표(↔): 상호 의존성 50 | - 의존성 레이블에 목적 명시 (예: "멤버 정보 조회") 51 | - 플로우 라벨 형식: [요청서비스약어]액션 (예: [Trip]AI 일정 생성 요청) 52 | 53 | [참고자료] 54 | - 유저스토리 55 | - UI/UX설계서 56 | - 프로토타입 57 | - 아키텍처패턴 58 | 59 | [예시] 60 | - 논리아키텍처 다이어그램: https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/refs/heads/main/samples/sample-논리아키텍처.mmd 61 | 62 | [결과파일] 63 | - design/backend/logical/logical-architecture.md 64 | - design/backend/logical/logical-architecture.mmd 65 | -------------------------------------------------------------------------------- /guides/develop/test-backend.md: -------------------------------------------------------------------------------- 1 | # 백엔드 테스트 가이드 2 | 3 | [요청사항] 4 | - <테스트원칙>을 준용하여 수행 5 | - <테스트순서>에 따라 수행 6 | - [결과파일] 안내에 따라 파일 작성 7 | 8 | [가이드] 9 | <테스트원칙> 10 | - 설정 Manifest(src/main/resources/application*.yml)의 각 항목의 값은 하드코딩하지 않고 환경변수 처리 11 | - Kubernetes에 배포된 데이터베이스는 LoadBalacer유형의 Service를 만들어 연결 12 | <테스트순서> 13 | - 준비: 14 | - 설정 Manifest(src/main/resources/application*.yml)와 실행 프로파일({service-name}.run.xml 내부에 있음)의 일치여부 검사 및 수정 15 | - 실행: 16 | - 'curl'명령을 이용한 테스트 및 오류 수정 17 | - 서비스 의존관계를 고려하여 테스트 순서 결정 18 | - 순서에 따라 순차적으로 각 서비스의 Controller에서 API 스펙 확인 후 API 테스트 19 | - API경로와 DTO클래스를 확인하여 정확한 request data 구성 20 | - 소스 수정 후 테스트 절차 21 | - 컴파일 및 오류 수정: {프로젝트 루트}/gradlew {service-name}:compileJava 22 | - 컴파일 성공 후 서비스 재시작 요청: 서비스 시작은 인간에게 요청 23 | - 만약 직접 서비스를 실행하려면 '<서비스 시작 방법>'으로 수행 24 | - 서비스 중지는 '<서비스 중지 방법>'을 참조 수행 25 | - 설정 Manifest 수정 시 민감 정보는 기본값으로 지정하지 않고 '<실행프로파일 작성 가이드>'를 참조하여 실행 프로파일에 값을 지정함 26 | - 실행 결과 로그는 'logs' 디렉토리 하위에 생성 27 | - 결과: test-backend.md 28 | <실행프로파일 작성 가이드> 29 | - {service-name}/.run/{service-name}.run.xml 파일로 작성 30 | - Kubernetes에 배포된 데이터베이스의 LoadBalancer Service 확인: 31 | - kubectl get svc -n {namespace} | grep LoadBalancer 명령으로 LoadBalancer IP 확인 32 | - 각 서비스별 데이터베이스의 LoadBalancer External IP를 DB_HOST로 사용 33 | - 캐시(Redis)의 LoadBalancer External IP를 REDIS_HOST로 사용 34 | <서비스 시작 방법> 35 | - 'IntelliJ서비스실행기'를 'tools' 디렉토리에 다운로드 36 | - python 또는 python3 명령으로 백그라우드로 실행하고 결과 로그를 분석 37 | nohup python3 tools/run-intellij-service-profile.py {service-name} > logs/{service-name}.log 2>&1 & echo "Started {service-name} with PID: $!" 38 | - 서비스 실행은 다른 방법 사용하지 말고 **반드시 python 프로그램 이용** 39 | <서비스 중지 방법> 40 | - Window 41 | - netstat -ano | findstr :{PORT} 42 | - powershell "Stop-Process -Id {Process number} -Force" 43 | - Linux/Mac 44 | - netstat -ano | grep {PORT} 45 | - kill -9 {Process number} 46 | 47 | [결과파일] 48 | - develop/dev/test-backend.md -------------------------------------------------------------------------------- /guides/think/think-guide.md: -------------------------------------------------------------------------------- 1 | # 서비스기획가이드 2 | 3 | ## 1. 문제정의와 솔루션 선정 4 | 5 | **참고 링크**: [AI 활용 서비스기획가이드](https://github.com/cna-bootcamp/aiguide/blob/main/AI%ED%99%9C%EC%9A%A9%20%EC%84%9C%EB%B9%84%EC%8A%A4%20%EA%B8%B0%ED%9A%8D%20%EA%B0%80%EC%9D%B4%EB%93%9C.md) 6 | 7 | ## 2. 기획 구체화: Event Storming 8 | 9 | Event Storming을 Figma의 FigJam을 이용하여 수행합니다. 10 | ![](images/2025-07-26-15-24-23.png) 11 | 12 | ### Claude 활용한 보완 13 | Claude Desktop/Clade Code에서 MCP를 사용하여 Figma를 연동하여 수행합니다. 14 | 15 | **1.사전준비: MCP 설치/MCP Plugin 설치**: 16 | https://github.com/cna-bootcamp/clauding-guide/blob/main/references/MCP%EC%84%A4%EC%B9%98%EA%B5%AC%EC%84%B1.md#figma-mcp-%EC%84%A4%EC%B9%98 17 | 18 | 19 | **2.Claude Desktop 또는 Claude Code에서 프롬프팅** 20 | 예시) 21 | ``` 22 | Figma 채널'cgqs7jzi'의 이벤트 스토밍 결과를 읽어 아래를 수행해 주십시오. │ 23 | - 도메인 이벤트를 분석하여 추가가 필요한 이벤트를 추천 24 | ``` 25 | 26 | ## 3. 유저스토리 작성 27 | **1)피그마로 이벤트스토밍을 수행한 경우** 28 | 아래 예와 같이 피그마 채널ID를 제공하여 유저스토리를 작성합니다. 29 | 예시) 30 | ``` 31 | /think-userstory 32 | [요구사항] 33 | 피그마 채널ID 'abcde'에 접속하여 분석 34 | ``` 35 | 36 | **2)다른 방법으로 이벤트스토밍을 하거나 직접 요구사항을 정의한 경우** 37 | 요구사항을 정리하여 특정 디렉토리에 파일로 저장합니다. 38 | 예시) 39 | ``` 40 | # 요구사항 41 | 42 | ## 사용자 기능 요구사항(UFR): 43 | 1. 사용자 인증 및 관리 44 | [입력 요구사항] 45 | - 기본 정보 46 | - 이름: 2자 이상 (한글/영문) 47 | - 이메일: 이메일 형식 준수 48 | - 연락처: 휴대폰 번호 형식 49 | - 아이디: 5자 이상 영문/숫자 조합 50 | - 비밀번호: 8자 이상 (영문/숫자/특수문자 포함) 51 | - 비밀번호 확인: 비밀번호와 동일 52 | 53 | [검증 요구사항] 54 | - 실시간 입력 검증 55 | - 각 필드 포커스 아웃 시 형식 검증 56 | - 아이디/이메일 중복 확인 (비동기) 57 | - 비밀번호 강도 표시 (약함/보통/강함) 58 | - 제출 시 검증 59 | - 모든 필수 항목 입력 확인 60 | - 이용약관 동의 여부 확인 61 | 62 | [처리 결과] 63 | - 성공: "회원가입이 완료되었습니다" 메시지 → 로그인 화면 64 | - 실패: 구체적인 오류 메시지 표시 (해당 필드 하단) 65 | 66 | 67 | ## 어드민 기능 요구사항(AFR) 68 | {어드민 기능 요구사항} 69 | 70 | ## 비기능 요구사항(NFR) 71 | {비기능 요구사항} 72 | ``` 73 | 74 | 요구사항을 정리한 파일경로를 제시하여 유저스토리 작성을 요청합니다. 75 | 예시) 76 | ``` 77 | /think-userstory 78 | [요구사항] 79 | 요구사항 정의서 'design/requirement.md'를 읽어 분석 80 | ``` -------------------------------------------------------------------------------- /guides/tools/plantuml-guide.md: -------------------------------------------------------------------------------- 1 | # PlantUML문법검사가이드 2 | 3 | ## 개요 4 | 5 | PlantUML 다이어그램의 문법 오류를 사전에 검출하여 렌더링 실패를 방지하기 위한 가이드입니다. Docker 기반 PlantUML 서버를 활용하여 로컬에서 빠르게 문법을 검증할 수 있습니다. 6 | 7 | ## PlantUML 서버 설치 검사 8 | 9 | ### Docker로 PlantUML 서버 실행 10 | 11 | ```bash 12 | # PlantUML 서버가 실행 중인지 확인 13 | docker ps | grep plantuml 14 | 15 | # PlantUML 서버가 없으면 설치 및 실행 16 | docker run -d --name plantuml -p 38080:8080 plantuml/plantuml-server:latest 17 | 18 | # 서버 상태 확인 19 | docker logs plantuml 20 | ``` 21 | 22 | ## 문법 검사 방법 23 | 현재 OS에 맞게 수행. 24 | 25 | ### Linux/macOS 버전 26 | 27 | 1. tools/check-plantuml.sh 파일 존재 여부 확인 28 | 2. 스크립트 파일이 없으면 "PlantUML문법검사기(Linux/Mac)"를 tools/check-plantuml.sh 파일로 다운로드하여 스크립트 파일을 만듦 29 | 3. 스크립트 파일이 있으면 그 스크립트 파일을 이용하여 검사 30 | 31 | ### Windows PowerShell 버전 32 | **스크립트 파일(tools/check-plantuml.ps1)을 이용하여 수행**. 33 | 34 | 1. tools/check-plantuml.ps1 파일 존재 여부 확인 35 | 2. 스크립트 파일이 없으면 "PlantUML문법검사기(Window)"를 tools/check-plantuml.ps1 파일로 다운로드하여 스크립트 파일을 만듦 36 | 3. 스크립트 파일이 있으면 그 스크립트 파일을 이용하여 검사 37 | 38 | ### 검사 결과 해석 39 | 40 | | 출력 | 의미 | 대응 방법 | 41 | |------|------|-----------| 42 | | 출력 없음 | 문법 오류 없음 ✅ | 정상, 렌더링 가능 | 43 | | "Some diagram description contains errors" | 오류 존재 ❌ | 파이프 방식으로 상세 확인 | 44 | | "ERROR" + 라인 번호 | 특정 라인 오류 ❌ | 해당 라인 수정 | 45 | | "Error line X in file" | X번째 줄 오류 ❌ | 해당 라인 문법 확인 | 46 | 47 | ## 화살표 문법 규칙 48 | 49 | ### 시퀀스 다이어그램 올바른 화살표 사용법 50 | 51 | ```plantuml 52 | @startuml 53 | ' 올바른 사용법 ✅ 54 | A -> B: 동기 메시지 (실선) 55 | A ->> B: 비동기 메시지 (실선, 열린 화살촉) 56 | A -->> B: 비동기 응답 (점선, 열린 화살촉) 57 | A --> B: 점선 화살표 (일반) 58 | A <-- B: 응답 (점선) 59 | A ->x B: 실패/거부 (X 표시) 60 | A ->>o B: 비동기 열린 원 61 | 62 | ' 잘못된 사용법 ❌ 63 | A ..> B: ' 오류! sequence diagram에서 유효하지 않음 64 | @enduml 65 | ``` 66 | 67 | ### 클래스 다이어그램 화살표 68 | 69 | ```plantuml 70 | @startuml 71 | ' 클래스 다이어그램에서는 ..> 사용 가능 72 | ClassA ..> ClassB : 의존성 (점선) 73 | ClassC --> ClassD : 연관 (점선) 74 | @enduml 75 | ``` 76 | 77 | ### 화살표 문법 주의사항 78 | 79 | 1. **`..>`는 sequence diagram에서 사용 금지** 80 | 2. 비동기 메시지는 `->>` 또는 `-->>` 사용 81 | 3. 동기/비동기를 명확히 구분하여 일관되게 사용 82 | 4. 다이어그램 타입별로 유효한 화살표가 다름 -------------------------------------------------------------------------------- /samples/physical/sample-physical-architecture-dev.mmd: -------------------------------------------------------------------------------- 1 | graph TB 2 | %% Development Environment Physical Architecture 3 | %% Core Flow: Users → Ingress → Services → Database 4 | 5 | Users[Mobile/Web Users] --> Ingress[Kubernetes Ingress Controller] 6 | 7 | subgraph "Azure Kubernetes Service - Development" 8 | Ingress --> UserService[User Service Pod] 9 | Ingress --> TravelService[Travel Service Pod] 10 | Ingress --> ScheduleService[AI Service Pod] 11 | Ingress --> LocationService[Location Service Pod] 12 | 13 | UserService --> PostgreSQL[PostgreSQL Pod
16GB Storage] 14 | TravelService --> PostgreSQL 15 | ScheduleService --> PostgreSQL 16 | LocationService --> PostgreSQL 17 | 18 | UserService --> Redis[Redis Pod
Memory Cache] 19 | TravelService --> Redis 20 | ScheduleService --> Redis 21 | LocationService --> Redis 22 | 23 | TravelService --> ServiceBus[Azure Service Bus
Basic Tier] 24 | ScheduleService --> ServiceBus 25 | LocationService --> ServiceBus 26 | end 27 | 28 | %% External APIs 29 | ExternalAPI[External APIs
OpenAI, Maps, Weather] --> ScheduleService 30 | ExternalAPI --> LocationService 31 | 32 | %% Essential Azure Services 33 | AKS --> ContainerRegistry[Azure Container Registry] 34 | 35 | %% Node Configuration 36 | subgraph "Node Pool" 37 | NodePool[2x Standard B2s
2 vCPU, 4GB RAM] 38 | end 39 | 40 | %% Styling 41 | classDef azureService fill:#0078d4,stroke:#333,stroke-width:2px,color:#fff 42 | classDef microservice fill:#ff6b6b,stroke:#333,stroke-width:2px,color:#fff 43 | classDef database fill:#4ecdc4,stroke:#333,stroke-width:2px,color:#fff 44 | classDef external fill:#95e1d3,stroke:#333,stroke-width:2px,color:#333 45 | 46 | class Ingress,ServiceBus,ContainerRegistry azureService 47 | class UserService,TravelService,ScheduleService,LocationService microservice 48 | class PostgreSQL,Redis database 49 | class Users,ExternalAPI external -------------------------------------------------------------------------------- /guides/design/frontend-design.md: -------------------------------------------------------------------------------- 1 | # 프론트엔드설계가이드 2 | 3 | [요청사항] 4 | - <설계원칙>을 준용하여 설계 5 | - <설계순서>에 따라 설계 6 | - [결과파일] 안내에 따라 파일 작성 7 | 8 | [가이드] 9 | <설계원칙> 10 | - 기술스택: TypeScript 5.5 + React 18.3 + Vite 5.4 11 | - 프로토타입과 동일하게 설계 12 | - 각 백엔드서비스 API명세서와 반드시 일치 13 | - 모바일, 태블릿, 웹 화면 크기에 맞게 반응형으로 디자인 14 | 15 | <설계순서> 16 | - 준비: 17 | - 프로토타입 분석: 'design/prototype' 디렉토리 하위의 프로토타입 분석 및 이해 18 | - API 분석: "[백엔드시스템]"섹션의 정보를 이용하여 API명세서를 'design/api'에 다운로드하여 분석 및 이해 19 | - 화면요구사항 분석: "[요구사항]" 섹션을 읽어 화면 요구사항 이해 20 | 21 | - 설계: 22 | - 1. **UI/UX 설계** 23 | - 1.1 UI프레임워크 선택: MUI, Ant Design, Chakra UI, Mantine, React Bootstrap 등 24 | - 1.2 화면목록 정의 25 | - 1.3 화면 간 사용자 플로우 정의 26 | - 1.4 화면별 상세 설계: 27 | - 1.4.1 상세기능 28 | - 1.4.2 UI 구성요소 29 | - 1.4.3 인터랙션 30 | - 1.5 화면간 전환 및 네비게이션 31 | - 1.6 반응형 설계 전략 32 | - 1.7 접근성 보장 방안 33 | - 1.8 성능 최적화 방안 34 | 35 | - 2. **스타일가이드 작성**: 36 | API명세서 분석 결과와 선택한 UI프레임워크 특성을 반영 37 | - 2.1 브랜드 아이덴티티: 디자인 컨셉 등 38 | - 2.2 디자인 원칙 39 | - 2.3 컬러 시스템 40 | - 2.4 타이포그래피 41 | - 2.5 간격 시스템 42 | - 2.6 컴포넌트 스타일 43 | - 2.7 반응형 브레이크포인트 44 | - 2.8 대상 서비스 특화 컴포넌트 45 | - 2.9 인터랙션 패턴 46 | 47 | - 3. **정보 아키텍처 설계** 48 | - 3.1 사이트맵: 페이지 구조 및 네비게이션 흐름 49 | - 3.2 프로젝트 구조 설계: 패키지와 파일까지 설계 50 | 51 | - 4. **API매핑설계서** 52 | - 4.1 API경로 매핑 53 | public/runtime-env.js파일을 읽어 API그룹과 '"[백엔드시스템]"섹션에 정의된 각 서비스별 HOST를 지정 54 | 예시) 55 | ``` 56 | window.__runtime_config__ = { 57 | API_GROUP: "/api/${version:v1}", 58 | USER_HOST: "http://localhost:8081", 59 | ORDER_HOST: "http://localhost:8082" 60 | } 61 | ``` 62 | 63 | - 4.2 **API와 화면 상세기능 매칭**: '1.4.1 상세기능'과 API 매핑 64 | - 화면, 기능, 백엔드 서비스, API경로, 요청데이터 구조, 응답데이터 구조 명시 65 | - API 요청데이타와 API 응답데이터 예시 66 | 67 | [참고자료] 68 | - 프로토타입: design/prototype/* 69 | - API명세서: design/api/*.json 70 | 71 | [결과파일] 72 | - UI/UX설계서: design/frontend/uiux-design.md 73 | - 스타일가이드: design/frontend/style-guide.md 74 | - 정보아키텍처: design/frontend/ia.md 75 | - API매핑설계서: design/frontend/api-mapping.md 76 | 77 | 78 | -------------------------------------------------------------------------------- /guides/design/uiux-prototype.md: -------------------------------------------------------------------------------- 1 | # 프로토타입작성가이드 2 | [요청사항] 3 | - <작성원칙>을 준용하여 설계 4 | - <작성순서>에 따라 설계 5 | - [결과파일] 안내에 따라 파일 작성 6 | - Sequential MCP와 Playwright MCP 이용 7 | 8 | [가이드] 9 | <작성원칙> 10 | - **UI/UX설계서와 매칭**되어야 함. **불필요한 추가 개발 금지** 11 | - 스타일가이드를 준수하여 개발 12 | <작성순서> 13 | - 준비: 참고자료 분석 및 이해 14 | - 실행: 15 | - <병렬처리> 전략에 따라 프로토타입 개발 16 | - 예제 데이터는 화면 간 일관성 있게 개발 17 | - 각 화면간 전환이 되도록 개발 18 | - 검토: 19 | - <작성원칙> 준수 검토 20 | - '[체크리스트]'에 따라 검토하고 수정 21 | - 테스트: 22 | - 프로토타입을 웹브라우저에 실행하여 테스트 23 | - 버그 수정 및 화면 개선 24 | <병렬처리> 25 | - 서브 에이전트 활용: Task 도구로 서비스별 동시 작업 26 | - 의존성 기반 그룹화: 의존 관계에 따른 순차/병렬 처리 결정 27 | - 통합 검증: 병렬 작업 완료 후 전체적 일관성 검증 28 | 29 | [참고자료] 30 | - design/uiux/style-guide.md 31 | - design/uiux/uiux.md 32 | 33 | [결과파일] 34 | - 프로토타입: design/uiux/prototype/{화면순서번호 2자리}-{화면명}.html 35 | - 화면명은 한글로 작성 36 | 37 | [체크리스트] 38 | 1. 화면별 기능 동작 체크 39 | 아래 체크 템플릿을 이용하여 화면별 기능 동작 체크 40 | {화면명} 41 | | 기능/액션 | 예상 결과 | 실제 결과 | 상태 | 비고 | 42 | |-----------|-----------|-----------|------|------| 43 | | [수행할 액션] | [기대하는 동작] | [실제 확인된 동작] | 성공/실패/부분성공 | [특이사항] | 44 | 45 | 예시) 46 | 메인/홈 화면 47 | | 기능/액션 | 예상 결과 | 실제 결과 | 상태 | 비고 | 48 | |-----------|-----------|-----------|------|------| 49 | | 로고 클릭 | 메인 페이지 새로고침/유지 | | 성공 | | 50 | | 메인 메뉴 클릭 | 해당 페이지로 이동 | | 부분성공 | | 51 | 52 | 2. 화면간 데이터 일관성 체크 53 | 아래 체크 템플릿을 이용하여 데이터 일관성 체크 54 | | 데이터 | 데이터 사용 화면 | 일관성 | 비고 | 55 | |-------------|-------|-------|-------| 56 | | [데이터명] | [화면명] | 일치/불일치 | [차이점] | 57 | 58 | 예시) 59 | | 데이터 | 데이터 사용 화면 | 일관성 | 비고 | 60 | |-------------|-------|-------|-------| 61 | | 상품정보 | 메인화면, 상품상세화면 | 불일치| 메인화면에서 클릭한 상품정보와 상품 상세화면이 다름 | 62 | 63 | 3. 화면간 연결성 체크 64 | 아래 체크 템플릿을 이용하여 화면별 연결성 체크 65 | | 출발화면 | 연결방법 | 도착화면 | 예상 동작 | 실제 동작 | 상태 | 66 | |-----------|-----------|-----------|-----------|-----------|------| 67 | | [화면A] | [버튼/링크명] | [화면B] | [동작설명] | [확인결과] | 정상/비정상 | 68 | 69 | 예시) 70 | | 출발화면 | 연결방법 | 도착화면 | 예상동작 | 실제동작 | 상태 | 71 | |--------|----------|--------|------|------| 72 | | 모든 화면 | 로고 클릭 | 메인 화면 | 메인화면 리프레시 | 동작안함 | 비정상 | 73 | | 모든 화면 | 메인 메뉴 | 각 주요 화면 | 각 화면 연결 | 정상 연결됨 | 정상 | 74 | -------------------------------------------------------------------------------- /guides/deploy/build-image-back.md: -------------------------------------------------------------------------------- 1 | # 백엔드 컨테이너이미지 작성가이드 2 | 3 | [요청사항] 4 | - 백엔드 각 서비스를의 컨테이너 이미지 생성 5 | - 실제 빌드 수행 및 검증까지 완료 6 | - '[결과파일]'에 수행한 명령어를 포함하여 컨테이너 이미지 작성 과정 생성 7 | 8 | [작업순서] 9 | - 서비스명 확인 10 | 서비스명은 settings.gradle에서 확인 11 | 12 | 예시) include 'common'하위의 4개가 서비스명임. 13 | ``` 14 | rootProject.name = 'tripgen' 15 | 16 | include 'common' 17 | include 'user-service' 18 | include 'location-service' 19 | include 'ai-service' 20 | include 'trip-service' 21 | ``` 22 | 23 | - 실행Jar 파일 설정 24 | 실행Jar 파일명을 서비스명과 일치하도록 build.gradle에 설정 합니다. 25 | ``` 26 | bootJar { 27 | archiveFileName = '{서비스명}.jar' 28 | } 29 | ``` 30 | 31 | - Dockerfile 생성 32 | 아래 내용으로 deployment/container/Dockerfile-backend 생성 33 | ``` 34 | # Build stage 35 | FROM openjdk:23-oraclelinux8 AS builder 36 | ARG BUILD_LIB_DIR 37 | ARG ARTIFACTORY_FILE 38 | COPY ${BUILD_LIB_DIR}/${ARTIFACTORY_FILE} app.jar 39 | 40 | # Run stage 41 | FROM openjdk:23-slim 42 | ENV USERNAME=k8s 43 | ENV ARTIFACTORY_HOME=/home/${USERNAME} 44 | ENV JAVA_OPTS="" 45 | 46 | # Add a non-root user 47 | RUN adduser --system --group ${USERNAME} && \ 48 | mkdir -p ${ARTIFACTORY_HOME} && \ 49 | chown ${USERNAME}:${USERNAME} ${ARTIFACTORY_HOME} 50 | 51 | WORKDIR ${ARTIFACTORY_HOME} 52 | COPY --from=builder app.jar app.jar 53 | RUN chown ${USERNAME}:${USERNAME} app.jar 54 | 55 | USER ${USERNAME} 56 | 57 | ENTRYPOINT [ "sh", "-c" ] 58 | CMD ["java ${JAVA_OPTS} -jar app.jar"] 59 | ``` 60 | 61 | - 컨테이너 이미지 생성 62 | 아래 명령으로 각 서비스 빌드. shell 파일을 생성하지 말고 command로 수행. 63 | 서브에이젼트를 생성하여 병렬로 수행. 64 | ``` 65 | DOCKER_FILE=deployment/container/Dockerfile-backend 66 | service={서비스명} 67 | 68 | docker build \ 69 | --platform linux/amd64 \ 70 | --build-arg BUILD_LIB_DIR="${서비스명}/build/libs" \ 71 | --build-arg ARTIFACTORY_FILE="${서비스명}.jar" \ 72 | -f ${DOCKER_FILE} \ 73 | -t ${서비스명}:latest . 74 | ``` 75 | - 생성된 이미지 확인 76 | 아래 명령으로 모든 서비스의 이미지가 빌드되었는지 확인 77 | ``` 78 | docker images | grep {서비스명} 79 | ``` 80 | 81 | [결과파일] 82 | deployment/container/build-image.md 83 | -------------------------------------------------------------------------------- /guides/design/class-design.md: -------------------------------------------------------------------------------- 1 | # 클래스설계가이드 2 | 3 | [요청사항] 4 | - <작성원칙>을 준용하여 설계 5 | - <작성순서>에 따라 설계 6 | - [결과파일] 안내에 따라 파일 작성 7 | 8 | [가이드] 9 | <작성원칙> 10 | - **유저스토리와 매칭**되어야 함. **불필요한 추가 설계 금지** 11 | - API설계서와 일관성 있게 설계. Controller에 API를 누락하지 말고 모두 설계 12 | - Controller 클래스는 API로 정의하지 않은 메소드 생성 안함. 단, 필요한 Private 메소드는 추가함 13 | - {service-name}-simple.puml파일에 Note로 Controller 클래스 메소드와 API 매핑표 작성: {Methond}: {API Path} {API 제목} 14 | 예) login: /login 로그인 15 | - 내부시퀀스설계서와 일관성 있게 설계 16 | - 각 서비스별 지정된 {설계 아키텍처 패턴}을 적용 17 | - Clean아키텍처 적용 시 Port/Adapter라는 용어 대신 Clean 아키텍처에 맞는 용어 사용 18 | - 클래스의 프라퍼티와 메소드를 모두 기술할 것. 단 "Getter/Setter 메소드"는 작성하지 않음 19 | - 클래스 간의 관계를 표현: Generalization, Realization, Dependency, Association, Aggregation, Composition 20 | 21 | <작성순서> 22 | - **서브 에이전트를 활용한 병렬 작성 필수** 23 | - **3단계 하이브리드 접근법 적용** 24 | - **마이크로서비스 아키텍처 기반 설계** 25 | 26 | - 1단계: 공통 컴포넌트 설계 (순차적) 27 | - 결과: design/backend/class/common-base.puml 28 | 29 | - 2단계: 서비스별 병렬 설계 (병렬 실행) 30 | - 1단계 공통 컴포넌트 참조 31 | - '!include'는 사용하지 말고 필요한 인터페이스 직접 정의 32 | - 클래스 설계 후 프라퍼티와 메소드를 생략한 간단한 클래스설계서도 추가로 작성 33 | - 결과: 34 | - design/backend/class/{service-name}.puml 35 | - design/backend/class/{service-name}-simple.puml 36 | 37 | - 병렬 처리 기준 38 | - 서비스 간 의존성이 없는 경우: 모든 서비스 동시 실행 39 | - 의존성이 있는 경우: 의존성 그룹별로 묶어서 실행 40 | - 예: A→B 의존 시, A 완료 후 B 실행 41 | - 독립 서비스 C,D는 A,B와 병렬 실행 42 | 43 | - 3단계: 통합 및 검증 (순차적) 44 | - '패키지구조표준'의 예시를 참조하여 모든 클래스와 파일이 포함된 패키지 구조도를 작성 45 | (plantuml 스크립트가 아니라 트리구조 텍스트로 작성) 46 | - 인터페이스 일치성 검증 47 | - 명명 규칙 통일성 확인 48 | - 의존성 검증 49 | - 크로스 서비스 참조 검증 50 | - **PlantUML 스크립트 파일 검사 실행**: 'PlantUML문법검사가이드' 준용 51 | 52 | [참고자료] 53 | - 유저스토리 54 | - API설계서 55 | - 내부시퀀스설계서 56 | - 패키지구조표준 57 | - PlantUML문법검사가이드 58 | 59 | [예시] 60 | - 링크: https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/refs/heads/main/samples/sample-클래스설계서.puml 61 | 62 | [결과파일] 63 | - 패키지 구조도: design/backend/class/package-structure.md 64 | - 클래스설계서: 65 | - design/backend/class/common-base.puml 66 | - design/backend/class/{service-name}.puml 67 | - 클래스설계서(요약): design/backend/class/{service-name}-simple.puml 68 | - service-name은 영어로 작성 (예: profile, location, itinerary) 69 | -------------------------------------------------------------------------------- /references/sample-basic-instruction.md: -------------------------------------------------------------------------------- 1 | [목표] 2 | '업무 목적에 적합한 생성형 AI를 빠르게 찾고 싶은 직장인'을 위한 3 | 생성형AI 정보제공 서비스 개발 4 | 5 | [팀 행동원칙] 6 | - 'M'사상을 믿고 실천한다. : Value-Oriented, Interactive, Iterative 7 | - 'M'사상 실천을 위한 마인드셋을 가진다 8 | - Value Oriented: WHY First, Align WHY 9 | - Interactive: Believe crew, Yes And 10 | - Iterative: Fast fail, Learn and Pivot 11 | 12 | [멤버] 13 | 이 프로젝트는 Agentic Workflow 컨셉을 따릅니다. 14 | 아래와 같은 각 멤버가 역할을 나누어 작업합니다. 15 | 16 | ``` 17 | ## **PO (Product Owner)** 18 | - 이름: 이해경 "갑빠" (남성, 54세) 19 | - 성향: Value Oriented, Interactive, Iterative를 중시하며 친화적인 성격 20 | - 경력: 21 | - IBM에서 5년간 애자일 코치로 근무 22 | - 네이버, 쿠팡, 카카오에서 PO로 10년간 근무 23 | - 애자일 컨설팅 회사 창업 및 5년간 운영 24 | - 국제 애자일 연합회 인증 트레이너 25 | 26 | ## **서비스 기획자 (Lead)** 27 | - 이름: 이미준 "도그냥" (여성, 35세) 28 | - 성향: 사용자 중심적 사고, 교육 마인드가 강하며 실무진과의 소통을 중시 29 | - 경력: 30 | - 롯데에서 3년간 서비스 기획자로 근무 31 | - 카카오스타일에서 5년간 서비스 기획 및 교육 업무 담당 32 | - 생성형AI 활용 교육 프로그램 다수 진행 33 | - 서비스 기획 관련 강의 및 컨설팅 경험 보유 34 | 35 | ## **플랫폼 기획자** 36 | - 이름: Flynn "플린" (여성, 32세) 37 | - 성향: 기술 트렌드에 민감하고 데이터 기반 의사결정을 선호하는 분석적 성격 38 | - 경력: 39 | - 카카오엔터테인먼트에서 6년간 플랫폼 서비스 기획자로 근무 40 | - 콘텐츠 추천 시스템 및 개인화 서비스 기획 경험 41 | - AI 기반 서비스 론칭 다수 경험 42 | - 플랫폼 아키텍처 설계 및 API 기획 전문성 보유 43 | 44 | ## **UX Designer** 45 | - 이름: 박서연 "세리" (여성, 29세) 46 | - 성향: 사용자 경험에 집중하며 직관적이고 창의적인 사고를 가진 성격 47 | - 경력: 48 | - 토스에서 3년간 UX 디자이너로 근무 49 | - 라인에서 2년간 AI 서비스 UX 디자인 담당 50 | - 생성형AI 도구 사용성 개선 프로젝트 리드 경험 51 | - UX 리서치 및 사용성 테스트 전문성 보유 52 | 53 | ## **Tech Lead** 54 | - 이름: 김태현 "태클" (남성, 38세) 55 | - 성향: 문제 해결 중심적이며 효율성과 안정성을 중시하는 실용적 성격 56 | - 경력: 57 | - 네이버에서 7년간 검색 서비스 개발팀 리드 58 | - 쿠팡에서 3년간 AI 추천 시스템 Tech Lead 59 | - OpenAI API 및 다양한 LLM 모델 통합 경험 60 | - 대용량 트래픽 처리 및 서비스 아키텍처 설계 전문 61 | ``` 62 | 63 | [대화 가이드] 64 | {언어} 65 | 특별한 언급이 없는 경우 한국어를 사용 66 | {호칭} 67 | 실명 사용하지 않고 닉네임으로 호칭 68 | {질문} 69 | 프롬프트가 'q:'로 시작하면 질문을 의미함 70 | - Fact와 Opinion으로 나누어 답변 71 | - Fact는 출처 링크를 표시 72 | {요청} 73 | 프롬프트에 특별한 Prefix가 없는 경우는 요청을 의미함 74 | 요청에 맞는 답변을 제공 75 | 76 | [최적안 도출] 77 | 프롬프트가 'o:'로 시작하면 최적안 도출을 의미함 78 | 1) 각자의 생각을 얘기함 79 | 2) 의견을 종합하여 동일한 건 한 개만 남기고 비슷한 건 합침 80 | 3) 최적안 후보 5개를 선정함 81 | 4) 각 최적안 후보 5개에 대해 평가함 82 | 5) 최적안 1개를 선정함 83 | 6) '1)번 ~ 5)번' 과정을 10번 반복함 84 | 7) 최종으로 선정된 최적안을 제시함 85 | 86 | -------------------------------------------------------------------------------- /guides/design/sequence-inner-design.md: -------------------------------------------------------------------------------- 1 | # 내부시퀀스설계 가이드 2 | 3 | [요청사항] 4 | - <작성원칙>을 준용하여 설계 5 | - <작성순서>에 따라 설계 6 | - [결과파일] 안내에 따라 파일 작성 7 | 8 | [가이드] 9 | <작성원칙> 10 | - **유저스토리와 매칭**되어야 함. **불필요한 추가 설계 금지** 11 | - **외부시퀀스설계서에서 설계한 플로우와 일치**해야 함 12 | - UI/UX설계서의 '사용자 플로우'참조하여 설계 13 | - 마이크로서비스 내부의 처리 흐름을 표시 14 | - 요청/응답을 **한글로 표시** 15 | - Repository CRUD 처리를 한글로 설명하고 SQL은 사용하지 말것 16 | - **각 서비스-시나리오별로 분리하여 각각 작성** 17 | - 각 서비스별 주요 시나리오마다 독립적인 시퀀스 설계 수행 18 | - 프론트엔드와 백엔드 책임 분리: 프론트엔드에서 할 수 있는 것은 백엔드로 요청 안하게 함 19 | - 표현 요소 20 | - **API 레이어**: 해당 시나리오의 모든 관련 엔드포인트 21 | - **비즈니스 레이어**: Controller → Service → Domain 내부 플로우 22 | - **데이터 레이어**: Repository, Cache, External API 접근 23 | - **인프라 레이어**: 메시지 큐, 이벤트, 로깅 등 24 | - 다이어그램 구성 25 | - **참여자(Actor)**: Controller, Service, Repository, Cache, External API 26 | - **생명선(Lifeline)**: 각 참여자의 활동 구간 27 | - **메시지(Message)**: 동기(→)/비동기(-->) 호출 구분 28 | - **활성화 박스**: 처리 중인 시간 구간 표시 29 | - **노트**: 중요한 비즈니스 로직이나 기술적 고려사항 설명 30 | - 참여자가 서비스 내부가 아닌 다른 마이크로 서비스, 외부시스템, 인프라 컴포넌트면 참여자 이름 끝에 '<>'를 붙임 31 | 예) database "Redis Cache<>" as cache 32 | 33 | <작성순서> 34 | - 준비: 35 | - 유저스토리, UI/UX설계서, 외부시퀀스설계서 분석 및 이해 36 | - "@analyze --play" 프로토타입이 있는 경우 웹브라우저에서 실행하여 서비스 이해 37 | - 실행: 38 | - <시나리오 분류 가이드>에 따라 각 서비스별로 시나리오 분류 39 | - 내부시퀀스설계서 작성 40 | - <병렬수행>가이드에 따라 동시 수행 41 | - **PlantUML 스크립트 파일 생성 즉시 검사 실행**: 'PlantUML 문법 검사 가이드' 준용 42 | - 검토: 43 | - <작성원칙> 준수 검토 44 | - 스쿼드 팀원 리뷰: 누락 및 개선 사항 검토 45 | - 수정 사항 선택 및 반영 46 | 47 | <시나리오 분류 가이드> 48 | - 시나리오 식별 방법 49 | - **유저스토리 기반**: 각 유저스토리를 기준으로 시나리오 도출 50 | - **비즈니스 기능 단위**: 하나의 완전한 비즈니스 기능을 수행하는 단위로 분류 51 | - 시나리오별 설계 원칙 52 | - **단일 책임**: 하나의 시나리오는 하나의 명확한 비즈니스 목적을 가짐 53 | - **완전성**: 해당 시나리오의 모든 API와 내부 처리를 포함 54 | - **독립성**: 각 시나리오는 독립적으로 이해 가능해야 함 55 | - **일관성**: 동일한 아키텍처 레이어 표현 방식 사용 56 | - 시나리오 명명 규칙 57 | - **케밥-케이스 사용**: entity action 형태. 한글로 작성 (예: 사용자 등록, 주문 처리) 58 | - **동사형 액션**: 실제 수행하는 작업을 명확히 표현 59 | - **일관된 용어**: 프로젝트 내에서 동일한 용어 사용 60 | 61 | <병렬수행> 62 | - **서브 에이전트를 활용한 병렬 작성 필수** 63 | - 서비스별 독립적인 에이전트가 각 내부시퀀스설계를 동시에 작업 64 | - 모든 설계 완료 후 전체 검증 65 | 66 | [참고자료] 67 | - 유저스토리 68 | - UI/UX설계서 69 | - 외부시퀀스설계서 70 | - 프로토타입 71 | 72 | [예시] 73 | - 링크: https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/refs/heads/main/samples/sample-시퀀스설계서(내부).puml 74 | 75 | [결과파일] 76 | - design/backend/sequence/inner/{서비스명}-{시나리오}.puml 77 | - 서비스명은 영어로 시나리오명은 한글로 작성 78 | 79 | -------------------------------------------------------------------------------- /references/git-repo-guide.md: -------------------------------------------------------------------------------- 1 | # Git 레포지토리 생성 및 푸시 가이드 2 | 3 | ## GitHub에 원격 레포지토리 생성 4 | 원격 Git 레포지토리를 생성합니다. 5 | ![](../images/2025-09-12-15-21-00.png) 6 | 7 | 특별한 경우가 아니면 Private 레포지토리로 지정합니다. 8 | 내용에 보안 정보가 있을 가능성이 높기 때문입니다. 9 | ![](../images/2025-09-12-15-21-32.png) 10 | 11 | 원격 레포지토리 주소를 복사합니다. 12 | 주소 옆에 아이콘을 누르시면 클립보드에 복사됩니다. 13 | ![](images/2025-09-12-15-22-42.png) 14 | 15 | ## 로컬 레포지토리 생성 16 | 프로젝트 디렉토리로 이동 후 로컬 레포지토리를 생성합니다. 17 | 18 | 로컬 레포지토리 디렉토리로 이동합니다. 19 | 로컬 레포지토리 디렉토리는 위에서 만든 원격 레포지토리 명과 동일해야 합니다. 20 | ``` 21 | cd ~/home/workspace/{로컬 레포지토리 디렉토리} 22 | ``` 23 | 예) 24 | ``` 25 | cd ~/home/workspace/phonebill 26 | ``` 27 | 28 | 로컬 레포지토리가 아직 없는 경우 생성하고 이동합니다. 29 | ``` 30 | mkdir -p ~/home/workspace/{로컬 레포지토리 디렉토리} 31 | cd ~/home/workspace/{로컬 레포지토리 디렉토리} 32 | ``` 33 | 예) 34 | ``` 35 | mkdir -p ~/home/workspace/phonebill 36 | cd ~/home/workspace/phonebill 37 | ``` 38 | 39 | 작업하는 PC에서 최초로 Git 푸시하는 경우 Git 설정을 먼저 하세요. 40 | https://github.com/cna-bootcamp/clauding-guide/blob/main/guides/setup/00.prepare1.md#git-%EC%84%A4%EC%A0%95 41 | 42 | 43 | 아래 명령으로 로컬 레포지토리를 생성합니다. 44 | ``` 45 | git init 46 | ``` 47 | 48 | ## 브랜치를 main으로 변경 49 | 50 | ``` 51 | git checkout -b main 52 | ``` 53 | 54 | ## 원격 레포지토리 주소 지정 55 | ``` 56 | git remote add origin {원격 레포지토리 주소} 57 | ``` 58 | 예) 59 | ``` 60 | git remote add origin https://github.com/cna-bootcamp/phonebill.git 61 | ``` 62 | 63 | ## 원격 레포지토리로 푸시 64 | ``` 65 | git add . 66 | ``` 67 | 68 | ``` 69 | git commit -m "{메시지}" 70 | ``` 71 | 72 | ``` 73 | git push -u origin main 74 | ``` 75 | 76 | Git Bash나 Mac에서는 아래 예와 같이 한줄로 사용할 수 있습니다. 77 | ``` 78 | git add . && git commit -m "push first" && git push -u origin main 79 | ``` 80 | 81 | '-u origin main'은 최초 한번만 하면 됩니다. 82 | 83 | --- 84 | 85 | ## 원격 레포지토리 변경 86 | 만약 다른 사람의 git repository를 clone 한 경우 자신의 repository로 변경 후 푸시하는 방법입니다. 87 | 88 | 현재 원격 레포지토리 구하기 89 | ``` 90 | git remote get-url origin 91 | ``` 92 | 93 | 자신의 원격 레포지토리로 변경 94 | ``` 95 | git remote set-url origin {본인 원격 repository 주소} 96 | ``` 97 | 98 | 예) 99 | ``` 100 | git remote set-url origin https://github.com/agilpia/phonebill.git 101 | ``` 102 | 103 | 변경 후 푸시 104 | ``` 105 | git add . && git commit -m "push first" && git push -u origin main 106 | ``` 107 | 108 | '-u origin main'은 최초 한번만 하면 됩니다. 109 | 110 | -------------------------------------------------------------------------------- /guides/design/architecture-highlevel.md: -------------------------------------------------------------------------------- 1 | # High Level 아키텍처 정의 가이드 2 | 3 | [요청사항] 4 | - <작성원칙>을 준용하여 설계 5 | - <작성순서>에 따라 설계 6 | - [결과파일] 안내에 따라 파일 작성 7 | 8 | [가이드] 9 | <작성원칙> 10 | - {CLOUD}플랫폼에 최적화된 제품/서비스로 구성 11 | - 아래 제품을 우선적으로 사용 12 | - API Gateway: Istio나 Spring Cloud Gateway 13 | - Database: 클라우드 관리형 DB가 아닌 오픈 소스 DB 14 | - Message Queue: 클라우드 관리형 서비스 15 | - 기타: 클라우드 관리형 서비스 16 | - 개발언어, 개발 프레임워크, AI모델은 '제품별버전가이드"를 참조하여 GA된 최신 버전 사용 17 | 18 | <작성순서> 19 | - 준비: 20 | - 유저스토리, 아키텍처패턴, 논리아키텍처, API설계서, 외부시퀀스설계서, 내부시퀀스설계서, 클래스설계서, 데이터설계서 분석 및 이해 21 | - 실행: 22 | - 'HighLevel아키텍처정의서템플릿'을 이용하여 작성 23 | - 섹션별 작성 가이드 24 | - '1. 개요 (Executive Summary)': 25 | - 1.2 아키텍처 범위 및 경계: 유저스토리, 논리아키텍처, 외부시퀀스설계서와 일치하게 작성 26 | - '4. 논리 아키텍처 (Logical View)' 27 | - 시스템 컨텍스트 다이어그램': 논리아키텍처 경로 지정 28 | - 4.2.2 바운디드 컨텍스트: mermaid 형식으로 작성 29 | - '5. 프로세스 아키텍처 (Process View)' 30 | - 5.1.1 핵심 사용자 여정: '유저스토리'와 'UI/UX설계서' 참조하여 mermaid 형식으로 작성 31 | - 5.1.2 시스템 간 통합 프로세스: '외부시퀀스설계'의 경로 지정 32 | - '6. 개발 아키텍처 (Development View)' 33 | - 6.1.1 백엔드 기술스택: 핵심서비스는 Spring Boot사용 34 | - 6.1.2 프론트엔드 기술스택: 유저스토리와 UI/UX설계서 참조하여 최적안 추천 35 | - 6.2 서비스별 개발 아키텍처 패턴: 클래스설계서(class.md)의 '설계 아키텍처 패턴'과 일치 36 | - 6.3 개발 가이드라인: 37 | - 코딩표준: '개발주석표준' 주소 링크 38 | - 테스트 전략: '테스트코드표준' 주소 링크 39 | - '7. 물리 아키텍처 (Physical View)' 40 | - 7.1 클라우드 아키텍처 패턴: '아키텍처패턴'과 일치하게 작성 41 | - 7.2 인프라스트럭처 구성: {CLOUD}에 제시된 클라우드 제공자에 기준하여 작성 42 | - '8. 기술 스택 아키텍처' 43 | - <작성원칙> 참조하여 작성 44 | - '9. AI/ML 아키텍처' 45 | - '9.1.1 AI 서비스/모델 매핑': 논리아키텍처와 외부시퀀스설계와 일치하게 작성 46 | - '10. 개발 운영 (DevOps)' 47 | - 10.1.1 지속적 통합 (CI): Jenkins, GitHub Actions 중 적절한것 추천 48 | - 10.1.2 지속적 배포 (CD): ArgoCD를 우선 검토 49 | - 10.2 컨테이너 오케스트레이션: {CLOUD}플랫폼에 맞게 작성 50 | - '11. 보안 아키텍처': {CLOUD} 플랫폼에 맞게 작성 51 | - '12. 품질 속성 구현 전략': '아키텍처패턴'과 '데이터설계서'와 일치하게 작성 52 | - '13. 아키텍처 의사결정 기록 (ADR)': 팀원들과 논의하고 결정한 주요 아키텍처 의사결정 작성 53 | - '16. 부록' 54 | - 16.3 관련 문서: 참고자료의 산출물명과 파일 경로 명시 55 | - 결과: HighLevel아키텍처정의서: high-level-architecture.md 56 | - 검토: 57 | - <작성원칙> 준수 검토 58 | - 스쿼드 팀원 리뷰: 누락 및 개선 사항 검토 59 | - 수정 사항 선택 및 반영 60 | 61 | [참고자료] 62 | - 유저스토리 63 | - 아키텍처패턴 64 | - 논리아키텍처 65 | - API설계서 66 | - 외부시퀀스설계서 67 | - 내부시퀀스설계서 68 | - 클래스설계서 69 | - 데이터설계서 70 | - HighLevel아키텍처정의서템플릿 71 | - 백킹서비스설치방법 72 | - 제품별버전가이드 73 | 74 | [결과파일] 75 | - design/high-level-architecture.md 76 | -------------------------------------------------------------------------------- /utils/merge-java.py: -------------------------------------------------------------------------------- 1 | import os 2 | 3 | def merge_files(src_directories, output_file, extensions=['.java', '.yml', '.gradle']): 4 | with open(output_file, 'w', encoding='utf-8') as outfile: 5 | for src_directory in src_directories: 6 | for root, dirs, files in os.walk(src_directory): 7 | for file in files: 8 | if any(file.endswith(ext) for ext in extensions): 9 | file_path = os.path.join(root, file) 10 | try: 11 | with open(file_path, 'r', encoding='utf-8') as infile: 12 | content = infile.read() 13 | if content: 14 | outfile.write(f"// File: {file_path}\n") 15 | outfile.write(content) 16 | outfile.write("\n\n") 17 | print(f"Added {file_path}") 18 | else: 19 | print(f"Skipped empty file: {file_path}") 20 | except Exception as e: 21 | print(f"Error reading {file_path}: {e}") 22 | 23 | # 현재 디렉토리의 settings.gradle과 build.gradle 파일 추가 24 | current_dir = os.path.abspath(os.path.dirname(__file__)) 25 | for file_name in ['settings.gradle', 'build.gradle']: 26 | file_path = os.path.join(current_dir, file_name) 27 | if os.path.isfile(file_path): 28 | try: 29 | with open(file_path, 'r', encoding='utf-8') as infile: 30 | content = infile.read() 31 | if content: 32 | outfile.write(f"// File: {file_path}\n") 33 | outfile.write(content) 34 | outfile.write("\n\n") 35 | print(f"Added {file_path}") 36 | except Exception as e: 37 | print(f"Error reading {file_path}: {e}") 38 | 39 | 40 | if __name__ == "__main__": 41 | default_directories = "" 42 | input_directories = input(f"# 소스 디렉토리명 (기본값: {default_directories}): ") 43 | 44 | if input_directories.strip() == "": 45 | src_directories = default_directories.split() 46 | else: 47 | src_directories = input_directories.split() 48 | 49 | output_file = 'MergedSource.java' 50 | merge_files(src_directories, output_file) 51 | print(f"All files have been merged into {output_file}") 52 | -------------------------------------------------------------------------------- /guides/tools/check-plantuml.ps1: -------------------------------------------------------------------------------- 1 | param( 2 | [Parameter(Mandatory=$false)] 3 | [string]$FilePath = "C:\home\workspace\tripgen\design\backend\system\azure-physical-architecture.txt" 4 | ) 5 | 6 | Write-Host "=== PlantUML Syntax Checker ===" -ForegroundColor Cyan 7 | Write-Host "Target file: $FilePath" -ForegroundColor Yellow 8 | 9 | # Check if file exists 10 | if (-not (Test-Path $FilePath)) { 11 | Write-Host "❌ File not found: $FilePath" -ForegroundColor Red 12 | exit 1 13 | } 14 | 15 | # Execute directly in PowerShell 16 | $timestamp = Get-Date -Format 'yyyyMMddHHmmss' 17 | $tempFile = "/tmp/puml_$timestamp.puml" 18 | 19 | # Copy file 20 | Write-Host "`n1. Copying file..." -ForegroundColor Gray 21 | Write-Host " Temporary file: $tempFile" 22 | docker cp $FilePath "plantuml:$tempFile" 23 | 24 | if ($LASTEXITCODE -ne 0) { 25 | Write-Host "❌ File copy failed" -ForegroundColor Red 26 | exit 1 27 | } 28 | Write-Host " ✅ Copy completed" -ForegroundColor Green 29 | 30 | # Find JAR file path 31 | Write-Host "`n2. Looking for PlantUML JAR file..." -ForegroundColor Gray 32 | $JAR_PATH = docker exec plantuml sh -c "find / -name 'plantuml*.jar' 2>/dev/null | head -1" 33 | Write-Host " JAR path: $JAR_PATH" 34 | Write-Host " ✅ JAR file confirmed" -ForegroundColor Green 35 | 36 | # Syntax check 37 | Write-Host "`n3. Running syntax check..." -ForegroundColor Gray 38 | $syntaxOutput = docker exec plantuml sh -c "java -jar $JAR_PATH -checkonly $tempFile 2>&1" 39 | 40 | if ($LASTEXITCODE -eq 0) { 41 | Write-Host "`n✅ Syntax check passed!" -ForegroundColor Green 42 | Write-Host " No syntax errors found in the diagram." -ForegroundColor Green 43 | } else { 44 | Write-Host "`n❌ Syntax errors detected!" -ForegroundColor Red 45 | Write-Host "Error details:" -ForegroundColor Red 46 | Write-Host $syntaxOutput -ForegroundColor Yellow 47 | 48 | # Detailed error check 49 | Write-Host "`nAnalyzing detailed errors..." -ForegroundColor Yellow 50 | $detailError = docker exec plantuml sh -c "java -jar $JAR_PATH -failfast -v $tempFile 2>&1" 51 | $errorLines = $detailError | Select-String "Error line" 52 | 53 | if ($errorLines) { 54 | Write-Host "`n📍 Error locations:" -ForegroundColor Magenta 55 | $errorLines | ForEach-Object { 56 | Write-Host " $($_.Line)" -ForegroundColor Red 57 | } 58 | } 59 | } 60 | 61 | # Clean up temporary file 62 | Write-Host "`n4. Cleaning up temporary files..." -ForegroundColor Gray 63 | docker exec plantuml sh -c "rm -f $tempFile" 2>$null 64 | Write-Host " ✅ Cleanup completed" -ForegroundColor Green 65 | 66 | Write-Host "`n=== Check completed ===" -ForegroundColor Cyan -------------------------------------------------------------------------------- /samples/sample-기능추가예시.md: -------------------------------------------------------------------------------- 1 | 2 | ## Step1. 요구사항 문서 작성 3 | 4 | 예시: AI 추천사유 생성 API 5 | 6 | API1: 장소정보 기반 추천 7 | 1) input 8 | - placeName: 장소명 9 | - region: 지역. 예) 서울특별시 10 | - country: 나라. 예) 대한민국 11 | - city: 도시. 예) 마포구 12 | 13 | 2) 처리 14 | - 장소에 대한 추천 이유와 유용한 정보/팁 제공을 Claude에 요청 15 | - 응답은 json 구조로 하도록 요청 16 | - 응답 예시를 참고하여 적절한 json 구조 작성 17 | - 요청 프롬프트에 응답 예시를 제공 18 | 19 | 3) 응답 예시 20 | ``` 21 | 1. 추천 이유 22 | 마리엔플라츠는 뮌헨의 심장부로, 중세부터 시장과 축제가 열렸던 역사적인 광장입니다. 고틱 양식의 아름다운 건축물과 함께 뮌헨의 전통과 현대가 조화를 이루는 대표적인 관광명소입니다. 23 | 24 | 2. 유용한 정보/팁 25 | - 장소 설명: 신시청사의 글로켄슈필(시계탑 공연)은 세계적으로 유명하며, 매일 정각에 43개의 종이 울립니다 26 | - 특별 이벤트: 시계탑 공연 시간 - 11시, 12시, 17시 (3-10월 21시 추가) 27 | - 추천 방문 시간: 오전 11시 (시계탑 공연 시간) 28 | - 소요 시간: 약 1시간 30분 (주변 상점가 포함 시 2시간) 29 | - 베스트 포토 스팟: 신시청사 정면, 성모 마리아 기둥 앞 30 | - 유용한 팁: 편한 신발 착용, 우천 시 우산 필수 31 | ``` 32 | 33 | API2: 여행정보 기반 추천 34 | 1) input 35 | - tripId: 여행 ID 36 | - dayIndex: 여행일 순서(1부터 시작) 37 | - activityIndex: 여행활동 순서(1부터 시작) 38 | 39 | 2) 처리 40 | - tripId로 생성된 일정 정보를 찾음: /api/v1/trips/{tripId}/latest-schedule 참조 41 | - data.scheduleData값을 GeneratedScheduleResponse DTO이용하여 객체 생성 42 | - dayIndex로 해당되는 여행일의 'schedules[dayIndex-1].weatherConsideration' 구함 43 | - activityIndex로 장소를 찾음. 'schedules[dayIndex-1].activities[activityIndex-1]' 44 | - data.requestData값을 ScheduleGenerationMessageRequest DTO이용하여 객체 생성 45 | - {DTO객채}.members 정보를 찾음. 46 | - 구한 날씨정보, 장소정보, 멤버 정보를 고려하여 장소에 대한 추천 이유와 유용한 정보/팁 제공을 Claude에 요청 47 | - 응답은 json 구조로 하도록 요청 48 | - 응답 예시를 참고하여 적절한 json 구조 작성 49 | - 요청 프롬프트에 응답 예시를 제공 50 | 51 | 3) 응답 예시 52 | ``` 53 | 1. 추천 이유 54 | 마리엔플라츠는 뮌헨의 심장부로, 중세부터 시장과 축제가 열렸던 역사적인 광장입니다. 55 | 고틱 양식의 아름다운 건축물과 함께 뮌헨의 전통과 현대가 조화를 이루는 대표적인 관광명소입니다. 56 | 특히 역사적 건출물을 선호하시는 '온달'님에게 추천합니다. 57 | 58 | 2. 유용한 정보/팁 59 | - 장소 설명: 신시청사의 글로켄슈필(시계탑 공연)은 세계적으로 유명하며, 매일 정각에 43개의 종이 울립니다 60 | - 특별 이벤트: 시계탑 공연 시간 - 11시, 12시, 17시 (3-10월 21시 추가). 11시 방문 예정이나 30분 일찍 가셔서 좋은 전망장소에서 보세요. 61 | - 추천 방문 시간: 오전 11시 (시계탑 공연 시간) 62 | - 소요 시간: 약 1시간 30분 (주변 상점가 포함 시 2시간) 63 | - 베스트 포토 스팟: 신시청사 정면, 성모 마리아 기둥 앞 64 | - 유용한 팁: 편한 신발 착용, 우천 시 우산 필수. '부인'님은 근처 카페에서 휴식을 권고합니다. 65 | ``` 66 | 67 | --- 68 | 69 | ## Step2. 개발 계획 작성 요청 70 | 꼭, "기존 구조와 설정을 파악"한 후 설계 하도록 해야 합니다. 71 | 72 | 예시) 73 | ``` 74 | @plan AI 추천사유 생성 API를 만들기 위한 계획을 세워봅시다. 75 | [요청사항] 76 | - API1만 설계 77 | - ai-service의 기존 구조와 설정을 파악한 후 설계 78 | - 슈도코드를 포함한 상세 개발 계획을 세워 claude/ 밑에 마크다운 파일로 작성 79 | - 테스트 코드는 작성 안함 80 | - 설계 후 구현은 나에게 검토 받은 후 시작 81 | [참고자료] 82 | - tripgen/claude/recommendation.md 83 | ``` 84 | 85 | --- 86 | 87 | ## Step3. 개발과 테스트 88 | 개발계획서를 검토하고 추가로 필요하면 계획서에 추가함 89 | 90 | 예시) 91 | ``` 92 | @dev-backend 93 | claude/trip-recommendation-api-plan.md을 기반으로 개발을 진행하고 완료 후 컴파일 하세요. 94 | 컴파일 완료 후 서비스 시작을 나에게 요청하세요. 95 | ``` 96 | 97 | 예시) 98 | ``` 99 | 아래 개선사항 추가요. 100 | │- API 설명에 dayIndex, activityIndex 설명 추가 101 | │- 캐시 사용: key=날짜와 장소명, TTL=1일 102 | ``` 103 | 104 | -------------------------------------------------------------------------------- /samples/sample-논리아키텍처.mmd: -------------------------------------------------------------------------------- 1 | graph TB 2 | %% TripGen 논리 아키텍처 - Context Map 3 | 4 | %% Client Layer 5 | subgraph "Client Layer" 6 | Mobile["모바일 클라이언트"] 7 | end 8 | 9 | %% Gateway Layer 10 | subgraph "Gateway Layer" 11 | Gateway["API Gateway
• 인증/인가
• 라우팅
• 로드밸런싱"] 12 | end 13 | 14 | %% Service Layer 15 | subgraph "Service Layer" 16 | UserSvc["User Service
• 사용자 인증
• 프로필 관리
• 세션 관리"] 17 | TripSvc["Trip Service
• 여행 관리
• 멤버 설정
• 일정 조회"] 18 | AISvc["AI Service
• 일정 생성
• 맞춤 추천
• 날씨 반영"] 19 | LocationSvc["Location Service
• 장소 검색
• 상세 정보
• 리뷰 통합"] 20 | end 21 | 22 | %% Data Layer 23 | subgraph "Data Layer" 24 | Cache["Redis Cache
• 세션 정보
• 장소 데이터
• AI 결과"] 25 | Queue["Message Queue
• AI 작업 큐
• Priority Queue
• Location 비동기"] 26 | end 27 | 28 | %% External APIs 29 | subgraph "External APIs" 30 | Claude["Claude API"] 31 | Kakao["카카오맵 API"] 32 | Google["구글맵 API"] 33 | Weather["날씨 API"] 34 | end 35 | 36 | %% Client to Gateway (단일 연결) 37 | Mobile -->|HTTPS| Gateway 38 | 39 | %% Gateway to Services (동기) 40 | Gateway -->|인증/프로필| UserSvc 41 | Gateway -->|여행 관리| TripSvc 42 | Gateway -->|장소 검색| LocationSvc 43 | 44 | %% Service Dependencies 45 | TripSvc -.->|"AI 일정 생성 요청
(비동기)"| Queue 46 | Queue -.->|작업 처리| AISvc 47 | 48 | %% AI Service Dependencies 49 | AISvc -.->|"장소 정보 조회
(Cache-Aside)"| Cache 50 | AISvc -.->|"Location 요청
(Async Fallback)"| Queue 51 | Queue -.->|백그라운드 처리| LocationSvc 52 | 53 | %% Cache Dependencies 54 | UserSvc -.->|세션 관리| Cache 55 | TripSvc -.->|여행 정보| Cache 56 | LocationSvc -.->|장소 캐싱| Cache 57 | 58 | %% External API Dependencies 59 | AISvc -->|일정 생성| Claude 60 | LocationSvc -->|장소 검색| Kakao 61 | LocationSvc -->|상세/리뷰| Google 62 | LocationSvc -->|날씨 조회| Weather 63 | 64 | %% Styling 65 | classDef client fill:#BFDBFE,stroke:#3B82F6,stroke-width:2px 66 | classDef gateway fill:#2E86AB,stroke:#1E3A8A,stroke-width:2px,color:#fff 67 | classDef user fill:#4ECDC4,stroke:#14B8A6,stroke-width:2px 68 | classDef trip fill:#F18F01,stroke:#F97316,stroke-width:2px 69 | classDef ai fill:#10B981,stroke:#059669,stroke-width:2px 70 | classDef location fill:#8B5CF6,stroke:#7C3AED,stroke-width:2px,color:#fff 71 | classDef cache fill:#F59E0B,stroke:#F97316,stroke-width:2px 72 | classDef queue fill:#EC4899,stroke:#DB2777,stroke-width:2px 73 | classDef external fill:#E5E7EB,stroke:#9CA3AF,stroke-width:2px 74 | 75 | class Mobile client 76 | class Gateway gateway 77 | class UserSvc user 78 | class TripSvc trip 79 | class AISvc ai 80 | class LocationSvc location 81 | class Cache cache 82 | class Queue queue 83 | class Claude,Kakao,Google,Weather external -------------------------------------------------------------------------------- /references/instruction-template.md: -------------------------------------------------------------------------------- 1 | # {프로젝트명} 가이드 2 | 3 | [목표] 4 | {목표} 5 | 6 | [팀원] 7 | 이 프로젝트는 Agentic Workflow 컨셉을 따릅니다. 8 | 아래와 같은 각 멤버가 역할을 나누어 작업합니다. 9 | 10 | ``` 11 | 팀원목록 12 | ``` 13 | 14 | [팀 행동원칙] 15 | - AGILE 'M'사상을 믿고 실천한다. : Value-Oriented, Interactive, Iterative 16 | - 'M'사상 실천을 위한 마인드셋을 가진다 17 | - Value Oriented: WHY First, Align WHY 18 | - Interactive: Believe crew, Yes And 19 | - Iterative: Fast fail, Learn and Pivot 20 | 21 | [대화 가이드] 22 | - 'a:'로 시작하면 요청이나 질문입니다. 23 | - 프롬프트에 아무런 prefix가 없으면 요청으로 처리해 주세요. 24 | - 특별한 언급이 없으면 한국어로 대화해 주세요. 25 | - 답변할 때 답변하는 사람의 닉네임을 표시해 주세요. 26 | 27 | [최적안 가이드] 28 | 'o:'로 시작하면 최적안을 도출하라는 요청임 29 | 1) 각자의 생각을 얘기함 30 | 2) 의견을 종합하여 동일한 건 한 개만 남기고 비슷한 건 합침 31 | 3) 최적안 후보 5개를 선정함 32 | 4) 각 최적안 후보 5개에 대해 평가함 33 | 5) 최적안 1개를 선정함 34 | 6) '1)번 ~ 5)번' 과정을 10번 반복함 35 | 7) 최종으로 선정된 최적안을 제시함 36 | 37 | --- 38 | 39 | [핵심 원칙] 40 | 1. 병렬 처리 전략 41 | - **서브 에이전트 활용**: Task 도구로 서비스별 동시 작업 42 | - **3단계 하이브리드 접근**: 43 | 1. 공통 컴포넌트 (순차) 44 | 2. 서비스별 설계 (병렬) 45 | 3. 통합 검증 (순차) 46 | - **의존성 기반 그룹화**: 의존 관계에 따른 순차/병렬 처리 47 | - **통합 검증**: 병렬 작업 완료 후 전체 검증 48 | 49 | 2. 마이크로서비스 설계 50 | - **서비스 독립성**: 캐시를 통한 직접 의존성 최소화 51 | - **선택적 비동기**: 장시간 작업(AI 일정 생성)만 비동기 52 | - **캐시 우선**: Redis를 통한 성능 최적화 53 | 54 | 3. 표준화 55 | - **PlantUML**: 모든 다이어그램 표준 (`!theme mono`) 56 | - **OpenAPI 3.0**: API 명세 표준 57 | - **PlantUML 문법 검사 필수**: 'PlantUML문법검사가이드'를 준용 58 | - **Mermaid 문법 검사 필수**: 'Mermaid문법검사가이드'를 준용 59 | - **OpenAPI 문법 검사 필수** 60 | 61 | --- 62 | 63 | [Git 연동] 64 | - "pull" 명령어 입력 시 Git pull 명령을 수행하고 충돌이 있을 때 최신 파일로 병합 수행 65 | - "push" 또는 "푸시" 명령어 입력 시 git add, commit, push를 수행 66 | - Commit Message는 한글로 함 67 | 68 | --- 69 | 70 | [URL링크 참조] 71 | - URL링크는 WebFetch가 아닌 'curl {URL} > claude/{filename}'명령으로 저장 72 | - 동일한 파일이 있으면 덮어 씀 73 | - 'claude'디렉토리가 없으면 생성하고 다운로드 74 | - 저장된 파일을 읽어 사용함 75 | 76 | --- 77 | 78 | [프롬프트 로딩] 79 | '프롬프트 로딩'이라고 입력하면 CLAUDE.md에서 '실행프롬프트'가 포함된 가이드를 찾아 아래 작업을 하는 명령어를 생성 80 | - 각 작업유형별로 서브 에이젼트를 생성하여 병렬로 작업 81 | - 실행 프롬프트 파일을 claude디렉토리에 다운로드 하여 내용에 있는 작업별로 .claude/commands/{작업유형}-{작업}.md로 명령어를 생성 82 | - 작업유형: think, design, develop, deploy 83 | - command는 각 작업의 'command:'항목에 지정된 명령어로 작성 84 | - 동일 기능의 명령이 있으면 내용 변경이 있을때만 업데이트 85 | - 작업유형별 수행 가이드 표시 명령 작성 86 | - .claude/commands/{작업유형}-help.md 87 | - command: "/{작업유형}-help" 88 | - 아래 예시와 같이 작업 순서를 터미널에 표시하도록 함 89 | ``` 90 | 기획 작업 순서 91 | 92 | 1단계: 서비스 기획 93 | /think-planning 94 | - AI활용 서비스 기획 가이드를 참고하여 서비스를 기획합니다 95 | 96 | 2단계: 유저스토리 작성 97 | /think-userstory 98 | - 유저스토리작성방법을 준용하여 작성합니다 99 | - 마이크로서비스로 나누어 작성합니다 100 | ``` 101 | 102 | --- 103 | 104 | [가이드 로딩] 105 | - claude 디렉토리가 없으면 생성 106 | - 가이드 목록을 claude/guide.md에 다운로드 107 | - 가이드 목록 링크: https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/refs/heads/main/guides/GUIDE.md 108 | - 파일을 읽어 CLAUDE.md 제일 하단에 아래와 같이 가이드 섹션을 추가. 기존에 가이드 섹션이 있으면 먼저 삭제하고 다시 만듦 109 | [가이드] 110 | ``` 111 | claude/guide.md 파일 내용 112 | ``` 113 | - 파일을 삭제 114 | 115 | --- 116 | 117 | [가이드] 118 | ``` 119 | 120 | ``` 121 | -------------------------------------------------------------------------------- /utils/merge-manifest.py: -------------------------------------------------------------------------------- 1 | import os 2 | import yaml 3 | 4 | def find_yaml_files(root_dir): 5 | # 하위 디렉토리와 yaml 파일 정보를 저장할 딕셔너리 6 | yaml_files = {} 7 | 8 | # root_dir을 재귀적으로 탐색 9 | for dirpath, dirnames, filenames in os.walk(root_dir): 10 | # 최상위 디렉토리는 건너뛰기 11 | if dirpath == root_dir: 12 | continue 13 | 14 | # yaml 파일만 필터링 15 | yaml_filenames = [f for f in filenames if f.endswith(('.yaml', '.yml'))] 16 | if yaml_filenames: 17 | # 상대 경로를 키로 사용 18 | rel_dir = os.path.relpath(dirpath, root_dir) 19 | yaml_files[rel_dir] = sorted(yaml_filenames) 20 | 21 | return yaml_files 22 | 23 | def merge_yaml_files(root_dir, output_file): 24 | # YAML 파일 찾기 25 | yaml_files = find_yaml_files(root_dir) 26 | 27 | # 찾은 하위 디렉토리 출력 28 | print("\nFound directories with YAML files:") 29 | for dir_name in yaml_files.keys(): 30 | print(f"- {dir_name}") 31 | 32 | # 결과 파일 작성 33 | with open(output_file, 'w', encoding='utf-8') as outfile: 34 | dirs = sorted(yaml_files.keys()) 35 | 36 | # 각 디렉토리 처리 37 | for dir_idx, dir_name in enumerate(dirs): 38 | print(f"\nProcessing directory: {dir_name}") 39 | 40 | # 디렉토리 내 yaml 파일 처리 41 | for file_idx, filename in enumerate(yaml_files[dir_name]): 42 | file_path = os.path.join(root_dir, dir_name, filename) 43 | print(f"Reading file: {filename}") 44 | 45 | with open(file_path, 'r', encoding='utf-8') as infile: 46 | try: 47 | # YAML 문서 로드 48 | docs = list(yaml.safe_load_all(infile)) 49 | 50 | # 각 문서를 결과 파일에 쓰기 51 | for doc_idx, doc in enumerate(docs): 52 | if doc: # None이 아닌 경우만 추가 53 | yaml.dump(doc, outfile, default_flow_style=False, allow_unicode=True) 54 | 55 | # 구분자 추가 조건: 56 | # 1. 현재 문서가 현재 파일의 마지막 문서가 아니거나 57 | # 2. 현재 파일이 현재 디렉토리의 마지막 파일이 아니거나 58 | # 3. 현재 디렉토리가 마지막 디렉토리가 아닐 때 59 | if (doc_idx < len(docs) - 1 or 60 | file_idx < len(yaml_files[dir_name]) - 1 or 61 | dir_idx < len(dirs) - 1): 62 | outfile.write('\n---\n') 63 | 64 | except yaml.YAMLError as e: 65 | print(f"Error reading {file_path}: {e}") 66 | 67 | print(f"\nMerged manifest file created at: {os.path.abspath(output_file)}") 68 | 69 | if __name__ == "__main__": 70 | manifest_dir = input("Manifest파일들이 있는 최상위 디렉토리를 입력: ") 71 | output_file = input("결과 파일명 입력 (기본값: manifest.yaml): ").strip() 72 | 73 | # 기본값 설정 74 | if not output_file: 75 | output_file = "manifest.yaml" 76 | 77 | merge_yaml_files(manifest_dir, output_file) -------------------------------------------------------------------------------- /guides/design/api-design.md: -------------------------------------------------------------------------------- 1 | # API설계가이드 2 | 3 | [요청사항] 4 | - <작성원칙>을 준용하여 설계 5 | - <작성순서>에 따라 설계 6 | - [결과파일] 안내에 따라 파일 작성 7 | - 최종 완료 후 API 확인 방법 안내 8 | - https://editor.swagger.io/ 접근 9 | - 생성된 swagger yaml파일을 붙여서 확인 및 테스트 10 | 11 | [가이드] 12 | <작성 원칙> 13 | - 각 서비스 API는 독립적으로 완전한 명세를 포함 14 | - 공통 스키마는 각 서비스에서 필요에 따라 직접 정의 15 | - 서비스 간 의존성을 최소화하여 독립 배포 가능 16 | - 중복되는 스키마가 많아질 경우에만 공통 파일 도입 검토 17 | <작성순서> 18 | - 준비: 19 | - 유저스토리, 외부시퀀스설계서, 내부시퀀스설계서 분석 및 이해 20 | - 실행: 21 | - <병렬처리> 안내에 따라 동시 수행 22 | - 에 따라 API 선정 23 | - <파일작성안내>에 따라 작성 24 | - <검증방법>에 따라 작성된 YAML의 문법 및 구조 검증 수행 25 | - 검토: 26 | - <작성원칙> 준수 검토 27 | - 스쿼드 팀원 리뷰: 누락 및 개선 사항 검토 28 | - 수정 사항 선택 및 반영 29 | 30 | 31 | - 유저스토리와 매칭 되어야 함. 불필요한 추가 설계 금지 32 | (유저스토리 ID를 x-user-story 확장 필드에 명시) 33 | - '외부시퀀스설계서'/'내부시퀀스설계서'와 일관성 있게 선정 34 | 35 | <파일작성안내> 36 | - OpenAPI 3.0 스펙 준용 37 | - **servers 섹션 필수화** 38 | - 모든 OpenAPI 명세에 servers 섹션 포함 39 | - SwaggerHub Mock URL을 첫 번째 옵션으로 배치 40 | - **example 데이터 권장** 41 | - 스키마에 example을 추가하여 Swagger UI에서 테스트 할 수 있게함 42 | - **테스트 시나리오 포함** 43 | - 각 API 엔드포인트별 테스트 케이스 정의 44 | - 성공/실패 케이스 모두 포함 45 | - 작성 형식 46 | - YAML 형식의 OpenAPI 3.0 명세 47 | - 각 API별 필수 항목: 48 | - summary: API 목적 설명 49 | - operationId: 고유 식별자 50 | - x-user-story: 유저스토리 ID 51 | - x-controller: 담당 컨트롤러 52 | - tags: API 그룹 분류 53 | - requestBody/responses: 상세 스키마 54 | - 각 서비스 파일에 필요한 모든 스키마 포함: 55 | - components/schemas: 요청/응답 모델 56 | - components/parameters: 공통 파라미터 57 | - components/responses: 공통 응답 58 | - components/securitySchemes: 인증 방식 59 | 60 | <파일 구조> 61 | ``` 62 | design/backend/api/ 63 | ├── {service-name}-api.yaml # 각 마이크로서비스별 API 명세 64 | └── ... # 추가 서비스들 65 | 66 | 예시: 67 | ├── profile-service-api.yaml # 프로파일 서비스 API 68 | ├── order-service-api.yaml # 주문 서비스 API 69 | └── payment-service-api.yaml # 결제 서비스 API 70 | ``` 71 | 72 | - 파일명 규칙 73 | - 서비스명은 kebab-case로 작성 74 | - 파일명 형식: {service-name}-api.yaml 75 | - 서비스명은 유저스토리의 '서비스' 항목을 영문으로 변환하여 사용 76 | 77 | <병렬처리> 78 | - **의존성 분석 선행**: 병렬 처리 전 반드시 의존성 파악 79 | - **순차 처리 필요시**: 무리한 병렬화보다는 안전한 순차 처리 80 | - **검증 단계 필수**: 병렬 처리 후 통합 검증 81 | 82 | <검증방법> 83 | - swagger-cli를 사용한 자동 검증 수행 84 | - 검증 명령어: `swagger-cli validate {파일명}` 85 | - swagger-cli가 없을 경우 자동 설치: 86 | ```bash 87 | # swagger-cli 설치 확인 및 자동 설치 88 | command -v swagger-cli >/dev/null 2>&1 || npm install -g @apidevtools/swagger-cli 89 | 90 | # 검증 실행 91 | swagger-cli validate design/backend/api/*.yaml 92 | ``` 93 | - 검증 항목: 94 | - OpenAPI 3.0 스펙 준수 95 | - YAML 구문 오류 96 | - 스키마 참조 유효성 97 | - 필수 필드 존재 여부 98 | 99 | [참고자료] 100 | - 유저스토리 101 | - 외부시퀀스설계서 102 | - 내부시퀀스설계서 103 | - OpenAPI 스펙: https://swagger.io/specification/ 104 | 105 | [예시] 106 | - swagger api yaml: https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/refs/heads/main/samples/sample-swagger-api.yaml 107 | - API설계서: https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/refs/heads/main/samples/sample-API%20설계서.md 108 | 109 | [결과파일] 110 | - 각 서비스별로 별도의 YAML 파일 생성 111 | - design/backend/api/*.yaml (OpenAPI 형식) -------------------------------------------------------------------------------- /samples/sample-시퀀스설계서(외부).puml: -------------------------------------------------------------------------------- 1 | @startuml 로그인플로우 2 | !theme mono 3 | 4 | title 로그인 플로우 - 외부 시퀀스 다이어그램 5 | 6 | actor "Mobile Client" as Client 7 | participant "API Gateway" as Gateway 8 | participant "User Service" as UserService 9 | database "Redis Cache" as Redis 10 | 11 | == 로그인 화면 접근 == 12 | Client -> Gateway: GET /login-page 13 | activate Gateway 14 | Gateway -> Client: 200 OK (로그인 화면) 15 | deactivate Gateway 16 | 17 | == 로그인 처리 == 18 | Client -> Gateway: POST /api/v1/users/auth/login\n{userId, password} 19 | activate Gateway 20 | 21 | Gateway -> UserService: 로그인 요청 전달 22 | activate UserService 23 | 24 | UserService -> UserService: 사용자 인증 처리\n(비밀번호 검증) 25 | 26 | alt 인증 성공 27 | UserService -> UserService: JWT 토큰 생성 28 | UserService -> Redis: 세션 정보 저장\n(userId, token, TTL) 29 | activate Redis 30 | Redis -> UserService: 저장 완료 31 | deactivate Redis 32 | 33 | UserService -> Gateway: 200 OK\n{token, userId, profile} 34 | Gateway -> Client: 로그인 성공\n{token, profile} 35 | 36 | Client -> Client: 토큰 저장\n(localStorage) 37 | Client -> Client: 대시보드로 이동 38 | 39 | else 인증 실패 40 | UserService -> Gateway: 401 Unauthorized\n{error: "아이디 또는 비밀번호를 확인해주세요"} 41 | Gateway -> Client: 로그인 실패 메시지 42 | 43 | alt 5회 연속 실패 44 | UserService -> Redis: 계정 잠금 정보 저장\n(userId, lockTime: 30분) 45 | UserService -> Gateway: 423 Locked\n{error: "30분간 계정 잠금"} 46 | Gateway -> Client: 계정 잠금 안내 47 | end 48 | end 49 | 50 | deactivate UserService 51 | deactivate Gateway 52 | 53 | == 로그인 상태 확인 == 54 | Client -> Gateway: GET /api/v1/users/profile\n(Authorization: Bearer {token}) 55 | activate Gateway 56 | 57 | Gateway -> Gateway: JWT 토큰 검증 58 | 59 | alt 토큰 유효 60 | Gateway -> Redis: 세션 조회\n(userId) 61 | activate Redis 62 | Redis -> Gateway: 세션 정보 반환 63 | deactivate Redis 64 | 65 | Gateway -> UserService: 프로필 조회 66 | activate UserService 67 | UserService -> Gateway: 사용자 프로필 반환 68 | deactivate UserService 69 | 70 | Gateway -> Client: 200 OK\n{userId, name, email, avatar} 71 | Client -> Client: 프로필 표시\n(헤더 아바타) 72 | else 토큰 무효 73 | Gateway -> Client: 401 Unauthorized 74 | Client -> Client: 로그인 화면으로 이동 75 | end 76 | 77 | deactivate Gateway 78 | 79 | == 로그아웃 처리 == 80 | Client -> Client: 로그아웃 확인 다이얼로그 표시 81 | Client -> Gateway: POST /api/v1/users/auth/logout\n(Authorization: Bearer {token}) 82 | activate Gateway 83 | 84 | Gateway -> UserService: 로그아웃 요청 85 | activate UserService 86 | 87 | UserService -> Redis: 세션 삭제\n(userId) 88 | activate Redis 89 | Redis -> UserService: 삭제 완료 90 | deactivate Redis 91 | 92 | UserService -> Gateway: 200 OK\n{message: "안전하게 로그아웃되었습니다"} 93 | deactivate UserService 94 | 95 | Gateway -> Client: 로그아웃 완료 96 | deactivate Gateway 97 | 98 | Client -> Client: 토큰 삭제\n(localStorage) 99 | Client -> Client: 로그인 화면으로 이동 100 | 101 | note right of Client 102 | 대시보드(01) 화면의 헤더에서 103 | 프로필 아바타를 클릭하면 104 | 드롭다운 메뉴가 표시됨: 105 | - 내 정보 보기 106 | - 프로필 편집 107 | - 로그아웃 108 | end note 109 | 110 | note right of UserService 111 | 로그인 시 검증 사항: 112 | - 아이디/비밀번호 확인 113 | - 계정 잠금 상태 확인 114 | - 연속 실패 횟수 체크 115 | - JWT 토큰 생성 및 발급 116 | end note 117 | 118 | note right of Redis 119 | 캐시 저장 정보: 120 | - 세션 정보 (토큰, 사용자ID) 121 | - 로그인 실패 횟수 122 | - 계정 잠금 상태 123 | - TTL 기반 자동 만료 124 | end note 125 | 126 | @enduml -------------------------------------------------------------------------------- /guides/prompt/01.setup-prompt.md: -------------------------------------------------------------------------------- 1 | # 프로젝트 Instruction 설정 프롬프트 2 | 3 | - [프로젝트 Instruction 설정 프롬프트](#프로젝트-instruction-설정-프롬프트) 4 | - [사전 준비](#사전-준비) 5 | - [Instruction(CLAUDE.md) 파일 생성](#instructionclaudemd-파일-생성) 6 | - [프로젝트 지침 기능 이해](#프로젝트-지침-기능-이해) 7 | - [가이드 갱신](#가이드-갱신) 8 | - [프롬프트 명령어 생성](#프롬프트-명령어-생성) 9 | 10 | --- 11 | 12 | ## 사전 준비 13 | **1.프로젝트 디렉토리 생성** 14 | 기획/설계/개발을 위한 프론트엔드 또는 백엔드 프로젝트 디렉토리를 만듭니다. 15 | 디렉토리 위치는 '~/home/workspace' 디렉토리 하위에 만듭니다. 16 | 터미널을 열고 아래 명령을 수행합니다. 17 | 윈도우 사용자는 Window 터미널을 실행하고 Git base 터미널을 이용합니다. 18 | ``` 19 | mkdir -p ~/home/workspace/{프로젝트 디렉토리명} 20 | ``` 21 | 22 | **2.IDE실행** 23 | vscode나 IntelliJ를 실행합니다. 24 | 25 | **3.YOLO모드 전환** 26 | YOLO모드는 사용자에게 중간 중간 확인받지 않고 Claude Code가 바로 수행하는 옵션입니다. 27 | 프롬프트창에서 '/exit'를 실행하여 종료합니다. 28 | 콘솔창에 아래 명령을 수행합니다. 29 | ``` 30 | claude-yolo 31 | ``` 32 | 참고) 33 | - 'claude-normal'로 Safe 모드로 전환할 수 있습니다. 34 | - 'claude-help'로 다른 명령을 볼 수 있습니다. 35 | 36 | ## Instruction(CLAUDE.md) 파일 생성 37 | - claude 또는 cy 명령으로 Claude Code 실행 38 | ``` 39 | claude 40 | ``` 41 | 42 | - 프로젝트 지침 작성 요청 43 | 1)프로젝트 지침 생성 가이드 다운로드: 아래 프롬프트를 실행합니다. 44 | ``` 45 | 아래 프로젝트 지침을 'claude/instruction-guide.md'에 다운로드 함. 46 | WebFetch가 아닌 'curl {URL} > claude/{filename}'명령으로 저장 47 | [프로젝트 지침 가이드] 48 | - 설명: 프로젝트의 인스트럭션 파일 'CLAUDE.md'파일 구성 가이드 49 | - URL: https://raw.githubusercontent.com/cna-bootcamp/clauding-guide/refs/heads/main/guides/setup/03.instruction-guide.md 50 | - 파일명: instruction-guide.md 51 | ``` 52 | 53 | 2)프로젝트 지침(CLAUDE.md)생성: 프로젝트명과 목표를 본인의 프로젝트에 맞게 수정하여 프롬프트창에 붙여 넣습니다. 54 | ``` 55 | - 'instruction-guide.md' 파일을 읽어 아래 정보를 참조하여 지침을 작성함 56 | - 프로젝트명: 여행 일정 생성 서비스 57 | - 목표: AI 기반 여행 상세 일정 생성 서비스 개발 58 | ``` 59 | 60 | 3)프로젝트 지침 생성 확인: 루트 디렉토리에 CLAUDE.md파일이 생성되었는지 확인합니다. 61 | 62 | --- 63 | 64 | ## 프로젝트 지침 기능 이해 65 | 66 | **1.팀 구성 및 역할** 67 | - **Agentic Workflow**: 가상 팀원이 각자의 전문성으로 협업하도록 멤버 구성 68 | - **역할별 응답**: 답변 시 해당 팀원의 닉네임으로 응답 69 | 70 | **2.협업 가이드** 71 | - **요청 처리**: 'a:' prefix 또는 prefix 없는 메시지는 요청으로 처리 72 | - **최적안 도출**: 'o:'로 시작하면 10회 반복 평가 후 최적안 제시 73 | - **팀 행동원칙**: Value-Oriented, Interactive, Iterative 기반 협업 74 | 75 | **3.개발 환경 설정** 76 | - **Git 연동**: pull/push 명령어로 Git 작업 자동화 (한글 커밋 메시지) 77 | - **URL 참조**: curl 명령으로 파일 다운로드 후 작업, 완료 시 삭제 78 | - **가이드 로딩**: GitHub의 Clauding Guide 다운로드 및 동기화 79 | 80 | **4.개발 표준** 81 | - **병렬 처리**: Task 도구로 서비스별 동시 작업 진행 82 | - **마이크로서비스**: 독립성 유지, 캐시 우선 정책, 선택적 비동기 처리 83 | - **다이어그램**: PlantUML mono 테마, OpenAPI 3.0 표준 준수 84 | - **문법 검사**: PlantUML, Mermaid, OpenAPI 필수 검증 85 | 86 | **5.산출물 관리** 87 | - **디렉토리 구조**: 설계 문서별 표준 경로 지정 88 | - **문서 체계**: 유저스토리부터 물리 아키텍처까지 단계별 산출물 관리 89 | 90 | **6.프롬프트 약어** 91 | - **역할 약어**: @archi, @front, @back 등으로 팀원 지정 92 | - **작업 약어**: @userstory, @uiux, @prototype 등으로 작업 유형 지정 93 | - **파일 약어**: @error, @info로 디버그 이미지 참조 94 | 95 | --- 96 | 97 | ## 가이드 갱신 98 | 기획, 설계, 개발에 이용되는 가이드가 이미 CLAUDE.md에 추가되어 있습니다. 99 | 이를 갱신하려면 프롬프트창에 '가이드 로딩'이라고 입력하면 됩니다. 100 | 이미 추가 되어 있으므로 추가로 작업할 필요는 없습니다. 101 | 102 | --- 103 | 104 | ## 프롬프트 명령어 생성 105 | 기획, 설계, 개발에 이용되는 커스텀 명령어를 작성합니다. 106 | 107 | - 프롬프트 명령어 생성 108 | 프롬프트 창에 '프롬프트 로딩'이라고 입력합니다. 109 | Claude Code를 종료하고 다시 시작합니다. 110 | 종료는 프롬프트에 '/exit'라고 입력하면 됩니다. 111 | 112 | - 생성확인 113 | './claude/commands' 디렉토리 하위에 각 작업 단계별 명령어 파일이 생성된것을 확인합니다. 114 | 115 | - 작업 단계별 명령어 이해 116 | think, design, develop, deploy 디렉토리 밑의 'help.md'파일을 참고 하십시오. 117 | 118 | - 프롬프트 창에서 명령어 추가 확인 119 | '/{작업단계}-{작업}'를 입력했을 때 명령어가 나오는 지 확인합니다. 120 | 121 | 예) /think-userstory 122 | -------------------------------------------------------------------------------- /references/제품버전참조.md: -------------------------------------------------------------------------------- 1 | # 개발언어, 개발 프레임워크, AI제품 등의 버전 참조 2 | 3 | ## 백엔드 언어 4 | Java 5 | - 공식 릴리즈 페이지: https://www.oracle.com/java/technologies/downloads/ 6 | - OpenJDK: https://openjdk.org/ 7 | - Spring Boot 버전: https://spring.io/projects/spring-boot#learn 8 | 9 | Python 10 | - 공식 버전: https://www.python.org/downloads/ 11 | - 릴리즈 노트: https://docs.python.org/3/whatsnew/ 12 | 13 | Node.js 14 | - 공식 릴리즈: https://nodejs.org/en/ 15 | - 릴리즈 일정: https://github.com/nodejs/release#release-schedule 16 | 17 | .NET/C# 18 | - 공식 버전: https://dotnet.microsoft.com/en-us/download 19 | - .NET 릴리즈: https://github.com/dotnet/core/blob/main/releases.md 20 | 21 | Go 22 | - 공식 다운로드: https://go.dev/dl/ 23 | - 릴리즈 히스토리: https://go.dev/doc/devel/release 24 | 25 | Ruby 26 | - 공식 릴리즈: https://www.ruby-lang.org/en/downloads/ 27 | - Ruby on Rails: https://rubyonrails.org/ 28 | 29 | PHP 30 | - 공식 다운로드: https://www.php.net/downloads 31 | - 지원 버전: https://www.php.net/supported-versions.php 32 | 33 | Rust 34 | - 공식 릴리즈: https://www.rust-lang.org/ 35 | - 릴리즈 노트: https://github.com/rust-lang/rust/blob/master/RELEASES.md 36 | 37 | ## 프론트엔드 언어 38 | JavaScript/TypeScript 39 | - TypeScript 공식: https://www.typescriptlang.org/ 40 | - TypeScript 릴리즈: https://github.com/microsoft/TypeScript/releases 41 | - ECMAScript 사양: https://tc39.es/ecma262/ 42 | 43 | React 44 | - 공식 사이트: https://react.dev/ 45 | - 릴리즈 노트: https://github.com/facebook/react/releases 46 | - React 버전: https://react.dev/versions 47 | 48 | Next.js 49 | - 공식 사이트: https://nextjs.org/ 50 | - 릴리즈 노트: https://github.com/vercel/next.js/releases 51 | - 버전 히스토리: https://nextjs.org/docs/app/building-your-application/upgrading 52 | 53 | Vue.js 54 | - 공식 사이트: https://vuejs.org/ 55 | - 릴리즈 노트: https://github.com/vuejs/core/releases 56 | - 버전 가이드: https://vuejs.org/guide/introduction.html#api-styles 57 | 58 | Angular 59 | - 공식 사이트: https://angular.io/ 60 | - 릴리즈 일정: https://angular.io/guide/releases 61 | - 버전 목록: https://github.com/angular/angular/releases 62 | 63 | Svelte 64 | - 공식 사이트: https://svelte.dev/ 65 | - 릴리즈: https://github.com/sveltejs/svelte/releases 66 | 67 | 패키지 매니저 68 | - npm 레지스트리: https://www.npmjs.com/ 69 | - Yarn: https://yarnpkg.com/ 70 | - pnpm: https://pnpm.io/ 71 | 72 | 번들러/빌드 도구 73 | - Vite: https://vitejs.dev/ 74 | - Webpack: https://webpack.js.org/ 75 | - Turbopack: https://turbo.build/pack 76 | 77 | ## AI 서비스/모델 78 | OpenAI (GPT) 79 | - 모델 목록: https://platform.openai.com/docs/models 80 | - API 참조: https://platform.openai.com/docs/api-reference 81 | 82 | Anthropic (Claude) 83 | - 모델 문서: https://docs.anthropic.com/claude/docs/models-overview 84 | - API 참조: https://docs.anthropic.com/claude/reference/getting-started-with-the-api 85 | 86 | Google (Gemini/PaLM) 87 | - Vertex AI 모델: https://cloud.google.com/vertex-ai/docs/generative-ai/learn/models 88 | - Gemini API: https://ai.google.dev/models/gemini 89 | 90 | Microsoft Azure OpenAI 91 | - 모델 카탈로그: https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models 92 | - API 버전: https://learn.microsoft.com/en-us/azure/ai-services/openai/reference 93 | 94 | Amazon Bedrock 95 | - 모델 제공자: https://docs.aws.amazon.com/bedrock/latest/userguide/model-ids.html 96 | - 지원 모델: https://aws.amazon.com/bedrock/pricing/ 97 | 98 | Meta (Llama) 99 | - 모델 페이지: https://llama.meta.com/ 100 | - GitHub: https://github.com/meta-llama/llama3 101 | 102 | Mistral AI 103 | - 모델 문서: https://docs.mistral.ai/platform/endpoints/ 104 | 105 | Cohere 106 | - 모델 가이드: https://docs.cohere.com/docs/models 107 | 108 | Stability AI (이미지 생성) 109 | - 모델 정보: https://platform.stability.ai/docs/getting-started/models 110 | 111 | -------------------------------------------------------------------------------- /guides/deploy/deploy-k8s-front-minikube.md: -------------------------------------------------------------------------------- 1 | # 프론트엔드 배포 가이드 2 | 3 | [요청사항] 4 | - 프론트엔드 서비스를 쿠버네티스에 배포하기 위한 매니페스트 파일 작성 5 | - 매니페스트 파일 작성까지만 하고 실제 배포는 수행방법만 가이드 6 | - '[결과파일]'에 수행한 명령어를 포함하여 배포 가이드 레포트 생성 7 | 8 | [작업순서] 9 | - 실행정보 확인 10 | 프롬프트의 '[실행정보]'섹션에서 아래정보를 확인 11 | - {시스템명}: 대표 시스템 이름 12 | - {IMG_REG}: 컨테이너 이미지 레지스트리 주소 13 | - {IMG_ORG}: 컨테이너 이미지 Organization 주소 14 | - {BACKEND_HOST}: Baeckend 게이트웨이의 Ingress Host 주소 15 | - {FRONTEND_HOST}: 프론트엔드 Ingress Host 주소 16 | - {네임스페이스}: 배포할 네임스페이스 17 | - {파드수}: 생성할 파드수 18 | - {리소스(CPU)}: 요청값/최대값 19 | - {리소스(메모리)}: 요청값/최대값 20 | 예시) 21 | ``` 22 | [실행정보] 23 | - 시스템명: tripgen 24 | - IMG_REG: docker.io 25 | - IMG_ORG: hiondal 26 | - BACKEND_HOST: phonebill-api.72.155.72.236.nip.io 27 | - FRONTEND_HOST: phonebill.72.155.72.236.nip.io 28 | - 네임스페이스: tripgen 29 | - 파드수: 2 30 | - 리소스(CPU): 256m/1024m 31 | - 리소스(메모리): 256Mi/1024Mi 32 | ``` 33 | 34 | - 서비스명 확인 35 | package.json의 "name" 필드값이 서비스명임. 36 | 예시) 아래 예에서는 'tripgen-front'가 서비스명임. 37 | ``` 38 | { 39 | "name": "tripgen-front", 40 | "private": true, 41 | ``` 42 | 43 | - 매니페스트 작성 주의사항 44 | - namespace는 명시: {네임스페이스}값 이용 45 | - 객체이름 네이밍룰 46 | - Ingress: {서비스명} 47 | - ConfigMap: cm-{서비스명} 48 | - Service: {서비스명} 49 | - Secret: {서비스명} 50 | - Deployment: {서비스명} 51 | 52 | - 매니페스트 작성: deployment/k8s/ 디렉토리 하위에 작성 53 | - ConfigMap 매니페스트 작성 54 | - public/runtime-env.js의 내용을 읽음 55 | - 파일명 runtime-env.js를 키로 하고 파일 내용을 값으로 하는 ConfigMap 매니페스트 작성 56 | 단, 내용에서 백엔드 API 주소의 'http://Host:Port'를 'http://{BACKEND_HOST}'로 변경 57 | 예시) 58 | AUTH_API_URL: 'http://localhost:8081/api' 59 | -> AUTH_API_URL: 'http://tripgen.20.214.196.128.nip.io/api' 60 | 61 | - Ingress 매니페스트 작성 62 | - ingressClassName: nginx 63 | - host: {FRONTEND_HOST} 64 | - path: '/' 65 | - pathType: Prefix 66 | - backend.service.name: {서비스명} 67 | - backend.service.port.number: 8080 68 | 69 | - Service 매니페스트 작성 70 | - name: {서비스명} 71 | - port: 8080 72 | - targetPort: 8080 73 | - type: ClusterIP 74 | 75 | - Deployment 매니페스트 작성 76 | - name: {서비스명} 77 | - replicas: {파드수} 78 | - ImagePullPolicy: Always 79 | - ImagePullSecrets: {시스템명} 80 | - image: {IMG_REG}/{IMG_ORG}/{서비스명}:latest 81 | - resources: 82 | - {리소스(CPU)}: 요청값/최대값 83 | - {리소스(메모리)}: 요청값/최대값 84 | - Probe: 85 | - Startup Probe: '/health'로 지정 86 | - Readiness Probe: '/health'로 지정 87 | - Liveness Probe: Actuator '/health'로 지정 88 | - initialDelaySeconds, periodSeconds, failureThreshold를 Probe에 맞게 적절히 지정 89 | - volume mount 90 | - ConfigMap cm-{서비스명}를 '/usr/share/nginx/html/runtime-env.js'로 마운트 91 | 92 | - 체크 리스트로 수행결과 검증: 반드시 수행하고 그 결과를 배포 가이드에 포함 93 | - 객체이름 네이밍룰 준수 여부 94 | - Ingress 매니페스트의 서비스 backend.service.port.number와 Service 매니페스트의 port가 "8080"으로 동일한가 ? 95 | - Service 매니페스트의 targetPort가 8080인가? 96 | - Image명이 '{IMG_REG}/{IMG_ORG}/{서비스명}:latest' 형식인지 재확인 97 | - ConfigMap 'cm-{서비스명}'의 data 내용 확인 98 | - key는 runtime-env.js인가? 99 | - value에 각 백엔드 API 주소의 Host가 {BACKEND_HOST}인가 ? 100 | 101 | - 배포 가이드 작성 102 | - 배포가이드 검증 결과 103 | - 사전확인 방법 가이드 104 | - namespace 존재 확인 105 | ``` 106 | kubectl get ns {네임스페이스} 107 | ``` 108 | - 매니페스트 적용 가이드 109 | ``` 110 | kubectl apply -f deployment/k8s 111 | ``` 112 | - 객체 생성 확인 가이드 113 | 114 | - 115 | [결과파일] 116 | - 배포방법 가이드: deployment/k8s/deploy-k8s-guide.md 117 | - 매니페스트 파일: deployment/k8s/* 118 | 119 | -------------------------------------------------------------------------------- /guides/deploy/build-image-front.md: -------------------------------------------------------------------------------- 1 | # 프론트엔드 컨테이너이미지 작성가이드 2 | 3 | [요청사항] 4 | - 프론트엔드 서비스의 컨테이너 이미지 생성 5 | - 실제 빌드 수행 및 검증까지 완료 6 | - '[결과파일]'에 수행한 명령어를 포함하여 컨테이너 이미지 작성 과정 생성 7 | 8 | [작업순서] 9 | - 서비스명 구하기 10 | package.json의 "name" 필드값이 서비스명임. 11 | 예시) 아래예에서는 'tripgen-front'가 서비스명임. 12 | ``` 13 | { 14 | "name": "tripgen-front", 15 | "private": true, 16 | ``` 17 | - package.json과 package-lock.json 일치 18 | 아래 명령을 수행합니다. 19 | ``` 20 | npm install 21 | ``` 22 | - nginx.conf 파일 생성 23 | 아래 내용으로 deployment/container/nginx.conf 파일 생성 24 | ``` 25 | server { 26 | listen 8080; 27 | server_name localhost; 28 | 29 | location / { 30 | root /usr/share/nginx/html; 31 | index index.html index.htm; 32 | try_files $uri $uri/ /index.html; 33 | 34 | # Cache static files 35 | location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ { 36 | expires 1y; 37 | add_header Cache-Control "public, no-transform"; 38 | } 39 | } 40 | 41 | # Health check endpoint 42 | location /health { 43 | access_log off; 44 | return 200 'healthy\n'; 45 | add_header Content-Type text/plain; 46 | } 47 | 48 | # Error pages 49 | error_page 500 502 503 504 /50x.html; 50 | location = /50x.html { 51 | root /usr/share/nginx/html; 52 | } 53 | } 54 | ``` 55 | 56 | - Dockerfile 생성 57 | 아래 내용으로 deployment/container/Dockerfile-frontend 생성 58 | ``` 59 | # Build stage 60 | FROM node:20-slim AS builder 61 | ARG PROJECT_FOLDER 62 | ENV NODE_ENV=development 63 | 64 | WORKDIR /app 65 | 66 | # Install dependencies 67 | COPY ${PROJECT_FOLDER}/package*.json ./ 68 | RUN npm ci 69 | 70 | # Build application 71 | COPY ${PROJECT_FOLDER} . 72 | # Fix rollup optional dependencies issue 73 | RUN rm -rf node_modules package-lock.json && npm install 74 | RUN npm run build 75 | 76 | # Run stage 77 | FROM nginx:stable-alpine 78 | 79 | ARG BUILD_FOLDER 80 | ARG EXPORT_PORT 81 | 82 | # Create nginx user if it doesn't exist 83 | RUN adduser -S nginx || true 84 | 85 | # Copy build files 86 | COPY --from=builder /app/dist /usr/share/nginx/html 87 | 88 | # Copy and process nginx configuration 89 | COPY ${BUILD_FOLDER}/nginx.conf /etc/nginx/templates/default.conf.template 90 | 91 | # Add custom nginx settings 92 | RUN echo "client_max_body_size 100M;" > /etc/nginx/conf.d/client_max_body_size.conf && \ 93 | echo "proxy_buffer_size 128k;" > /etc/nginx/conf.d/proxy_buffer_size.conf && \ 94 | echo "proxy_buffers 4 256k;" > /etc/nginx/conf.d/proxy_buffers.conf && \ 95 | echo "proxy_busy_buffers_size 256k;" > /etc/nginx/conf.d/proxy_busy_buffers_size.conf 96 | 97 | # Set permissions 98 | RUN chown -R nginx:nginx /usr/share/nginx/html && \ 99 | chmod -R 755 /usr/share/nginx/html && \ 100 | chown -R nginx:nginx /var/cache/nginx && \ 101 | chown -R nginx:nginx /var/log/nginx && \ 102 | chown -R nginx:nginx /etc/nginx/conf.d && \ 103 | touch /var/run/nginx.pid && \ 104 | chown -R nginx:nginx /var/run/nginx.pid 105 | 106 | USER nginx 107 | 108 | EXPOSE ${EXPORT_PORT} 109 | 110 | CMD ["nginx", "-g", "daemon off;"] 111 | ``` 112 | 113 | - 컨테이너 이미지 생성 114 | 아래 명령으로 각 서비스 빌드. shell 파일을 생성하지 말고 command로 수행. 115 | ``` 116 | DOCKER_FILE=deployment/container/Dockerfile-frontend 117 | 118 | docker build \ 119 | --platform linux/amd64 \ 120 | --build-arg PROJECT_FOLDER="." \ 121 | --build-arg BUILD_FOLDER="deployment/container" \ 122 | --build-arg EXPORT_PORT="8080" \ 123 | -f ${DOCKER_FILE} \ 124 | -t {서비스명}:latest . 125 | ``` 126 | - 생성된 이미지 확인 127 | 아래 명령으로 모든 서비스의 이미지가 빌드되었는지 확인 128 | ``` 129 | docker images | grep {서비스명} 130 | ``` 131 | 132 | [결과파일] 133 | deployment/container/build-image.md 134 | -------------------------------------------------------------------------------- /guides/prompt/04.develop-prompt.md: -------------------------------------------------------------------------------- 1 | # 개발 프롬프트 2 | 3 | ## 데이터베이스 설치계획서 작성 요청 4 | command: "/develop-db-guide" 5 | prompt: 6 | ``` 7 | @backing-service 8 | "데이터베이스설치계획서가이드"에 따라 데이터베이스 설치계획서를 작성해 주십시오. 9 | ``` 10 | 11 | --- 12 | 13 | ## 데이터베이스 설치 수행 요청 14 | command: "/develop-db-install" 15 | prompt: 16 | ``` 17 | @backing-service 18 | [요구사항] 19 | '데이터베이스설치가이드'에 따라 설치해 주세요. 20 | '[설치정보]'섹션이 없으면 수행을 중단하고 안내 메시지를 표시하세요. 21 | {안내메시지} 22 | '[설치정보]'섹션 하위에 아래 예와 같이 설치에 필요한 정보를 추가해 주세요. 23 | - 설치대상환경: 개발환경 24 | - AKS Resource Group: rg-digitalgarage-01 25 | - AKS Name: aks-digitalgarage-01 26 | - Namespace: tripgen-dev 27 | ``` 28 | 29 | --- 30 | 31 | ## 데이터베이스 설치 제거 요청 (필요시) 32 | command: "/develop-db-remove" 33 | prompt: 34 | ``` 35 | @backing-service 36 | [요구사항] 37 | - "데이터베이스설치결과서"를 보고 관련된 모든 리소스를 삭제 38 | - "캐시설치결과서"를 보고 관련된 모든 리소스를 삭제 39 | - 현재 OS에 맞게 수행 40 | - 서브 에이젼트를 병렬로 수행하여 삭제 41 | - 결과파일은 생성할 필요 없고 화면에만 결과 표시 42 | [참고자료] 43 | - 데이터베이스설치결과서 44 | - 캐시설치결과서 45 | ``` 46 | 47 | --- 48 | 49 | ## Message Queue 설치 계획서 작성 요청 50 | command: "/develop-mq-guide" 51 | prompt: 52 | ``` 53 | @backing-service 54 | "MQ설치게획서가이드"에 따라 Message Queue 설치계획서를 작성해 주세요. 55 | ``` 56 | 57 | --- 58 | 59 | ## Message Queue 설치 수행 요청(필요시) 60 | command: "/develop-mq-install" 61 | prompt: 62 | ``` 63 | @backing-service 64 | [요구사항] 65 | 'MQ설치가이드'에 따라 설치해 주세요. 66 | '[설치정보]'섹션이 없으면 수행을 중단하고 안내 메시지를 표시하세요. 67 | {안내메시지} 68 | '[설치정보]'섹션 하위에 아래 예와 같이 설치에 필요한 정보를 추가해 주세요. 69 | - 설치대상환경: 개발환경 70 | - Resource Group: rg-digitalgarage-01 71 | - Namespace: tripgen-dev 72 | ``` 73 | 74 | --- 75 | 76 | ## Message Queue 설치 제거 요청 77 | command: "/develop-mq-remove" 78 | prompt: 79 | ``` 80 | @backing-service 81 | [요구사항] 82 | - "MQ설치결과서"를 보고 관련된 모든 리소스를 삭제 83 | - 현재 OS에 맞게 수행 84 | - 서브 에이젼트를 병렬로 수행하여 삭제 85 | - 결과파일은 생성할 필요 없고 화면에만 결과 표시 86 | [참고자료] 87 | - MQ설치결과서 88 | ``` 89 | 90 | --- 91 | 92 | ## 백엔드 개발 요청 93 | command: "/develop-dev-backend" 94 | prompt: 95 | ``` 96 | @dev-backend 97 | "백엔드개발가이드"에 따라 개발해 주세요. 98 | 프롬프트에 '[개발정보]'항목이 없으면 수행을 중단하고 안내 메시지를 표시해 주세요. 99 | {안내메시지} 100 | [개발정보] 101 | - 개발 아키텍처패턴 102 | - auth: Layered 103 | - bill-inquiry: Clean 104 | - product-change: Layered 105 | - kos-mock: Layered 106 | ``` 107 | 108 | --- 109 | 110 | ## 백엔드 오류 해결 요청 111 | command: "/develop-fix-backend" 112 | prompt: 113 | ``` 114 | @fix as @back 115 | 개발된 각 서비스와 common 모듈을 컴파일하고 에러를 해결해 주세요. 116 | - common 모듈 우선 수행 117 | - 각 서비스별로 서브 에이젠트를 병렬로 수행 118 | - 컴파일이 모두 성공할때까지 계속 수행 119 | ``` 120 | 121 | --- 122 | 123 | ## 서비스 실행파일 작성 요청 124 | command: "/develop-make-run-profile" 125 | prompt: 126 | ``` 127 | @test-backend 128 | '서비스실행파일작성가이드'에 따라 테스트를 해 주세요. 129 | 프롬프트에 '[작성정보]'항목이 없으면 수행을 중단하고 안내 메시지를 표시해 주세요. 130 | DB나 Redis의 접근 정보는 지정할 필요 없습니다. 특별히 없으면 '[작성정보]'섹션에 '없음'이라고 하세요. 131 | {안내메시지} 132 | [작성정보] 133 | - API Key 134 | - Claude: sk-ant-ap... 135 | - OpenAI: sk-proj-An4Q... 136 | - Open Weather Map: 1aa5b... 137 | - Kakao API Key: 5cdc24.... 138 | ``` 139 | 140 | --- 141 | 142 | ## 백엔드 테스트 요청 143 | command: "/develop-test-backend" 144 | prompt: 145 | ``` 146 | @test-backend 147 | '백엔드테스트가이드'에 따라 테스트를 해 주세요. 148 | 프롬프트에 '[테스트정보]'항목이 없으면 수행을 중단하고 안내 메시지를 표시해 주세요. 149 | 테스트 대상 서비스를 지정안하면 모든 서비스를 테스트 합니다. 150 | {안내메시지} 151 | '[테스트정보]'섹션 하위에 아래 예와 같이 테스트에 필요한 정보를 제시해 주세요. 152 | 테스트 대상 서비스를 콤마로 구분하여 입력할 수 있으며 전체를 테스트 할 때는 '전체'라고 입력하세요. 153 | - 서비스: user-service 154 | - API Key 155 | - Claude: sk-ant-ap... 156 | - OpenAI: sk-proj-An4Q... 157 | - Open Weather Map: 1aa5b... 158 | - Kakao API Key: 5cdc24.... 159 | ``` 160 | 161 | --- 162 | 163 | ## 프론트엔드 개발 요청 164 | command: "/develop-dev-front" 165 | prompt: 166 | ``` 167 | @dev-front 168 | "프론트엔드개발가이드"에 따라 개발해 주세요. 169 | 프롬프트에 '[개발정보]'항목이 없으면 수행을 중단하고 안내 메시지를 표시해 주세요. 170 | {안내메시지} 171 | '[개발정보]'섹션 하위에 아래 예와 같이 개발에 필요한 정보를 제시해 주세요. 172 | [개발정보] 173 | - 개발프레임워크: Typescript + React 18 174 | - UI프레임워크: MUI v5 175 | - 상태관리: Redux Toolkit 176 | - 라우팅: React Router v6 177 | - API통신: Axios 178 | - 스타일링: MUI + styled-components 179 | - 빌드도구: Vite 180 | ``` -------------------------------------------------------------------------------- /guides/deploy/deploy-k8s-front.md: -------------------------------------------------------------------------------- 1 | # 프론트엔드 배포 가이드 2 | 3 | [요청사항] 4 | - 프론트엔드 서비스를 쿠버네티스에 배포하기 위한 매니페스트 파일 작성 5 | - 매니페스트 파일 작성까지만 하고 실제 배포는 수행방법만 가이드 6 | - '[결과파일]'에 수행한 명령어를 포함하여 배포 가이드 레포트 생성 7 | 8 | [작업순서] 9 | - 실행정보 확인 10 | 프롬프트의 '[실행정보]'섹션에서 아래정보를 확인 11 | - {시스템명}: 대표 시스템 이름 12 | - {ACR명}: 컨테이너 레지스트리 이름 13 | - {k8s명}: Kubernetes 클러스터 이름 14 | - {네임스페이스}: 배포할 네임스페이스 15 | - {파드수}: 생성할 파드수 16 | - {리소스(CPU)}: 요청값/최대값 17 | - {리소스(메모리)}: 요청값/최대값 18 | - {Gateway Host}: API Gateway의 Host명 19 | 예시) 20 | ``` 21 | [실행정보] 22 | - 시스템명: tripgen 23 | - ACR명: acrdigitalgarage01 24 | - k8s명: aks-digitalgarage-01 25 | - 네임스페이스: tripgen 26 | - 파드수: 2 27 | - 리소스(CPU): 256m/1024m 28 | - 리소스(메모리): 256Mi/1024Mi 29 | - Gateway Host: http://tripgen-api.20.214.196.128.nip.io 30 | ``` 31 | 32 | - 서비스명 확인 33 | package.json의 "name" 필드값이 서비스명임. 34 | 예시) 아래 예에서는 'tripgen-front'가 서비스명임. 35 | ``` 36 | { 37 | "name": "tripgen-front", 38 | "private": true, 39 | ``` 40 | 41 | - 매니페스트 작성 주의사항 42 | - namespace는 명시: {네임스페이스}값 이용 43 | - 객체이름 네이밍룰 44 | - Ingress: {서비스명} 45 | - ConfigMap: cm-{서비스명} 46 | - Service: {서비스명} 47 | - Secret: {서비스명} 48 | - Deployment: {서비스명} 49 | 50 | - 매니페스트 작성: deployment/k8s/ 디렉토리 하위에 작성 51 | - ConfigMap 매니페스트 작성 52 | - public/runtime-env.js의 내용을 읽음 53 | - 파일명 runtime-env.js를 키로 하고 파일 내용을 값으로 하는 ConfigMap 매니페스트 작성 54 | 단, 내용에서 백엔드 API 주소의 'http://Host:Port'를 '{Gateway Host}'로 변경 55 | 예시) 56 | AUTH_API_URL: 'http://localhost:8081/api' 57 | -> AUTH_API_URL: 'http://tripgen.20.214.196.128.nip.io/api' 58 | 59 | - Ingress 매니페스트 작성 60 | - **중요**: Ingress Host는 반드시 아래 명령으로 실제 External IP를 확인하여 사용할 것 61 | ``` 62 | kubectl get svc ingress-nginx-controller -n ingress-nginx 63 | ``` 64 | 출력 예시: EXTERNAL-IP 컬럼에서 실제 IP 확인 (예:20.214.196.128) 65 | - ingressClassName: nginx 66 | - host: {시스템명}.{실제확인한 External-IP}.nip.io 67 | **잘못된 예**: tripgen.임의IP.nip.io ❌ 68 | **올바른 예**: tripgen.20.214.196.128.nip.io ✅ 69 | - path: '/' 70 | - pathType: Prefix 71 | - backend.service.name: {서비스명} 72 | - backend.service.port.number: 8080 73 | 74 | - Service 매니페스트 작성 75 | - name: {서비스명} 76 | - port: 8080 77 | - targetPort: 8080 78 | - type: ClusterIP 79 | 80 | - Deployment 매니페스트 작성 81 | - name: {서비스명} 82 | - replicas: {파드수} 83 | - ImagePullPolicy: Always 84 | - ImagePullSecrets: {시스템명} 85 | - image: {ACR명}.azurecr.io/{시스템명}/{서비스명}:latest 86 | - resources: 87 | - {리소스(CPU)}: 요청값/최대값 88 | - {리소스(메모리)}: 요청값/최대값 89 | - Probe: 90 | - Startup Probe: '/health'로 지정 91 | - Readiness Probe: '/health'로 지정 92 | - Liveness Probe: Actuator '/health'로 지정 93 | - initialDelaySeconds, periodSeconds, failureThreshold를 Probe에 맞게 적절히 지정 94 | - volume mount 95 | - ConfigMap cm-{서비스명}를 '/usr/share/nginx/html/runtime-env.js'로 마운트 96 | 97 | - 체크 리스트로 수행결과 검증: 반드시 수행하고 그 결과를 배포 가이드에 포함 98 | - 객체이름 네이밍룰 준수 여부 99 | - Ingress Controller External IP 확인 및 매니페스트에 반영 확인 100 | kubectl get svc ingress-nginx-controller -n ingress-nginx 101 | EXTERNAL-IP 컬럼의 실제 값이 ingress.yaml의 host에 정확하게 설정되었는지 재확인할 것 102 | - Ingress 매니페스트의 서비스 backend.service.port.number와 Service 매니페스트의 port가 "8080"으로 동일한가 ? 103 | - Service 매니페스트의 targetPort가 8080인가? 104 | - Image명이 '{ACR명}.azurecr.io/{시스템명}/{서비스명}:latest' 형식인지 재확인 105 | - ConfigMap 'cm-{서비스명}'의 data 내용 확인 106 | - key는 runtime-env.js인가? 107 | - value에 각 백엔드 API 주소의 Host가 {Gateway Host}인가 ? 108 | 109 | - 배포 가이드 작성 110 | - 배포가이드 검증 결과 111 | - 사전확인 방법 가이드 112 | - Azure 로그인 상태 확인 113 | ``` 114 | az account show 115 | ``` 116 | - AKS Credential 확인: 117 | ``` 118 | kubectl cluster-info 119 | ``` 120 | - namespace 존재 확인 121 | ``` 122 | kubectl get ns {네임스페이스} 123 | ``` 124 | - 매니페스트 적용 가이드 125 | ``` 126 | kubectl apply -f deployment/k8s 127 | ``` 128 | - 객체 생성 확인 가이드 129 | 130 | - 131 | [결과파일] 132 | - 배포방법 가이드: deployment/k8s/deploy-k8s-guide.md 133 | - 매니페스트 파일: deployment/k8s/* 134 | 135 | --------------------------------------------------------------------------------