웹개발자가 처음으로 앱을 만드는 방법(vercel v0)

v0, zed 등 AI 의 도움을 받아 최초 앱 만들기
golch's avatar
Dec 05, 2024
웹개발자가 처음으로 앱을 만드는 방법(vercel v0)
나는 웹 개발 경력이 10년이 좀 넘는다. 매 프로젝트 때마다 HTML, CSS 와 계속 씨름해왔으며, 올해에는 React + tailwindcss 로 제품개발을 했었다. 이번에 사이드 프로젝트로 만들어보고 싶은 앱이 있는데, 이것은 웹버전이 없는 스마트폰 앱의 형태이다. 그래서 어떻게 하면 좀 수월하게 앱개발을 공부해볼 수 있을까 고민하다가 아래와 같은 방법을 생각해냈다.
 

웹개발자의 앱개발 공부 전략

  1. vercel v0 활용하기
    1. 만들고 싶은 앱의 기능을 text(프롬프트) 로 만든다. 그리고 그것을 react 코드로 만든다. (text to code)
      1. notion image
    2. 내가 사용했던 프롬프트
      1. 나는 앱개발자야. 텍스트 기반의 일기작성 앱을 만들려고 해. 이 앱은 모바일과 데스크톱에서 모두 동작하도록 반응형디자인이 적용되어야 하고, 일기 목록, 일기 작성, 일기 상세 그리고 달력까지 총 4개의 화면이 필요해. React 와 tailwindcss 를 활용해서 프로토타입을 만들어줄 수 있어?
    3. v0는 와이어프레임이나 디자인 결과를 이미지로도 넣을 수 있지만, 나는 디자이너도 아니고 와이어프레임도 익숙하지 않아서 그냥 텍스트로만 해봤다.
    4. 이 결과를 flutter 코드로 변경해달라고 v0에게 요청한다. 내가 만들 앱의 기능은 비교적 단순하기 때문에, 원소스 멀티유즈를 달성하기 위해서 flutter 를 사용해보기로 했다. v0가 아래와 같이 잘 변경해서 만들어준다.
    5. notion image
  1. Zed 에디터 활용하기
    1. notion image
    2. v0가 만들어준 flutter 코드를 빌드해 보았지만, 역시나 에러가 난다. 이 에러를 해결하기 위해서 zed 에디터 (with llama3.2) 를 사용하였다.
    3. zed 는 클로드나 chatgpt 로도 사용할 수 있지만, 로컬에 설치한 Ollama 의 모델도 사용할 수 있다.
    4. 안드로이드 기기의 에뮬레이팅은 안드로이드 스튜디오(나의 경우는 intellij ultimate) 를 활용한다.
    5. 영어로 질문하고 답변하기는 하지만 llama3.2 가 생각보다 코드를 잘 고쳐준다. 내 랩탑 사양때문에 속도는 조금 느리지만.
 
여기까지 대략 이틀 (다른 업무를 병행하면서 하루에 2-3시간 정도밖에 쓰지 못했다) 정도 걸렸는데 처음 생각보다는 오래걸렸지만, 그래도 AI 의 도움을 받아서 빨리 진행된것 같다.
주로 막혔던 부분은 flutter 의 개발환경을 설정하는 부분이었는데, 자바 버전에 관한 것이었다.
 

결과물 스크린샷

  1. React
notion image
notion image
notion image
notion image
notion image
  1. Flutter (Android)
notion image
notion image
notion image
notion image
notion image
 

느낀점

React + tailwindcss (익숙한) 프레임워크의 코드와 Flutter (덜 익숙한) 코드를 화면별로 비교해볼 수 있다. 처음 배우는 입장에서 라우팅이나 스타일링의 기본적인 것들을 공부하기 수월했다.
프롬프트 만으로 Flutter 코드를 생성했다면 훨씬더 오래 삽질했을것 같다. 다른 언어로 된 코드를 변경하는 일을 AI 가 훨씬 더 잘한다고 생각한다.
앞으로도 새로운 프로그래밍 언어를 배우거나 프레임워크를 공부할때 이런 방법을 활용해봐도 좋을것 같다.
잘 동작하는 패턴을 한번 만들어놓으면 얼마든지 재사용이 가능해질것 같다. 그럼 진짜 앱하나 만드는데 2-3일에 끝날수도 있지 않을까? 신기하면서도 무섭다.
 

다음에 해볼것

비즈니스로직도 React 로 개발해서 Flutter 로 변경시켜보기
 

참고

React : 현 시점(2024.12) 가장 인기있는 웹 프론트엔드 프레임워크
tailwindcss : CSS 프레임워크
Vercel v0 : Text 혹은 와이어프레임 등을 웹 프론트엔드(React, Vue, Svelte 등) 코드로 만들어준다.
Flutter : 하나의 소스코드(dart)로 개발하면 여러 화면(안드로이드, IOS, 윈도우, Web 등) 의 프론트엔드로 빌드해주는 프레임워크
Dart : Flutter 에서 사용하는 프로그래밍 언어
Zed : 협업 및 AI 통합에 초점이 맞추어져 있는 코드 에디터
Intellij IDEA : Java 및 Kotlin 을 위한 에디터였으나 더 많은 프로그래밍 언어와 프레임워크를 지원하는 코드 에디터
Ollama : 내 랩탑(혹은 데스크탑)에 LLM 모델을 설치해서 사용할 수 있도록 해주는 오픈소스
llama3.2 : Meta에서 출시한 아무나 사용할 수 있는 LLM 모델
Share article

골치의 사람되는 블로그