[바이브 코딩 질답 시리즈] 4. 언제, 어디에 Lovable을 쓰시나요?
Q. 휘동님은 언제, 어디에 주로 Lovable을 쓰세요?
커서맛피아님이 개설하신 카카오톡 오픈채팅방인 바이브 코딩 응급실에 가끔 나타나서 제 생각을 적고 있습니다.
지난 주말 Lovable에서 AI Showdown이라는 이벤트를 열었길래 이 카톡방에도 소식을 알렸는데요. 여기서 왜 저는 Lovable을 주로 쓰는가, 어디에 Lovable을 쓰는가 라는 질문을 받아서 답변을 적어봤습니다.
제가 한두달쯤 전에 러버블을 주로 쓰기로 선택했던 이유가 몇가지 있었어요.
- UI를 예쁘게 만들어줌
- Visual Edit(노코드처럼 요소 선택해서 수정)이 무료. 다른 앱에 대부분 없는 기능
- 에러 오토 픽스도 무료고 제법 잘 고쳐줌(cf. Google AI Studio는 오토 픽스 성능이 별로 안 좋고, Rork는 오류 고치는 게 유료)
- 무료로 Security Review을 해볼 수 있음
- Git 연동해서 소스코드 고치기 쉬움
- 배포되는 URL이 못생기지 않았음 (xx.lovable.app)
이러한 부가기능이 맘에 들어서 러버블을 선택했습니다. 저는 기획은 AI Studio에서 다 깎은 다음 채팅 몇 번으로 간단한(백엔드/API 연동이 없거나, Supabase와 LLM 등 기본 integration만으로 충분한 수준의) 앱을 만드는 데에 주로 러버블을 씁니다.
하지만 저는 무료 크레딧을 최대한 활용하는 걸 선호해서, '정착'했다고 보긴 어렵습니다. 이것저것 써보는 걸 더 좋아해요.
예를 들어 LLM 연동을 공짜로 테스트하고 싶을 때는 AI Studio 쓰고요. Gemini API나 ImageGen을 공짜로 쓸 수 있어서 좋은데, 아무래도 개발자 경험은 러버블보다 구립니다.
참고로 PRD 제대로 줬을 때 구현하는 거 자체는 다들(v0, Replit, Bolt, Tempo 등) 비슷한 수준이라고 봤습니다. LLM의 무작위성 정도로 다른 느낌? 다만 구글 제품군(Firebase Studio, Google AI Studio App Build)는 제미니만 써서인지 조금은 코딩 역량이 떨어진다고 느꼈어요.
러버블은 Next.js는 안되고 무조건 Vite만 써야 하는 게 v0 대비 단점이긴 한데요. 어차피 SEO는 SSG로 랜딩 페이지 (service.com
) 따로 뽑고 app용 URL(app.service.com
) 따로 뽑는 식으로 한다면 큰 문제 없다고 봤어요. API 호출도 프록시로 할 수 있어서. Lovable의 SEO 문서를 봐도 자신감이 느껴지긴 합니다.

