나는 웹 개발 경력이 10년이 좀 넘는다. 매 프로젝트 때마다 HTML, CSS 와 계속 씨름해왔으며, 올해에는 React + tailwindcss 로 제품개발을 했었다. 이번에 사이드 프로젝트로 만들어보고 싶은 앱이 있는데, 이것은 웹버전이 없는 스마트폰 앱의 형태이다. 그래서 어떻게 하면 좀 수월하게 앱개발을 공부해볼 수 있을까 고민하다가 아래와 같은 방법을 생각해냈다.
웹개발자의 앱개발 공부 전략
- vercel v0 활용하기
- 만들고 싶은 앱의 기능을 text(프롬프트) 로 만든다. 그리고 그것을 react 코드로 만든다. (text to code)
- 내가 사용했던 프롬프트
- v0는 와이어프레임이나 디자인 결과를 이미지로도 넣을 수 있지만, 나는 디자이너도 아니고 와이어프레임도 익숙하지 않아서 그냥 텍스트로만 해봤다.
- 이 결과를 flutter 코드로 변경해달라고 v0에게 요청한다. 내가 만들 앱의 기능은 비교적 단순하기 때문에, 원소스 멀티유즈를 달성하기 위해서 flutter 를 사용해보기로 했다. v0가 아래와 같이 잘 변경해서 만들어준다.

나는 앱개발자야. 텍스트 기반의 일기작성 앱을 만들려고 해. 이 앱은 모바일과 데스크톱에서 모두 동작하도록 반응형디자인이 적용되어야 하고, 일기 목록, 일기 작성, 일기 상세 그리고 달력까지 총 4개의 화면이 필요해. React 와 tailwindcss 를 활용해서 프로토타입을 만들어줄 수 있어?

- Zed 에디터 활용하기
- v0가 만들어준 flutter 코드를 빌드해 보았지만, 역시나 에러가 난다. 이 에러를 해결하기 위해서 zed 에디터 (with llama3.2) 를 사용하였다.
- zed 는 클로드나 chatgpt 로도 사용할 수 있지만, 로컬에 설치한 Ollama 의 모델도 사용할 수 있다.
- 안드로이드 기기의 에뮬레이팅은 안드로이드 스튜디오(나의 경우는 intellij ultimate) 를 활용한다.
- 영어로 질문하고 답변하기는 하지만 llama3.2 가 생각보다 코드를 잘 고쳐준다. 내 랩탑 사양때문에 속도는 조금 느리지만.

여기까지 대략 이틀 (다른 업무를 병행하면서 하루에 2-3시간 정도밖에 쓰지 못했다) 정도 걸렸는데 처음 생각보다는 오래걸렸지만, 그래도 AI 의 도움을 받아서 빨리 진행된것 같다.
주로 막혔던 부분은 flutter 의 개발환경을 설정하는 부분이었는데, 자바 버전에 관한 것이었다.
결과물 스크린샷
- React





- Flutter (Android)





느낀점
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