이 글은 확실하게 성공하는 바이브 코딩 도구 사용 방법을 보여준다. 여기서는 바이브 코딩 도구로 PRD(Product Requirement Document) 작성은 Gemini Pro, 바이브 코딩 도구는 Github Copilot, 대형언어모델 LLM은 Claude Sonet을 사용했다(LLM은 본인 입맛에 맞게 사용하면 됨).
바이브 코딩 준비하기
바이브 코딩을 하는 방법은 다음과 같이 다양하다.
ChatGPT 에 코딩 요청을 해서 생성된 파이썬 같은 코드를 복사&붙여넣기해 프로그램을 완성해 나가는 방법
바이브 코딩 목적은 텍스트 편집기를 개발하는 것이다. 이를 위한 PRD를 작성하고, 바이브 코딩을 진행한다. PRD작성을 위해 프롬프트를 다음과 같이 입력한다.
GUI 기반 텍스트 편집기를 개발할꺼야. 파이썬과 Tkinter 라이브러리를 이용할꺼야. 메뉴는 파일 메뉴, 편집 메뉴, 테마 선택 메뉴(다크모드 하위 메뉴 포함), 찾기 메뉴로 구성됨. 이 프로그램 개발을 위한 PRD를 UI 스케치를 포함해 md 포맷으로 작성해.
사용할 라이브러리와 같은 기술 스택을 지정하는 것은 중요하다. 약간 시행착오를 하며 명확한 PRD가 작성될 수 있도록 프롬프트에 정확한 정보를 포함시킨다. md 포맷은 좀 더 명확한 문서형식작성을 위해 사용했다. md포맷은 markdown 파일형식으로 github에서 README 파일 작성할때 표준 형식이다.
다음은 이렇게 생성된 제품 요구사항 문서이다.
# **Python/Tkinter 기반 GUI 텍스트 편집기 제품 요구사항 명세서 (PRD)**
## **1. 개요**
본 문서는 파이썬(Python)과 표준 GUI 라이브러리인 티케이인터(Tkinter)를 사용하여 개발될 데스크톱 텍스트 편집기의 요구사항을 정의합니다. 이 애플리케이션은 기본적인 텍스트 편집 기능과 함께 사용자의 편의를 위한 다크 모드, 찾기 기능 등을 제공하는 것을 목표로 합니다.
## **2. 목표 사용자**
* **초보 개발자 및 학생**: 간단한 코드나 스크립트, 메모, 과제 등을 작성하고 편집하려는 사용자.
* **일반 사용자**: Windows 메모장과 같은 가볍고 빠른 텍스트 편집기가 필요한 사용자.
## **3. 핵심 기능**
### **3.1. 파일 메뉴**
| 기능 | 단축키 | 설명 |
| :--- | :--- | :--- |
| **새 파일** | `Ctrl+N` | 새로운 빈 편집 창을 엽니다. |
| **열기** | `Ctrl+O` | 기존 텍스트 파일 (`.txt` 등)을 불러옵니다. |
| **저장** | `Ctrl+S` | 현재 파일을 덮어쓰기 저장합니다. |
| **다른 이름으로 저장** | `Ctrl+Shift+S` | 새 이름이나 경로로 파일을 저장합니다. |
| **종료** | `Alt+F4` | 프로그램을 종료합니다. (저장되지 않은 내용이 있으면 경고) |
### **3.2. 편집 메뉴**
| 기능 | 단축키 | 설명 |
| :--- | :--- | :--- |
| **실행 취소 (Undo)** | `Ctrl+Z` | 마지막 작업을 되돌립니다. |
| **다시 실행 (Redo)** | `Ctrl+Y` | 되돌린 작업을 다시 실행합니다. |
* 프로그램이 안정적으로 실행되며, 일반적인 사용 환경에서 오류로 인해 종료되지 않습니다.
vscode에서 바이브 코딩하기
vscode를 실행하고, 생성된 PRD파일을 copilot에 알려주고, 이대로 프로그램 작성하도록 입력한다.
혹시, 에러가 발생하면, 메시지를 다시 입력해 수정하는 과정을 반복하면 된다. 다음 영상은 바이브 코딩 과정을 보여준다.
결과적으로 큰 문제 없이 편집기가 동작되는 것을 확인할 수 있다.
결론
바이브 코딩이 최근 매우 발전해서, 요구사항도 추론해주고, 심지어 SRS(Software Requirement Specification), SAD(Software Architecture Document)도 작성해 준다. 향후에는 말만 하면, 소프트웨어 공학에서 필수로 다루는 SRS, SAD뿐 아니라, UML(Unified Modeling Language)과 같은 아키텍처 설계도도 디자인패턴에 의거해 그려줄 날이 멀지 않은 것 같다.
다만, 소프트웨어 개발 과정에서 바이브 코딩 도구에 일을 시키려면, 당연히, 인턴에 업무 지시하는 수준의 능력은 필요하다.
예를 들어, 바이브 코딩 시 적절한 용어를 사용해야 하며, 수정되지 않은 어려운 문제나 에러가 발생하면, 생성된 코드를 이해하고 개선할 수 있는 능력은 당연히 필요하다 하겠다.
부록: 웹기반 텍스트 편집기 개발 및 깃허브 푸쉬하기
추가로, Tailwind 로 웹 기반 편집기도 개발해 보았다. 다음과 같이 자동으로 프로젝트 만들어 코딩되고, 실행된다.
이 글은 아마존의 아성을 위협하고 있는 집단지성 플랫폼 shopify를 소개한다. Shopify(쇼피파이)는 개인과 기업이 자신만의 온라인 쇼핑몰을 구축하고, 여러 채널을 통해 상품을 판매하며, 비즈니스 운영 전반을 관리할 수 있도록 지원하는 올인원(All-in-one) 전자상거래 플랫폼이다.
Shopify 개요
Shopify는 코딩이나 서버 관리에 대한 전문 지식이 없는 사용자도 손쉽게 전문가 수준의 온라인 스토어를 만들 수 있도록 설계된 SaaS(서비스형 소프트웨어)이다. 사용자는 직관적인 관리자 페이지를 통해 상품 등록, 재고 관리, 주문 처리, 결제 연동, 마케팅 캠페인 등 온라인 비즈니스에 필요한 모든 핵심 기능을 통합적으로 제어할 수 있다.
특히 Shopify는 단순한 쇼핑몰 제작 도구를 넘어, 강력한 생태계를 기반으로 한 '집단지성 플랫폼'의 성격을 띤다. 전 세계 개발자들이 만든 수천 개의 앱(App)을 제공하는 Shopify 앱 스토어를 통해 물류 자동화, 고객 서비스 챗봇, 특정 마케팅 기능 등 기본 기능에 없는 무한한 확장이 가능하다.
또한, 방대한 개발자 및 판매자 커뮤니티 포럼과 자료를 통해 문제 해결 방법이나 비즈니스 성장 전략을 공유하며 함께 발전하는 구조를 갖추고 있다. 이는 사용자가 개별적으로 모든 것을 해결하는 것이 아니라, 전 세계 Shopify 사용자와 개발자들의 경험과 지식을 활용해 비즈니스를 성장시킬 수 있음을 의미한다.
Shopify는 2006년, 캐나다의 개발자 토비아스 뤼트케(Tobias Lütke)와 그의 동업자들이 겪었던 개인적인 불편함에서 시작되었다. 그들은 '스노우데빌(Snowdevil)'이라는 이름의 스노보드 장비 온라인 쇼핑몰을 직접 창업하려 했다. 하지만 당시 시장에 존재하던 전자상거래 솔루션들은 너무 복잡하고, 비쌌으며, 유연성이 부족하다는 것을 깨달았다.
기존 도구에 만족하지 못한 토비아스 뤼트케는 직접 자신의 쇼핑몰을 위한 소프트웨어를 개발하기로 결심했다. 이 소프트웨어가 바로 Shopify의 전신이 되었다. 그는 자신들과 비슷한 어려움을 겪는 다른 소상공인과 창업자들이 많을 것이라 확신하고, 이 솔루션을 다른 사람들도 사용할 수 있는 플랫폼으로 발전시켰다.
편리한 Shopify 쇼핑몰 개발 도구
"상거래를 더 좋게, 모두를 위해(Making commerce better for everyone)"라는 사명 아래, 기술적 장벽을 낮추고 누구나 자신의 브랜드를 통해 온라인 판매를 시작할 수 있도록 돕는 것을 목표로 삼았다. 이 접근 방식은 전 세계 수많은 창업자들의 공감을 얻으며 Shopify가 글로벌 전자상거래 플랫폼으로 성장하는 핵심 원동력이 되었다.
유사 도구
Shopify와 유사한 기능을 제공하는 전자상거래 플랫폼은 다수 존재하며, 각각의 플랫폼은 목표 고객과 강점에 차이가 있다.
BigCommerce: Shopify와 직접적으로 경쟁하는 대표적인 SaaS 플랫폼이다. 특히 기본 기능에 내장된 판매 및 마케팅 도구가 풍부하여 별도의 앱 설치 없이도 다양한 기능을 활용할 수 있다는 장점이 있다. B2B(기업 간 거래) 기능과 다중 스토어 관리에 강점을 보인다. (BigCommerce 공식 웹사이트)
Wix eCommerce: 웹사이트 빌더로 널리 알려진 Wix가 제공하는 전자상거래 솔루션이다. 드래그 앤 드롭 방식의 매우 직관적인 디자인 편집 기능을 제공하여, 디자인 자유도를 중시하는 소규모 사업자나 크리에이터에게 인기가 높다. (Wix eCommerce 공식 웹사이트)
WooCommerce: 세계 최대의 CMS(콘텐츠 관리 시스템)인 워드프레스(WordPress)를 쇼핑몰로 변환해주는 오픈소스 플러그인이다. 이미 워드프레스 웹사이트를 운영 중인 사용자에게 적합하며, 소스코드에 직접 접근할 수 있어 개발 자유도가 매우 높다는 것이 가장 큰 특징이다. 다만, 호스팅, 보안, 유지보수를 사용자가 직접 관리해야 한다. (WooCommerce 공식 웹사이트)
Adobe Commerce (구 Magento): 중견 및 대기업을 대상으로 하는 고성능 오픈소스 플랫폼이다. 복잡한 상품 구성, 다국어 및 다중 통화 지원, 대규모 트래픽 처리 등 엔터프라이즈급 기능에 특화되어 있다. 높은 자유도를 제공하는 만큼, 구축과 운영에 전문적인 개발 지식이 요구된다. (Adobe Commerce 웹사이트)
구독 금액
Shopify는 현 시점에서 사업의 규모와 필요 기능에 따라 선택할 수 있는 다양한 월간 구독 요금제를 제공한다.
Basic 플랜: 월 $29 USD(연간 결제 시)부터 시작하며, 처음 온라인 판매를 시작하는 개인이나 소규모 비즈니스에 적합하다. 필수적인 쇼핑몰 기능, 상품 무제한 등록, 블로그, SSL 보안 인증서 등을 포함한다.
Shopify 플랜: 월 $79 USD(연간 결제 시)로, 성장하는 비즈니스를 위한 표준 요금제이다. Basic 플랜의 모든 기능을 포함하며, 더 낮은 결제 수수료, 전문적인 비즈니스 성과 보고서, 최대 5명의 관리자 계정 등 추가적인 기능을 제공한다.
Advanced 플랜: 월 $299 USD(연간 결제 시)의 고급 요금제로, 비즈니스 확장을 위한 고급 기능을 제공한다. 가장 낮은 결제 수수료, 고급 보고서 빌더, 제3자 배송사를 연동한 실시간 배송비 계산 기능 등이 포함된다.
Shopify Plus: 대규모 비즈니스와 엔터프라이즈를 위한 맞춤형 솔루션이다. 월 $2,300 USD부터 시작하며, 전담 지원 매니저, 무제한 확장성, 도매 채널(B2B), 고급 자동화 도구(Shopify Flow) 등 최고 수준의 기능과 지원을 제공한다.
무료 체험 가입: Shopify 공식 웹사이트에 접속하여 이메일 주소를 입력하고 몇 가지 기본 질문에 답하면 즉시 무료 체험을 시작할 수 있다. 이 기간 동안 대부분의 기능을 자유롭게 테스트하며 스토어를 구축할 수 있다.
상품 등록: 관리자 페이지의 '상품(Products)' 메뉴에서 판매할 상품의 이름, 상세 설명, 이미지, 가격, 재고 수량 등을 입력한다. 옵션(색상, 사이즈 등)이 다양한 상품도 쉽게 설정할 수 있다.
온라인 스토어 디자인: '온라인 스토어(Online Store)' 메뉴의 '테마(Themes)'로 이동하여 비즈니스 컨셉에 맞는 디자인 템플릿을 선택한다. Shopify는 다양한 무료 및 유료 테마를 제공하며, 코딩 없이도 로고, 색상, 레이아웃 등을 손쉽게 변경할 수 있다.
도메인 연결: 나만의 브랜드 주소를 사용하기 위해 '설정(Settings)'의 '도메인(Domains)' 메뉴에서 새 도메인을 구매하거나, 이미 소유한 도메인을 연결한다.
결제 및 배송 설정: '결정(Settings)' 메뉴에서 고객이 사용할 결제 수단(Shopify Payments, PayPal 등)을 활성화하고, 상품을 배송할 지역과 배송 요금을 설정한다.
스토어 오픈: 모든 준비가 완료되면 온라인 스토어의 비밀번호 보호를 해제하여 공식적으로 쇼핑몰을 오픈하고 판매를 시작할 수 있다. 관리자 대시보드를 통해 주문, 고객, 마케팅 활동을 지속적으로 관리한다.
Shopify 쇼핑몰 개발 단계별 예시
여기서는 '수제 향초를 판매하는 The Glow Room'이라는 가상의 쇼핑몰을 Shopify로 개발하는 과정을 단계별로 예시한다.
쇼피파이 튜토리얼
1단계: 가입 및 스토어 기본 설정
먼저 Shopify 웹사이트에서 이메일로 가입하여 3일 무료 체험을 시작한다. 초기 설정에서 스토어 이름으로 The Glow Room을 입력하고, 판매할 상품 종류는 '홈데코', 사업장 주소와 기본 통화(예: KRW)를 설정하여 관리자 페이지를 생성한다.
2단계: 상품 등록 및 컬렉션 생성
첫 번째 상품을 등록한다.
상품명: 라벤더 세레니티 캔들
설명: "천연 라벤더 오일로 제작되어 심신 안정에 도움을 주는 캔들입니다." 와 같은 상세 설명을 추가한다.
미디어: 직접 촬영한 고품질 상품 이미지 여러 장을 업로드한다.
가격: 판매가(예: 25,000원)와 필요한 경우 할인가를 입력한다.
재고: 재고 수량(예: 50개)을 입력하여 재고 관리를 활성화한다. 같은 방식으로 '유칼립투스 브리즈 캔들', '시트러스 선샤인 캔들' 등 다른 상품들도 등록한다. 이후, '상품' 메뉴의 '컬렉션'에서 '아로마 테라피 컬렉션'이라는 자동 컬렉션을 만들고, 상품 태그에 '아로마'가 포함된 제품들이 자동으로 이 컬렉션에 분류되도록 설정한다.
3단계: 디자인 테마 선택 및 커스터마이징
'온라인 스토어 > 테마'로 이동하여 무료 테마인 'Dawn'을 선택한다. '사용자 지정' 버튼을 눌러 테마 편집기를 연다.
로고: 미리 제작한 The Glow Room 로고 이미지를 업로드하여 헤더에 표시한다.
색상: 브랜드 아이덴티티에 맞춰 전체적인 색상 팔레트를 차분한 베이지와 라벤더 톤으로 변경한다.
홈페이지 섹션: 홈페이지에 고품질의 메인 배너 이미지, 신상품을 보여주는 '추천 컬렉션' 섹션, 브랜드 스토리를 담은 '소개' 섹션을 드래그 앤 드롭 방식으로 배치한다.
4단계: 결제 및 배송 설정
'설정 > 결제'로 이동하여 Shopify Payments를 활성화하고 사업자 정보를 입력하여 신용카드 결제를 받을 수 있도록 준비한다. '설정 > 배송 및 배달'에서는 국내 배송 옵션을 설정한다. 예를 들어, '기본 배송' 프로필을 생성하고 5만원 미만 주문에는 배송비 3,000원을 부과하고, 5만원 이상 주문 시에는 무료 배송 혜택을 제공하는 규칙을 추가한다.
5단계: 필수 앱(App) 설치
고객 신뢰도를 높이기 위해 상품 리뷰 기능을 추가하기로 결정한다. Shopify 앱 스토어에서 'Shopify Product Reviews'와 같은 무료 리뷰 앱을 검색하여 설치한다. 설치 후 상품 페이지에 리뷰 작성 양식과 별점 표시 기능이 자동으로 추가된 것을 확인한다.
6단계: 테스트 주문 및 스토어 론칭
모든 설정이 완료되면, '설정 > 결제'에서 테스트 모드를 활성화하고 가상 신용카드 정보로 직접 '라벤더 세레니티 캔들'을 주문해본다. 주문 접수부터 주문 확인 이메일 발송까지 모든 과정이 원활하게 작동하는지 최종 점검한다. 문제가 없음을 확인한 후, '온라인 스토어 > 기본 설정'에서 스토어 비밀번호를 비활성화하여 The Glow Room 쇼핑몰을 정식으로 오픈한다.
타 노코드 도구 웹 앱과의 연동
다른 노코드 도구(예: Bubble, Webflow 등)에서 개발한 웹 앱을 Shopify 스토어에 직접 '가져오기(import)'하는 기능은 존재하지 않는다. 각 플랫폼은 고유한 아키텍처와 데이터 구조를 가지고 있기 때문이다. 하지만 직접적인 가져오기 대신, 여러 가지 연동 및 통합(Integration) 방법을 통해 두 플랫폼의 강점을 결합하는 것은 가능하다.
방법 1: 임베딩(Embedding)을 통한 연동
가장 간단한 방법으로, 외부에서 제작된 웹 앱의 특정 부분을 Shopify 페이지 내에 삽입하는 것이다.
개념: HTML의 <iframe> 태그를 사용하여 Shopify 페이지(예: 상품 상세 페이지, 블로그 게시물)의 특정 영역에 외부 웹 앱 화면을 그대로 표시하는 방식이다.
예시: 가구 쇼핑몰에서 고객이 직접 색상과 재질을 조합해보는 3D 시뮬레이터 앱을 Bubble로 개발했다면, 이 앱을 <iframe>으로 상품 페이지에 삽입하여 고객이 체험하게 할 수 있다. 체험 후 구매는 Shopify의 결제 버튼을 통해 이루어진다.
장점: 구현이 매우 간단하고 빠르다.
단점: 완벽하게 매끄러운 사용자 경험을 제공하기 어렵고, 두 플랫폼 간의 데이터가 실시간으로 연동되지는 않는다.
방법 2: API를 통한 기능 연동
두 플랫폼이 서로 데이터를 주고받도록 API(Application Programming Interface)를 통해 연결하는 방식이다.
개념: Shopify는 주문, 상품, 고객 정보 등을 다룰 수 있는 강력한 Admin API를 제공한다. 외부 노코드 앱에서 특정 이벤트가 발생했을 때(예: 견적 요청 양식 제출) 이 API를 호출하여 Shopify에 주문 초안을 생성하거나 고객 정보를 등록하는 등의 자동화가 가능하다.
예시: 복잡한 맞춤 견적 시스템을 외부 노코드 툴로 개발한 경우, 고객이 견적을 확정하면 해당 정보가 Shopify API로 전송되어 해당 고객만을 위한 맞춤 주문서가 자동으로 생성된다.
장점: 데이터가 자동으로 동기화되어 비즈니스 프로세스를 효율화할 수 있다.
단점: API에 대한 이해가 필요하며, 상대적으로 구현 복잡도가 높다.
방법 3: 헤드리스 커머스(Headless Commerce) 아키텍처 활용
가장 유연하고 강력한 통합 방식이다. Shopify를 눈에 보이지 않는 강력한 '백엔드(Backend)'로만 활용하는 개념이다.
개념: Webflow나 Framer 같은 디자인 중심의 노코드 툴을 사용하여 사용자에게 보여지는 웹사이트(프론트엔드) 전체를 자유롭게 구축한다. 그리고 '장바구니 담기', '바로 구매' 같은 상거래 기능이 필요할 때만 Shopify의 Storefront API를 호출하여 상품 정보, 장바구니, 결제창 기능만 가져와 사용한다.
예시: 매우 창의적이고 인터랙티브한 브랜드 웹사이트를 Webflow로 제작하고, 모든 상품 정보와 재고는 Shopify에서 관리한다. 고객은 Webflow 사이트를 둘러보다 '구매하기' 버튼을 누르면 Shopify의 안정적인 결제 시스템으로 넘어가 구매를 완료한다.
장점: 디자인의 제약이 거의 사라지며, Shopify의 강력한 상거래 엔진은 그대로 활용할 수 있다.