반응형
 

Google NotebookLM | 신뢰할 수 있는 정보에 기반한 조사 및 사고 파트너

AI의 기능을 활용해 빠르게 요약하고 메모를 작성하세요. NotebookLM은 신뢰할 수 있는 정보를 기반으로 하는 강력한 가상 조사 어시스턴트입니다.

notebooklm.google.com

 

안녕하세요! 오늘은 제가 진행하고 있는 'Renthouse(가제)' 프로젝트에 대한 조금 특별한 이야기를 공유하고자 합니다. 이 프로젝트는 Flutter로 제작된 크로스플랫폼 임대 관리 애플리케이션으로, 기획부터 설계, 개발, 문서화까지 전 과정이 AI 코딩 파트너들 (Claude-code, Gemini-CLI, 그리고 ChatGPT) 과 함께 진행되고 있습니다.

장비: asus 게이밍 노트북 과 별도 중국산 포터블 모니터 .. 그리고 무난한 중국산 무선 키보드

 

아시는분들도 많겠지만, 기본적인 소프트웨어 개발 프로세스는 다음과 같습니다. 출처: DBpia

소프트웨어 개발 방법론은 요구사항 분석, 설계, 구현, 테스트, 유지보수 단계를 포함하며, 폭포수 모델, 애자일 방법론 등 다양한 접근 방식이 존재합니다.........

저는 요구사항 분석 부터, 설계, 구현 (실제 코딩), 테스트 (중 테스트 코드 작성) 부분.. 그리고 이후에 유지보수 단계까지 모두  "바이브 코딩(Vibe Coding)" 개발 방식으로 진행하기로 선택했습니다.

음..  바이브 코딩이 뭘까요? 혹시 모르시는 분들을 위해 다음 내용을 공유 합니다. (출처 : DBpia ) 

1. Vibe Coding의 특징
Vibe Coding은 자연어 처리를 통해 코드 생성을 지원하여 프로그래밍의 대중화를 목표로 합니다.
자연어 기반 코드 생성: Vibe Coding은 자연어를 통해 코드 생성을 지원함으로써 프로그래밍 입문 장벽을 낮추고 코딩의 대중화에 기여할 수 있습니다.코딩 효율성 증대: 인공지능 기술을 활용하여 코딩 작업의 효율성을 높이는 데 기여할 수 있습니다.

2. Vibe Coding의 장점
Vibe Coding은 자연어 기반 코드 생성을 통해 프로그래밍 진입 장벽을 낮추고 코딩 대중화에 기여할 수 있습니다.
프로그래밍 접근성 향상: 자연어 기반 코드 생성은 프로그래밍 입문자에게 더 쉬운 접근성을 제공합니다.

Vibe Coding은 자연어 기반 코드 생성을 통해 프로그래밍의 대중화와 효율성 증대에 기여할 수 있습니다.

위의 내용은 자연어 처리를 통한 코드 생상 내용만 나오지만, 제가 프로젝트의 전체적인 방향성을 LLM 툴을 통해 제시하면, AI가 구체적인 산출물로 만들어내는 방식으로 진행 하였고, 그 결과 또한 생각 했던 것 보다 훨씬 뛰어났기 때문에, 이 글을 통해 AI와 함께 '바이브 코딩'으로 실제 앱을 개발하는 것이 과연 가능한지.. 그리고 어떤 경험이었는지 공유해 보겠습니다.

시작: 추상적인 '아이디어' 를 구체적인 '설계'로 (요구사항 분석 및 설계)

프로젝트의 시작은 간단한 한 줄 명령이 아니었습니다. 물론 "임대 관리 업무를 디지털로 간소화한다"는 추상적인 '이이디어'에서 출발했지만, 이 아이디어를 구체화하기 위해 AI 파트너와 수많은 대화를 나누었고, 꽤 놀라운 산출물들이 전달 되었습니다.

LLM 툴은 가장 사용하기 편했고, 접근하기 좋았던 ChatGPT 를 이용했습니다. 수많은 대화가 오고갔지만, 가장 처음 받았던 답변을 공유합니다.

개발자 질문: property 를 한글로 하면 뭘까? 그리고 하나의 property 의 종류가 꽤 있는데, 이걸 등록할 때.. 음.. 만약 아파트면.. 주소만 있으면 되지만, 빌딩이면, 내부 건물의 유닛이 몇개인지 알아야 하고 개당 유닛의 특징도 적어야 할 것 같은데.. 일단 지침에도 적었지만, 이걸 관리 하는 프로그램을 만들고 싶어

ChatGPT: property를 한글로 옮길 때 일반적으로 “부동산” 또는 **“자산”**이라고 번역합니다.
프로그램 관점에서는 “관리 대상이 되는 부동산 매물”이란 뜻에서 간단히 “부동산” 이라 부르는 게 자연스럽습니다.... 
더보기

 

1. 부동산(Property) 종류 예시

  • 아파트
    • 주소, 동·호수 정도의 정보만 있으면 기본적으로 등록 가능
  • 빌딩(상업용 부동산)
    • 전체 주소
    • 총 층수, 호실(유닛) 수
    • 각 유닛(Unit)별 면적, 용도(사무실·상가 등), 임대 상태 등
  • 오피스텔 / 상가 / 단독주택 / 다가구주택
    • 각각 필요한 속성이 조금씩 다름
    • 예를 들어 단독주택은 대지면적·건축면적·방·화장실 개수 등