물론 다른 AI 프로토타이핑 도구들과 마찬가지로 (특히 백엔드 로직이) 복잡해지면 잘 못 합니다. 그래서 앱이 커지고 복잡해지면 Cursor로 들고가서 하거나, 처음부터 Cursor로 다시 만들 때도 많습니다. 어차피 러버블로 만든 코드는 다 버릴 수 있다고 생각해서요. (참고글: Cursor 요청 제한에 금방 걸리는데 효율을 어떻게 높일까요?)
러버블과 다른 서비스들 비교해본 링크 2개도 첨부드립니다.
러버블의 성장세는 장난 아니긴 합니다. 미국도 아니고 스웨덴 기업인데, 유럽에서 가장 빠르게 성장하는 스타트업이라고 하네요.
- 2025년 4월 기준 연간 반복매출 5천만불
- 기업가치 15억불로 1억불 펀딩 준비 중: https://www.techinasia.com/news/swedish-ai-startup-lovable-in-talks-to-raise-100m-funding
추가로, 위의 "Vite가 SEO에 별 문제 없다" 관련해서는 제 생각이 편협하진 않은가 우려되어 Gemini와 대화도 돌려봤습니다. 어떻게 질문했는지 프롬프트와 답변 첨부합니다. 관심 있으신 분들은 한번 읽어보시길!
질문
CSR 로 작성된 (e.g, Vite) 리액트 앱이 SEO 측면에서 좋지 않다는 의견을 봤어. 나는 그다지 동의하지 않는데 이래서 그래.
–
어차피 대부분의 사이트는 로그인했을 때 퍼블릭하게 안 보이게 되고, 그러면 랜딩페이지만 잘 만들면 된다. 특히 index.html의 title과 description.
SSG로 랜딩 페이지 (service.com) 따로 뽑고 app용 URL(app.service.com) 따로 뽑는 식으로 한다면 큰 문제 없다고 생각한다.
그 외 SEO에 큰 영향을 주는 게 인터널 링크가 많은 건데 그런 건 스태틱 사이트로 블로그나 docs 사이트를 따로 띄우면 된다.
–
프론트엔드 전문가이자 SEO 전문가로서 내 생각을 가감없이 비판, 개선해줘.
Gemini의 답변
CSR 기반 리액트 앱의 SEO에 대한 생각: 전문가의 비판과 개선 제안
제시해주신 의견 잘 읽어보았습니다. CSR(Client-Side Rendering)로 만들어진 리액트 앱의 SEO 한계를 명확히 인지하고, 그에 대한 현실적인 해결책까지 구체적으로 고민하고 계신 점이 매우 인상 깊습니다. 프론트엔드 및 SEO 전문가 관점에서 볼 때, 말씀해주신 전략들은 매우 실용적이고 올바른 방향입니다.
하지만 몇 가지 측면에서 더 깊이 파고들거나, 다른 각도에서 바라볼 여지가 있습니다. 제 의견을 가감 없이 더해 생각을 비판하고 개선해 보겠습니다.
👍 동의하고 칭찬할 부분 (What you got right)
먼저, 제시하신 의견의 강점부터 짚고 넘어가겠습니다.
- 정확한 문제 인식: "로그인 후의 내용은 어차피 퍼블릭하게 보이지 않는다"는 통찰은 정확합니다. 많은 SaaS(Software as a Service)나 멤버십 기반 서비스의 핵심은 인증된 사용자에게만 가치 있는 콘텐츠를 제공하는 것입니다. 이 부분은 검색엔진이 접근할 수도, 접근할 필요도 없으므로 SEO의 고려 대상이 아닌 것이 맞습니다.
- 현실적인 해결책 (SSG + CSR 분리): 마케팅/랜딩 페이지(
service.com
)는 SSG(Static Site Generation)로 구축하고, 실제 애플리케이션은 서브도메인(app.service.com
)으로 분리하는 전략은 업계에서 널리 쓰이는 매우 효과적인 베스트 프랙티스입니다. 이를 통해 마케팅 사이트는 완벽한 SEO와 빠른 속도를, 앱은 풍부한 인터랙션을 가질 수 있습니다. - 콘텐츠 전략의 중요성 인지: SEO가 단순히 기술적인 최적화에 그치지 않는다는 점을 정확히 알고 계십니다. 블로그나 문서(Docs) 사이트를 별도로 운영해 내부 링크를 쌓고 콘텐츠 허브를 만드는 것은 장기적으로 도메인 전체의 권위(Authority)를 높이는 핵심적인 SEO 활동입니다.
요약하자면, 현재 생각하고 계신 방향은 '특정 유형의 웹 서비스'에 있어서는 거의 정답에 가까운 전략입니다.
🧐 비판적 검토 및 개선 제안 (A Critical Review & Improvements)
이제 몇 가지 잠재적인 맹점과 더 넓은 관점에서의 개선점을 짚어보겠습니다.
1. "대부분의 사이트"라는 전제에 대한 함정
"어차피 대부분의 사이트는 로그인했을 때 퍼블릭하게 안 보이게 되고..."
이 전제는 SaaS나 내부용 툴 같은 특정 유형의 서비스에는 부합하지만, 웹 전체로 보면 그렇지 않은 경우가 훨씬 많습니다.
- 이커머스: 개별 상품 페이지, 카테고리 페이지, 리뷰 하나하나가 모두 잠재적인 검색 유입 경로입니다. 이 페이지들이 CSR로 인해 제대로 인덱싱되지 않는다면 비즈니스에 치명적입니다.
- 콘텐츠 플랫폼: 뉴스, 커뮤니티, 레시피 사이트 등은 공개된 콘텐츠 자체가 자산입니다. 사용자 프로필, 게시물, 아티클 페이지가 모두 SEO의 대상이 됩니다.
- 마켓플레이스: 부동산, 구인구직, 중고거래 플랫폼 등은 수많은 리스팅 페이지들이 중요한 랜딩 페이지 역할을 합니다.
만약 서비스가 성장하여 공개적으로 노출되어야 할 콘텐츠(예: 사용자가 생성한 공개 프로필, 공유 가능한 프로젝트 보드 등)가 생긴다면 현재의 '랜딩페이지만 잘 만들면 된다'는 전략은 한계를 맞이하게 됩니다.
2. 랜딩 페이지 최적화, 그 이상의 것
"랜딩페이지만 잘 만들면 된다. 특히 index.html의 title과 description."
title
과 description
은 SEO의 가장 기본이지만, 현대 SEO는 그보다 훨씬 많은 것을 요구합니다. 특히 SSG로 랜딩 페이지를 만들 때 얻을 수 있는 진짜 이점들은 다음과 같습니다.
- 코어 웹 바이탈 (Core Web Vitals): 특히 초기 렌더링 속도(LCP)는 사용자 경험과 직결되는 중요한 랭킹 요소입니다. CSR은 필연적으로 초기 로딩이 느린 반면, SSG는 거의 즉각적으로 페이지를 보여줄 수 있습니다.
- 구조화된 데이터 (Structured Data):
Schema.org
마크업을 사용해 페이지의 콘텐츠가 '무엇'인지(예: 이 페이지는 '기업'에 대한 정보, '제품'에 대한 정보) 명확히 알려주면 검색 결과에서 더 풍부한 형태로 노출될 수 있습니다 (Rich Results). - 시맨틱 마크업과 접근성:
<h1>
,<main>
,<nav>
등 의미에 맞는 HTML 태그를 사용하는 것과 웹 접근성(A11y)을 준수하는 것은 이제 간과할 수 없는 SEO 요소입니다.
단순히 index.html
의 메타 태그를 채우는 것을 넘어, SSG의 장점을 최대한 활용하여 기술적으로 완벽한(Technically Perfect) 페이지를 만드는 것을 목표로 해야 합니다.
3. 하이브리드 렌더링: 분리를 넘어선 통합
"SSG로 랜딩 페이지 따로 뽑고 app용 URL 따로 뽑는 식..."
이 전략은 훌륭하지만, 개발 리소스, 브랜딩, 사용자 경험의 일관성을 유지하는 데 추가적인 노력이 필요합니다. 여기서 한 걸음 더 나아간 현대적인 접근 방식은 **하이브리드 렌더링(Hybrid Rendering)**입니다.
**Next.js (React)**나 Nuxt (Vue) 같은 프레임워크는 페이지별로 렌더링 전략을 선택할 수 있게 해줍니다.
- SSG: 마케팅 페이지, 블로그, 문서 등 정적인 콘텐츠 (
/
,/about
,/blog/[slug]
) - SSR (Server-Side Rendering): 자주 바뀌는 데이터가 포함된 공개 페이지 (예: 이커머스 상품 상세, 대시보드 미리보기)
- CSR: 로그인 후의 인터랙티브한 앱 영역 (예:
/app/dashboard
)
이 모든 것을 하나의 프로젝트, 하나의 도메인 안에서 구현할 수 있습니다. 이는 다음과 같은 강력한 이점을 제공합니다.
- 개발 효율성: 컴포넌트 라이브러리와 로직을 마케팅 사이트와 앱 간에 쉽게 공유할 수 있습니다.
- SEO 권위 통합: 서브도메인으로 권위가 분산될 미미한 가능성마저 차단하고, 블로그나 문서 사이트에서 쌓은 '링크 주스'가 앱의 공개 가능한 영역까지 자연스럽게 흘러가게 할 수 있습니다.
- 유연한 확장성: 나중에 공개할 페이지가 생기더라도 렌더링 방식을 SSR이나 SSG로 지정하기만 하면 되므로 서비스 확장에 유연하게 대처할 수 있습니다.
최종 결론 및 제안
요약하자면, 현재 님의 생각은 틀리지 않았습니다. 오히려 매우 실용적이고 효과적인 전략입니다. 특히 초기 단계의 SaaS나 명확하게 마케팅/앱 영역이 구분되는 서비스에는 최적의 선택일 수 있습니다.
다만, '프론트엔드 및 SEO 전문가'의 관점에서는 다음과 같이 생각을 확장하고 개선하는 것을 제안합니다.
- 현재 전략의 한계를 명확히 인지하세요. 이 전략은 '모든 콘텐츠가 로그인 뒤에 있는' 서비스에 가장 적합하며, 미래에 공개 콘텐츠가 늘어날 가능성에 대해서는 대비가 필요합니다.
- 단순 분리를 넘어 '하이브리드' 접근법을 고려하세요. 새로운 프로젝트를 시작한다면, 처음부터 Next.js와 같은 프레임워크를 도입하여 페이지별 렌더링 전략을 가져가는 것을 강력히 추천합니다. 이는 현재의 문제를 해결할 뿐만 아니라, 미래의 확장성까지 담보하는 가장 현대적이고 강력한 방법입니다.
님의 통찰력에 현대적인 프레임워크의 유연성을 더한다면, 어떤 유형의 서비스라도 SEO와 사용자 경험, 개발 효율성 모두를 잡는 견고한 아키텍처를 설계하실 수 있을 것입니다.
질문
근데 vite도 ssr, ssg 가능하지 않아?
Gemini 답변
네, 맞습니다. 아주 정확한 지적이십니다. Vite 역시 SSR(Server-Side Rendering)과 SSG(Static Site Generation)를 모두 지원합니다.
제가 앞선 답변에서 Next.js를 강조했던 것은 두 도구의 철학과 사용 방식에 근본적인 차이가 있기 때문입니다. 이 차이점을 이해하는 것이 매우 중요합니다.
결론부터 말씀드리면, Vite는 SSR/SSG를 구현할 수 있는 **'엔진' 또는 '도구 모음'**을 제공하고, Next.js는 그 엔진을 바탕으로 완성된 **'자동차'**를 제공합니다.
Vite의 SSR/SSG: "직접 조립해야 하는 DIY 키트"
Vite는 극도로 빠르고 유연한 **빌드 도구(Build Tool)**입니다. Vite의 SSR 지원은 개발자가 서버 렌더링을 구현할 수 있도록 핵심적인 기능들을 제공하는 데 초점을 맞춥니다.
- Vite가 제공하는 것:
- 서버에서 소스 코드를 실행할 수 있는 개발 서버와 번들러
- 서버와 클라이언트 간에 HMR(Hot Module Replacement)을 유지하는 기능
- SSR을 구현하기 위한 기본적인 API 가이드라인
- 개발자가 직접 해야 하는 것:
- 라우팅(Routing): 파일 기반 라우팅 같은 기능이 없습니다.
react-router
같은 라이브러리를 사용해 서버와 클라이언트 양쪽에서 동작하는 라우팅 로직을 직접 설정해야 합니다. - 데이터 페칭(Data Fetching): 페이지를 렌더링하기 전에 서버에서 데이터를 가져오는 로직(예: Next.js의
getServerSideProps
나loader
함수 같은)을 직접 설계하고 구현해야 합니다. - 렌더링 로직: 서버 진입점(
entry-server.js
), 클라이언트 진입점(entry-client.js
), 그리고 렌더링된 HTML을 삽입할index.html
템플릿 처리까지 모두 직접 작성해야 합니다. - SSG 구현: SSG를 하려면, 모든 경로를 순회하며 각 페이지를 렌더링하고 그 결과를 HTML 파일로 저장하는 빌드 스크립트를 직접 만들어야 합니다.
- 라우팅(Routing): 파일 기반 라우팅 같은 기능이 없습니다.
Vite의 장점은 '자유도'입니다. 정해진 규칙이 거의 없기 때문에, 원하는 대로 자신만의 프레임워크를 만들거나 아주 특수한 요구사항에 맞춰 최적화할 수 있습니다.
Next.js의 SSR/SSG: "모든 것이 갖춰진 완성차"
Next.js는 **애플리케이션 프레임워크(Application Framework)**입니다. Vite(혹은 Webpack) 같은 빌드 도구를 내부적으로 사용하지만, 개발자가 애플리케이션을 만드는 데 필요한 거의 모든 것을 미리 정해진 규칙(Convention)에 따라 제공합니다.
- Next.js가 제공하는 것:
- 파일 기반 라우팅:
app
폴더에 파일을 만드는 것만으로 라우트가 생성됩니다. - 정해진 데이터 페칭 패턴: React Server Components,
getServerSideProps
,getStaticProps
등 페이지의 렌더링 전략에 맞는 명확한 데이터 페칭 방법을 제공합니다. - 자동화된 렌더링: 개발자는 페이지의 특성에 맞게 함수를 사용하거나 컴포넌트를 만들기만 하면, Next.js가 알아서 SSG, SSR, ISR, CSR을 처리해 줍니다.
- 각종 최적화: 이미지 최적화(
next/image
), 폰트 최적화(next/font
), 자동 코드 스플리팅 등이 기본으로 내장되어 있습니다.
- 파일 기반 라우팅:
Next.js의 장점은 '생산성'과 '안정성'입니다. 개발자는 SSR/SSG의 복잡한 내부 구현을 신경 쓸 필요 없이, 비즈니스 로직에만 집중할 수 있습니다. 수많은 프로젝트에서 검증된 베스트 프랙티스를 바로 적용할 수 있습니다.
결론
"Vite도 SSR/SSG가 가능하다"는 말씀은 100% 맞습니다. 그리고 Astro, SvelteKit, Remix 같은 훌륭한 프레임워크들이 내부적으로 Vite를 사용하여 SSR/SSG 기능을 구현하고 있습니다.
따라서 이전 답변에서 제가 제안 드린 하이브리드 전략은 Next.js만의 전유물은 아닙니다. 하지만 React 생태계에서 가장 생산적이고 안정적으로 해당 전략을 구현하고 싶다면, Next.js가 사실상의 표준(De facto standard)이자 가장 강력한 선택지이기에 강조해서 설명해 드렸습니다.
Vite의 동작 방식을 정확히 이해하고 계신 만큼, 두 도구의 철학적 차이를 바탕으로 프로젝트의 성격과 목표에 맞는 기술을 선택하시면 되겠습니다.

Member discussion