2. 등록 시 고려해야 할 구조

  1. Property 엔티티
    • id (PK)
    • type (ENUM: APARTMENT, BUILDING, OFFICE, HOUSE, …)
    • address (String)
    • name (예: “강남역 A빌딩”)
    • totalFloors (건물 전체 층수, 빌딩인 경우)
    • 그 외 공통 속성들(관리비 여부, 주차대수 등)
  2. Unit 엔티티 (Property 에 종속)
    • id (PK)
    • propertyId (FK → Property.id)
    • unitNumber (호실 번호)
    • area (면적)
    • useType (사무실/상가/주거…)
    • rentStatus (임대 중/공실)
    • monthlyRent 등

아파트의 경우 보통 Unit을 따로 두지 않고, 동·호수를 address 필드 또는 별도 컬럼(buildingCode, unitNumber)로 처리하기도 합니다.


3. 간단한 데이터 모델 예시 (Spring Boot + JPA)

 
@Entity public class Property... 생략

4. 등록 절차 아이디어

  1. Property 등록 화면
    • 타입 선택 → 기본 정보 입력(이름·주소 등)
    • 빌딩/오피스 등 유닛이 필요한 타입이면 “유닛 정보 추가” UI 노출
  2. Unit 일괄 등록 기능
    • 엑셀 업로드 혹은 호실 리스트 + 공통 속성 일괄 생성
  3. 관리(조회/수정/삭제)
    • Property 단위로 요약 정보 제공
    • 내부 Unit 리스트 확인, 개별 편집 기능

정말 괜찮은 답변이여서, 이대로 화면에 구현이 가능할까.. 실제 spring-boot JPA 를 사용하여 웹(web) 기반 프로트타입 개발을 시작했습니다. 사실, 이 프로젝트를 생각한건 꽤 오래전이여서, github 에 레퍼지터리를 만들어 놓고, 진행을 어떻게 할까 생각만 하다가 진행을 안하고 있었는데, ai 덕에 진행이 되었네요 ^^a .... 음 여하튼.. 혹시 궁금해 하시는 분들을 위해서.. 프로토 타입이란.. (출처: DBpia) 

인텔리제이, 터미널 (제미나이 소통 체널) 스프링 부트 3.4.3 으로 작업 하는 화면

프로토타입 방법론은 소프트웨어 공학에서 요구사항을 명확히 하기 어려운 경우, 개발 초기 단계에서 시제품을 만들어 사용자의 피드백을 반영하며 점진적으로 시스템을 완성해 나가는 접근 방식이다. 이는 반복적인 개발 과정을 통해 시스템의 완성도를 높이는 데 기여하며, 사용자 중심 설계의 중요한 방법론으로 간주된다. 특히, 불확실성이 높은 프로젝트에서 위험을 줄이고, 최종 제품의 사용자 만족도를 향상시키는 데 효과적이다.

제가 좋아하는 Agile 개발 방법 시작 전, 기반이 되는 시제품을 미리 만들어 보는 방법입니다. 코드 구현에 테스트한 ai 툴은 gemini-cli 였습니다. gemini-cli를 선택한 이유는 단순했습니다. 무료였고, 꽤 강력한 코딩 능력을 보여준다고 했기 때문입니다. 그래서 한 달 정도 시간을 내서 테스트 삼아 작업을 해 봤는데, 예상보다 결과가 괜찮았어요. 그때는 어떤 화면을 만들고 어떤 기능을 넣어야 할지 구체적으로 정리가 안 되어 있었습니다.

직접 웹 애플리케이션을 만들어 보면서 자연스럽게 요구사항이 정리되었고, 나름의 요구사항 명세서까지 프로토타입을 통해 뽑아낼 수 있었습니다. 프로토 타입 작업하면서, 중간중간에 즉흥적으로 떠오르는 기능이나 반드시 들어가야 한다고 생각되는 부분들은 바로바로 추가하면서 진행 했고요. 제가 웹 애플리케이션 개발을 해봤어서, 만약 AI가 제대로 결과물을 내지 못하면 제가 직접 손을 대서 보완할 수 있었습니다. 이런 점에서 자바를 선택한 것도 자연스러운 선택이었습니다.

Gemini-CLI 는 하루에 고급 기능(gemini-pro) 을 제한적으로만 쓸 수 있었지만, 단순 CRUD 작업은 잘 수행했기 때문에 큰 문제는 없었습니다. 만약 gemini-flash 를 사용하면서 오류가 생기면 제가 바로 IDE를 열어 직접 수정했고, 이후 AI에게 피드백을 주면서 다시 확인받는 방식으로 진행했기 때문에 작업이 크게 지연되지는 않았습니다. 약 3-4주 정도.. 이 과정을 거치면서, AI를 활용해 바이브 코딩을 할 때 어떤 방식으로 요구사항을 제시해야 하는지 감을 잡을 수 있었습니다.

https://youtu.be/jcXF12t93vw

 

- YouTube

 

www.youtube.com

 

프로토타입 결과물: [ github : Renthouse : youp-han/RentHouse: 프로토타입 ]

프로토타입은 말 그대로 시제품이였고, 초기 개발 테스트 버전이여서 LLM 을 통해 분석한 내용이 실제 코드를 통한 CRUD 기능이 되는지, 화면 디자인이 원하는 대로 나오는지 확인하는 단계여서, 결과물에 매우 만족하였습니다. 

이어지는 글: #바이브코딩 으로 앱 만들기 - 실제 코딩 진행

 

02. #바이브코딩 으로 앱 만들기 - 실제 코딩 진행

2025.10.30-01. #바이브코딩 으로 앱 만들기 - 과연 가능할까? 01. #바이브코딩 으로 앱 만들기 - 과연 가능할까?안녕하세요! 오늘은 제가 진행하고 있는 'Renthouse(가제)' 프로젝트에 대한 조금 특별한

yobine.tistory.com

 

반응형

+ Recent posts