00:00그럼 이렇게 문구가 순차적으로 타이핑되며 전환되는 애니메이션 효과가 적용됩니다
00:00굉장히 그럴사해졌죠? 제출을 클릭하면 이렇게 구독해 줘서 고맙다는 메시지가 나타납니다
00:06구글 스프레드시트로가 보면 정확히 두 개가 저장된 걸 확인할 수 있어요
00:12좋아요 버튼을 클릭하면 해당 아이템의 좋아요 수가 이렇게 일 증가하고 다시 클릭하면 좋아요가 취소되어서 과연 코드한 줄 몰라도 AI로 누구나 앱이나 웹 서비스를 만들 수 있을까요? 요즘 AI에게 말만하면 앱이나 웹사이트가 뚝딱 만들어진다는 이야기도 있고 그래서 이제 코딩을 배울 필요가 없다는 말까지 나오고 있어요
00:29심지어 AI와 대하며 만든이 게임이 17일 만에 100만 달러를 벌었다는 소식도 있고요
00:35100만 달러면 하나 13억 9천만 원 정도니까 정말 꿈 같은 이야기죠
00:41이렇게 코드 작성이 말로만 개발하는 방식이 요즘 핫하게 떠오르고 있는데 이걸 바이브 코딩이라고 합니다
00:41말 그대로 코드 한 줄 몰라도 AI에게 말로 설명하면서 느낌적인 느낌으로만 개발을 한다는 거예요
00:47샘 알트먼이 했던 말처럼 이제 개발 지식 없이 AI에게 자연으로 말로 설명만 해도 앱을 만들 수 있는 세상이 열리고 있다는 거죠
00:59그런데 현실적으로 개발을 전혀 몰라도 정말 앱이나 웹 개발이 가능할까요? 막상 최초피나 클로드 커서 같은 독으로 코딩을 직접 해 보시면 느끼실 거예요
01:05개발이 생각만큼 쉽지 않다는 걸요
01:05팩폭을 하자면 사실 코딩 지식이 전혀 없으면 AI가 코드를 다 짜도 실행조차 어렵고 간단한 에러 하나도 못 꽂치기 때문에 금방 한 개에 부딪히게 됩니다
01:18뭐 프런트엔드나 백핸드, 클라이언트, 서버, API나 디버깅 이런 용어만 들어도 이게 도대체 어느 나라 말이야 외기가라는 생각이 들 수도 있어요
01:24어, 특히 이런 상태에서 아, 나는 당근 마켓이나 쿠팡 자주 이용하니까 이번에 이런 애 한번 만들어 봐야지
01:29이러면 정신과 시간의 방에서 고통을 느끼다가 키보드나 모니터 몇 번 내려치고 코딩과 작별하실 수도 있고요
01:35게다가 처음부터 뭐 vs 코드나 커서 노드 JS 깃 이런 기본적으로 설치해야 하는 복잡해 보이는 것들이 있어서 시작 단계부터 진입 장벽을 느낄 수도 있어요
01:46그래서 개발 지식이 없는 초보자나 일반인 분들에겐이 코딩이 사실 크게 와닿지 않을 수도 있다고 생각이 들어요
01:53하지만 개발을 몰라도 내가 직접 앱이나 앱을 한 번쯤은 만들어 보고 싶잖아요
01:59이럴 때 그 문제 내가 다 해결해 줄게 하고 등장한 서비스들이 있어요
01:59바로 윈드프, 파이어베이스, 스튜디오, 러버업블, 레플리처럼 통합 개발 환경을 제공하는 온라인 플랫폼들입니다
02:05이런 서비스들은 웹 브라우저만 있으면 코드 작성과 실행은 물론 원클릭으로 배포까지 가능해서 정말 편리해요
02:12심지어 아이패드만으로도 어느 정도 개발이 가능할 정도예요
02:17그리고 요즘엔 이런 플랫폼들의 AI 에이전트까지 탑재되어 있어서 기본적인 개발 지식이 전혀 없어도 웬만한 디자인이나 기능 구현은 AI가 거의 다 알아서 해 줍니다
02:30문제가 생기면 직접 찾아서 해결책까지 제시해 줘요
02:30진짜 똘똘한 녀석이죠
02:30그래서 저는 코딩을 아예 모르는 초보자분들은 이런 서비스로 쉬운 프로젝트부터 만들어 보면서 개발에 대한 기초 지식을 자연스럽게 쌓아가는게 바로 5 코딩의 가장 좋은 출발점이지 않을까 생각합니다
02:41그럼이 중에서 어떤 걸 써야 하냐? 저는 앞서 소개해 드린 플랫폼 중에서 현재까지는 레플릿이 가장 초보자분들에게 좋다고 느꼈는데 특히 레플릿은 AI 에이전트 성능이 우수하면서 결과물의 완성도는도도는 높고 원클릭으로 배포도 간편해서 문제 해결 능력이 부족한 초보자가 사용하기에 정말 딱입니다
02:59그래서 이번 영상에서는 레플릿의 AI 전투 기능을 활용해서 코딩으로 인트로에서 보여 드린 랜딩 페이지를 디자인하고 개발하고 배포까지 하는 모든 과정을 보여 드리겠습니다.이 과정을 다 따라오면요
03:11나만의 브랜드나 제품을 위한 검증용 랜딩 페이지가 생깁니다
03:17이메일을 수집해서 실제 고객 데이터를 확보할 수 있고 좋아요 버튼으로 고객의 반응을 정량화할 수 있어요
03:23게다가이 모든 걸 코드 한 줄도 쓰지 않고 말만 해서 만든다는 거 이게 핵심입니다
03:23참고로 저는 전문 개발자가 아닙니다
03:28그래서 철저하게 비발자의 시선에서 바이브 코딩을 처음 시작할 때 꼭 알아야 할 기초 지시까지 쉽게 알려 드릴 거니까 초보자도 부담없이 따라오실 수 있으실 겁니다
03:39본격적으로 앱이나 웹을 만들기 전에 꼭 해야 할 일이 하나 있습니다
03:39많은 분들이 이걸 그냥 건너뛰는데요
03:45이걸 생략하고 시작하면 진짜로 열배는 더 어렵고 100배는 더 오래 걸릴 수 있어요
03:45그게 바로 기획입니다
03:52우리가 시험을 준비하거나 중요한 일을 앞두고 항상 계획부터 세우는 것처럼 기술적인 지식이 부족한 상태에서 무언가를 구현할 때는 기획이 더더욱 중요합니다
03:58내가 무엇을 만들고 싶은지 그에 따라 어떤 기술이 필요한지 모른다면 AI에게 구체적으로 어떤 지시를 내려 할지도 알 수 없으니까요
04:05나는 개발도 모르는데 무슨 기회까지 하라고 싶으시죠? 그런데 괜찮습니다
04:11우리에겐 AI가 있잖아요
04:11예를 들어 저는 MVP 검증을 위한 웹 랜딩 페이지를 만들어 볼 거니까 그럼 최치 빛이나 여러분이 쓰고 있는 LM에게 이렇게 물어보는 거예요
04:23새로운 나이키 신발을 출시하기 전에 시장 반응을 알아보기 위한 MVP 검증용 랜딩 페이지를 만들고 싶어 어떤 기능들이 들어가면 좋을까? 그럼 AI가 필요한 기능들을 구체적으로 다 알려줍니다
04:29이걸 기반으로 나만의 기능 목록, 레이아웃 구상, 개발 순서까지도 정할 수 있어요
04:35그런데 이쯤 되면 아마 이런 생각이 드실 수 있어요
04:42MVP 검증용 랜딩 페이지가 대체 뭐고 그걸 왜 만드는 건데? 그죠? 내가 뭘 왜 만드는지에 대한 기본적인 건 알아야 하잖아요
04:49MVP는 제품을 완벽하게 만들기 전에 가장 최소한의 기능만 담아서 시장 반응을 먼저 테스트해 보는 제품을 말합니다
04:55예를 들어 제가 최첨단 기술이 들어간 신발을 하나 개발했다고 해 볼게요
05:00이거 팔아서 대박 나야지 하고 기대를 가득 앉고 제품을 정식으로 제작하고 마케팅도 돌렸는데 안 팔린다 그럼 돈도 시간도 다 날리는 거잖아요
05:06최악의 경우 망할 수도 있겠죠
05:12그래서 이런 위험을 줄이기 위해 샘플만 만들거나 혹은 실제 제품 없이 진짜처럼 보이는 웹사이트만 먼저 만들어서 시장 반응을 확인해 보는 거예요
05:18예를 들어 이런 랜딩 페이지 보신 적 있죠? 이런 식으로 페이지를 만들어서 사람들이 어떻게 반응하는지 먼저 살펴보는 거죠
05:24반응이 좋다 그러면 본격 제작을 하고 반응이 별로다
05:30그러면 방향을 수정하거나 버리는 거죠
05:30이게 스타트업이나 작은 조직에서 흔히 쓰는 MVP 전략입니다
05:36그런데 왜 하필 랜딩 페이지를 만들까요? 간단합니다
05:36쉬우니까요
05:36아까 개발을 아예 모르는 초보자분들은 아주 쉬운 것부터 만들어 보는게 좋다고 말씀드렸잖아요
05:42랜딩 페이지는 기본적으로 정보를 보여주는 용도에 집중돼 있어서 복잡한 기능이 거의 없습니다
05:49그래서 프론트 엔드만 구현해도 충분해요
05:49그럼 프론트 엔드는 뭐냐? 우리가 눈으로 보는 모든 웹 화면들, 텍스트, 버튼, 이미지, 폼 같은 것들, 즉 사용자가 직접 보는 겉모습을 다루는게 프론트 엔드예요
06:01그런데 당근 마켓이나 쿠팡 같은 앱을 만들고 싶다
06:01그럼 얘기든 360도 확 달라집니다
06:07이런 서비스는 기본적으로 CRUD가 필요해요
06:07예를 들어 쿠팡에서 리뷰를 쓴다고 해 볼게요
06:13리뷰를 쓰는 건 정보를 크리에이트 즉 만드는 거잖아요
06:13그리고 리뷰를 읽을 때 리드 할 수 있어야 하고 또 리뷰를 수정하면 업데이트 되거나 삭제하면 딜리트 할 수 있어야 해요
06:20이게 CRUD입니다
06:20이렇게 복잡한 기능들이 하나 둘씩 들어가기 시작하면 프런트 엔드뿐만 아니라 백엔드와 데이터베이스까지 필요한 거대한 개발의 여정이 시작되는 거죠
06:31어, 참고로 데이터베이스는 정보를 저장하는 표, 엑셀 시트 같은 거고요
06:31백엔드는 사용자의 요청을 받아서 데이터를 처리하고 다시 프론트 엔드로 전달해 주는 눈에 보이지 않는 뒷단의 영역이다라고 생각하시면 됩니다
06:42이런 것들은 개발을 하면서 좀 더 자세히 설명드릴게요
06:42벌써부터 머리가 조금 복잡해지죠? 그래서 현실적인 첫 걸음으로는 백엔드를 건드릴 필요가 없는 랜딩 페이지가 딱 좋은 출발점이라고 생각합니다
06:54하지만 저는 한 발 더 나아가서 인트로에서 보셨던 것처럼 이메일을 작성하면 구글 시트에 자동으로 저장되고 좋아요 버튼을 누르면 숫자가 올라가고 그 기록이 저장되는 기능까지 간단한 수준의 백인드까지 구현해 볼 겁니다
07:06자, 이제 다시 기획 단계로 돌아와서 이번 프로젝트에서 어떤 기능을 구현할지 스펙을 한번 정리해 볼게요.이 이 단계에서는 내가 실제로 구현 가능한 수준에서 가장 기대 효과가 크다고 예상되는 기능을 선별하는게 핵심입니다
07:19저는 랜딩 페이지의 첫 화면인 히어로 섹션에는 제품 이미지와 제품의 강점을 잘 드러내는 USB 문국 크게 이렇게 두 가지 요소를 넣었습니다
07:26방문자가 페이지에 들어오자마자이 제품이 어떤 건지 한 눈에 이해할 수 있도록 말이죠
07:32이런 겉모습, 디자인적인 부분은 프론트엔드만으로 충분히 구현할 수 있습니다
07:37그리고 이메일 수용 인풋도 넣기로 했어요
07:37이메일을 수집하도록 하면 사전 구매자 정보를 미리 확보해서 이후 마케팅 효율을 극대화할 수 있고 시장 수요도 예측할 수 있어요
07:49그리고 고객들이 어떤 제품을 더 좋아하는지 양적인 수치로 보여주면 수요를 좀 더 객관적으로 파악하는데 도움이 될 것 같아서 실시간 신청 대신에 좋아요 버튼을 넣기로 했어요
07:55이러면 개발이 간단하면서도 고객들의 반응을 정량적으로 보여주는데 효과적입니다
08:00그런데 아까 백엔드가 들어가면 개발 난유도가 확 올라간다고 말씀드렸죠? 하지만 이렇게 기능만 나열해 놓으면 이게 프론트 엔드로 되는 건지 백핸드가 필요한 건지 모르겠잖아요
08:12그럼 어떻게 해야 할까요? 마찬가지로 그냥 AI에게 질문하면 됩니다
08:12예를 들어 이런 식으로 프롬트를 작성해 보는 거죠
08:18아래와 같은 기능을 구현하고 싶은데 백엔드가 필요할까? UI는 움직이는 타이포그래피, 제품 이미지, 기본 내비게이션, 푸터
08:24기능은 이메일과 전화번호 수집, 좋아요 수집
08:30이렇게 물어만 봐도 어떤 기능이 프런트에서 가능한지 어디서부터 백엔드가 필요한지 AI가 자세하게 알려주죠
08:35보시면이 이메일을 수집하는 기능부터는 백엔드 개발이 필요해요
08:35이메일 수집은 인풋 창만 있다고 끝나는게 아니라 입력된 데이터를 어딘가에 저장해야 하니까요
08:41여기서 저는 개발 비용을 낮추기 위해 복잡한 서버나 데이터베이스 같은 백엔드 개발 없이 여기 AI가 알려준 대로 구글 앱스 스크립트를 활용했습니다
08:53이걸 이용하면 사용자가 입력한 이메일 주소를 데이터베이스가 아니라 구글 스프레드시트에 자동으로 저장되도록 만들 수 있습니다
08:59간단하면서도 실제로 운영에 써 먹을 수 있는 매우 유용한 방법이죠
08:59이런 식으로 내가 딱 이메일 수준만 하면 된다
09:05그럼 굳이 복잡한 백엔드는 개발하지 않아도 되니까 개발 비용을 줄일 수 있는 것들은 이렇게 줄이는 거죠
09:10그리고 좋아요는 클릭하면 단순히 화면에 숫자만 올라가는게 아니라 누구가 눌렀는지를 포함해서 그 기록이 데이터베이스에 저장돼야 합니다
09:15좋아요 기능 하나 구현하는데도 의외로 복잡한 백엔드 개발이 필요하죠
09:22하지만 걱정하지 않으셔도 됩니다
09:22레플릿의 AI 에이전트에게 요청하면 간단한 서버와 데이터베이스 구조는 자동으로 구현할 수 있어서 복잡한 서버 개발을 최소화할 수 있습니다
09:28자, 이제 어떤 기능을 어떻게 구현할지 대략적인 방향이 잡혔어요
09:33참고로 실제 디지털 제품을 만들 때 기획 과정은 이보다 훨씬 더 복잡하고 섬세한 조율이 필요하니까 지금 설명드린 건 어디까지나 기초 개념을 이해하기 위한 예시라고 생각하면 좋겠습니다
09:45그럼 이제 다음으로는 랜딩 페이지에 어떤 옷을 입힐지, 시각적으로 어떻게 풀어 나갈지 디자인을 정해 봐야겠죠
09:51앞선 기획 단계에서 랜딩 페이지에 들어갈 요소들과 프론트 엔드, 백핸드의 구현 방식을 정해 봤는데 저는 그 내용을 보기 편하게 GPT의 요청에서 이렇게 테이블로 정리해 봤어요
10:02이제 이렇게 정한 내용을 히어로 섹션부터 하나씩 시각적으로 어떻게 보여줄지 UI 디자인을 해 볼 차례입니다
10:08그런데 아마 지금이 영상을 보고 계신 대부분의 시청자분들은 디자이너가 아닐 거라 생각합니다
10:13그럼 이런 정보만 두고 디자인을 하라고 하면 시작부터 어떻게 해야 할지 막막할 수 있죠
10:20이럴 때는 저는 레퍼런스부터 진행하는 걸 추천드립니다
10:20이미 저희는 어떤 방향으로 제품을 설계할지 감을 잡았기 때문에 이제이 방향과 비슷한 사이트들을 찾아보며 어떤 식으로 디자인되어 있는지 살펴보고 참고하면서 구체화해 보는 거죠
10:32꼭 UI를 직접 다 그리실 필요는 없어요
10:32그냥 레퍼런스를 이런 식으로 골라주 하는 것처럼 조합해 보는 것도 괜찮습니다
10:38지금 같은 경우엔 히어로 섹션과 이메일 인풋이 중요한 UI 요소니까이를 중심으로 레퍼런스를 찾아보면 되겠죠
10:44이런 식으로 내가 참고해야 하는 부분을 어떻게 보여주면 사용자에게 효과적일지 찾아보는 과정에서 디자인에 대한 인사이트를 얻을 수 있고 실제 구현해도 도움이 될 만한 부분도 많이 공부하실 수 있으실 거예요
10:55UI 레퍼런스를 참고할 수 있는 사이트는 굉장히 많은데요
11:01대표적으로 다음과 같은 사이트들이 있습니다
11:06그런데 나는 이런 거 참고해도 잘 모르겠고 레퍼런스 찾을 시간도 없고 기능만 잘 돌아가면 된다 하신다면 AI의 도움을 받아 빠르게 디자인을 생성할 수도 있습니다
11:12예를 들어 GPT에서 아까 정리한 사항들 중에서 디자인에 해당되는 내용만 쫙 작성을 하고이 웹사이트 UI를 생성할 수 있는 구조화된 프롬프트를 영문으로 작성해 줘
11:25부족한 부분은 보완해 달라고 요청을 하면 GPT가 적절한 프롬트를 잘 생성해 줍니다
11:25그리고이 프롬트를 그대로 선택한 뒤 이미지 그리기를 클릭하고 전송하면 비트맵 이미지로 UI 레퍼런스를 생성할 수 있습니다
11:37하지만이 방식은 결과물이 비트맵이라 코드와시에 종도가 다소 떨어질 수도 있고요
11:37전체적인 완성도는 좀 엉성한 부분도 있기 때문에 컬러나 이미지 레이아웃 등의 컨셉 정도만 참고하시는 걸 권장드릴게요
11:49이거 내에 다른 방식도 많습니다
11:49아까 복사한 프롬프트를 피그마에 가지고 와서 하단바에 있는 스파클 아이콘 클릭, 퍼스트 드래프트 클릭하고 복산 프롬프트를 붙여 넣은뒤 만들기 버튼 클릭하면 이렇게 벡터화된 UI를 바로 얻으실 수 있습니다.이 방식은 디자인이 꽤 안정적이고 수정도 용이하고 코드로 옮기는게 편합니다
12:09화면에 단점은 UI 디자인 자체가 다소 단조로 올 수 있어요
12:09그리고 피그마에서 생성한 디자인은 피그마 MCP를 활용하면 피그마 디자인을 클로드나 커서 같은 AI와 연동해서 디자인을 그대로 HTML이나 CSS 같은 프론트 엔드 코드로 변환할 수 있습니다
12:21이렇게 작성된 코드는 정확도도 꽤 높은 편이에요
12:21MCP 설정 방법은 영상에서 다루기엔 분량이 많아 더 보기라는 링크로 전부해 두겠습니다.이 문서 그냥 한글 번역해서 GPT의 질문에 가면서 따라하시면 MCP 연결은 쉽게 하실 수 있으실 거예요
12:33저는 설명과 동시에 바로 구현도 해야 하기 때문에 직접 디자인을 새로 하기보다는 앞서 추천드린 레퍼런스 사이트 중 하나를 선정해서 활용해 보기로 했어요
12:45그럼 이제 개발을 시작해 볼 건데요
12:50그게 화면에 해당하는 프론트 엔드와 기능에 해당하는 백엔드 이렇게 나눠서 진행해 볼 거고요
12:50프런트 엔드는 히어로 섹션부터 이메일 섹션, 좋아요 카드 섹션 그리고 마지막부터 이렇게 차례차례 하나씩 만들어 나갈 겁니다
13:02모든 과정을 한 번에 구현하기보다는 이렇게 각 섹션을 개별적으로 나눠서 개발하는 방식이 AI 에이전트가 요구 사항을 더 정확하게 이해할 수 있어서 결과물의 완성도 또한 더 높일 수 있습니다
13:13그럼 레플리스로 접속해서 먼저 로그인을 해 줍니다
13:13로그인 후 메인 화면을 보시면 메시지를 입력할 수 있는 이런 인풋창이 보이실 거예요
13:19우리는 코드를 단 한 줄도 작성하지 않고 AI 에이전트에게 자연호로 프롬프트를 입력하는 것만으로 웹 랜딩 페이지를 만들어 볼 건데 방법은 아주 간단합니다
13:26그냥이 인풋 창에 내가 만들고 싶은 앱이나 웹서비스에 대해 프롬프트를 작성하면 AI 에이전트가 알아서 개발을 해 줍니다
13:32어, 참고로이 페이지뿐만 아니라 좌측 상단에 있는 크리에이트 앱 클릭함에 나오는이 인풋 창에서도 AI 에이전트를 사용할 수 있고요
13:43그리고이 추지어 템플릿을 클릭하면 파이썬이나 노드 JS, HTML, CSS, 자바스크립트 등 개발에 필요한 기본적인 템플릿을 선택해서 직접 코드를 입력해서 개발을 할 수도 있습니다
13:55저희는 AI 에이전트를 사용할 거니까 다시 아까 창으로 돌아와서 인풋의 프롬프트를 작성해 줄 건데이 웹사이트의 이력을 참고해서 히어로 색션부터 개발해 볼게요
14:00저는 디테일한 프롬트 작성 대신이 페이지의 캡처 이미지를 레플릿 에이전트에 제공해 줬습니다
14:07참고로 이렇게 캡처 이미지를 제시해도 어차피 완전 동일하게 웹사이트가 카피되진 않으니까 표절에 대한 걱정은 하지 않으셔도 됩니다
14:13그리고 프롬프트로이 이미지를 참고해서 최대한 비슷한 랜딩 페이지의 히어로 섹션을 HTML, CSS, 자바스크립트 코드로 구현해 달라고 작성하고 메인에 들어갈 이미지는 추후 따로 추구할 거라 제외해 달라고 했습니다
14:25HTML, CSS, 자바스크립트는 웹사이트를 구성하는 가장 기본적인 세 가지 언어로 HTML은 웹사이트의 뼈대, CSS는 옷, 자바스크립트는 기능과 동작이라고 생각하시면 됩니다
14:37스타트 빌딩 버튼을 클릭하면 AI 에이전트가 랜딩 페이지 히어로 섹션 구현을 위한 계획을 먼저 제시해 주는데요
14:44지금 영어로 나오기 때문에 여러분들이 보시기 불편하실 수 있어서 저는 트렌시라는 크롬 번역 확장 프로그램 활용해서 번역된 결과로 보여 드릴게요
14:55계획을 보면 지금은 초기 버전의 설계 단계라는 것을 알 수 있고이 단계에서 계획 승인을 해야 다음 단계로 진행이 됩니다
15:01또한 프롬트에 명시하지 않았던 기능들, 예를 들어 애니메이션, 탐색 기능, 모바일 반응형 디자인 등도 AI가 추가로 제안해 주기도 하는데 저는 이런 기능들은 나중에 하나씩 직접 추가할 거라 바로 계획 승인 및 시작 버튼을 클릭했어요
15:13그럼 리플릿의 AI 에이전트가 본격적으로 생각을 시작하며 계획을 수립하고 개발 단계를 나눠서 하나씩 진행하기 시작합니다
15:18참고로이 오른쪽 창은 개발 중인 결과물을 실시간으로 미리 볼 수 있는 창이고요
15:25왼쪽 창은 개발 상황을 확인하거나 승인하고 내가 요청한 프롬프트를 볼 수 있는 공간입니다
15:30이제 히어르 섹션이 개발이 완료되었고요
15:30원본 웹사이트와 비교해 보면 텍스트는 동일하게 들어갔고 전체적인 레이아웃도 꽤 유사하죠
15:36하지만 폰트 종류나 사이즈, UI의 개별 디자인 요소들은 다릅니다
15:42저는이 상태를 기본 베이스로 디자인을 조금씩 수정해 나가며 완성도를 높여가 볼게요
15:49참고로 좌측 상단에 있는이 폴더 아이콘을 클릭하면 클라이언트에서 HTML 파일이나 TSX CSS 파일을 확인하실 수 있고요
15:55여기는 코드를 그대로 복사해서 다른 에디터에 붙여 넣어서 개발을 진행할 수도 있겠죠
16:01또 미리 보기 창단에 있는 URL을 클릭하면 개발 중인 상태를 웹브라우저에 띄어서 실제처럼 확인할 수 있습니다.이 창은 중간중간 개발을 하면서 잘 되고 있나 확인이 필요할 때 들어가 보면 좋겠고요
16:07그리고이 에이전트 창단에 있는이 아이콘의 커서를 호보하면 주어진 크레딧을 내가 얼마나 사용하고 있는지 확인할 수 있습니다
16:20참고로 저는 유료 코어 플랜을 사용 중이라 매달 25달러 상당의 크레딧을 사용할 수 있고 무료 사용자는 AI 에이전트 요청을 최대 10회까지 사용할 수 있습니다
16:25에이전트를 한번 호출할 때 크레딧이 0.25달러가 차감되기 때문에 코어 플랜은 총 100회의 요청이 가능한 셈이죠
16:31이제 히어로 섹션의 디자인을 개선해 볼게요
16:37현재 헤딩 타이틀의 폰트가 너무 두껍고 다소 작아 보이기 때문에 폰트 웨이트를 줄이고 크기를 키워 보겠습니다
16:44이런 간단한 프론트 단의 수정은 굳이 비싼 에이전트를 사용할 필요는 없고 어시스턴트만으로 충분합니다
16:50어시스턴트는이 플러스 버튼 클릭하고 도구에 보시면 에이전트 아래에 있습니다
16:50클릭하면 이렇게 어시스턴트 요청을 위한 탭이 새로 하나 나타납니다
16:56수정할 때는 어떤 UI 요소를 어떻게 바꿀지 구체적으로 지정해 주는게 중요한데요
17:02이때 이용한 것이 바로 엘리먼트 셀렉터 기능입니다
17:02셀렉터를 클릭하고 헤딩 타이틀을 가져가면 이렇게 H1이라는 태그가 나타나죠
17:08태그는 HTML 웹사이트의 구조를 이루는 기본 단위라고 생각하시면 됩니다
17:14그대로 H1 태그 영역을 클릭하고 프롬프트로 헤딩 타이틀 폰트를 크게 키우고 웨이트는 얇게 만들어 달라고 작성한 뒤 화살표 버튼을 클릭해서 요청을 합니다
17:21그럼 이렇게 적용 버튼과 코드 변경 미리 보기 버튼이 나타나는데 코드 변경 미리 보기를 클릭하면 이렇게 코드가 어떻게 변경될지 확인할 수 있습니다
17:33보시면 폰트 사이즈 값이 커지고 폰트 웨이트가 볼드에서 라이트로 변경된게 보이시죠? 저는 이대로 적용 버튼을 클릭해 주겠습니다
17:39그럼 이렇게 요청한 대로 폰트 사이즈가 커지고 두께도 얇아집니다
17:45다음으로는 헤딩 타이틀에 문구를 수정하고 멋진 애니메이션 효과도 추가해 볼게요
17:51에이전트 창으로 와서 다시 셀렉터로 헤딩 타이틀을 선택하고 프롬프트를 작성해 줍니다
17:51기획 단계에서 언급했던 것처럼 제품의 강점을 강조할 수 있는 문구가 히어로 섹션에 들어가면 좋겠죠
17:57저는 이미 세 가지 문구를 미리 준비했고요.이 세 가지 문구가 번갈아가면 노출되도록 타이핑 애니메이션을 적용해 달라고 요청했습니다
18:09그럼 이렇게 문구가 순차적으로 타이핑되며 전환되는 애니메이션 효과가 적용됩니다
18:09굉장히 그럴싸해졌죠
18:15하지만 이렇게 타이틀 텍스트만 있으면 좀 밋밋하니까 헤딩 타이틀 위에 제품 이미지를 레이어드해서 더 멋지고 효과적인 마케팅 이미지로 만들어 볼게요
18:21어 제품 이미지는 GPT의 이미지 그리기을 사용해서 생성해 봤는데 저는 최첨단 기술이 적용된 미래 나이키 신발을 컨셉으로 이미지를 생성해 봤습니다
18:33그리고 이미지 배경까지 GPT에 요청해서 제거해 줬고요
18:33이제이 이미지를 레플릿 에이전트에서 어태치 파일 버튼을 클릭해서 업로드 해 줍니다
18:40그리고 프롬트로는이 PNG 이미지를 프로젝트에 직접 추가하고 G인덱스를 활용해 헤딩 타이틀 위에 이미지가 겹쳐 보이도록 배치해 달라고 작성했습니다
18:47참고로 G인덱스는 웹 개발할 때 요소가 쌓일 수 있도록 순서를 지정하는 CSS 속성인데 이런 개발 용어를 써서 요청을 하면 AI 에이전트가 좀 더 정확하게 요청을 이해할 수 있어요
18:59그런데 구체적으로 설명을 잘 하실 수 있다면 굳이 이런 용어를 모르셔도 상관없고요
19:05이미지가 헤딩 타이틀 위에 잘 레이어드 이미지 사이즈가 너무 크고 헤딩 타이틀 애니메이션에 따라 사이즈가 커졌다 작아졌다를 반복하고 있죠
19:12이것도 같은 방식으로 수정해 줄게요
19:18셀렉터로 요소를 선택하고 저는 이미지 사이즈를 헤딩 타이틀 가루 너비의 75% 비율에 애니메이션에 따라 사이즈가 변형되지 않도록 고정시켜 달라고 했습니다
19:24사이즈가 잘 조정되었는데 신발 이미지 주변에 푸론 블러 효과 같은게 적용되었죠
19:32이런 블러 제거 같은 단순 작업은 아까와 마찬가지로 어시스턴트로 수정하시면 됩니다
19:38셀렉터로 요소를 선택하고 신발 이미지 주변에 효과를 제거해 달라고 요청하면 이렇게 효과가 깔끔하게 잘 제거가 됩니다
19:46그리고 저는 추가로 이미지가 타이틀 중앙에 잘 맞도록 위치도 수정해 줬습니다
19:53디자인이 아까보다 훨씬 더 안정적이죠
19:53이제 결과물을 웹브라주에 띄어서 중간 점검을 해 볼게요
19:59보시면 이렇게 예상치 못하게 헤딩 타이틀 문구가 바뀔 때마다 그 아래 있는 요소들이 함께 움직이면서 막 들썩들썩 거리고 있죠
20:04이러면 사용자가 정보를 보기 힘드니까이 부분도 수정해 좋습니다
20:10그리고 프론트 쪽 개발하다 보면 간격이나 디자인을 아주 디테일하게 수정해야 하는 상황도 있습니다
20:16특히 디자이너라면이 간격의 픽셀 값이 뭐 7 이렇게 짝수가 아니거나 지정한 마진값대로 구현이 안 되면 신경 쇠하게 걸리는 경우도 있어요
20:22제가 그렇습니다
20:28이럴 때는 웹사이트에서 마우스 오른쪽 버튼 클릭
20:28여기서 검사를 클릭하시면 이런 창이 나타납니다
20:33그리고 여기는 마법 클릭하고 원하는 부분 클릭하시면이 디자인 요소에 적용된 구체적인 CSS 값을 이렇게 시각적으로 확인할 수 있어요
20:40지금 하단 마진이 128픽셀로 굉장히 넓은데이 부분만 레플릿에서 셀렉터로 지정한 뒤 값을 수정해 달라고 요청하면 되겠죠
20:46저는 하단 마진을 60픽셀로 수정해 달라고 요청해 봤습니다
20:53수정이 완료되어서 다시 검사창을 켜서 확인해 볼게요
20:53하단 마진이 60픽셀로 잘 수정된게 보이시죠? 좀 더 디테일한 프론트 핸드의 수정은 요런 식으로 하시면 되겠습니다
21:04이제 히어로 섹션 개발은 어느 정도 완료된 거 같고요
21:04마지막으로 저는이 왼쪽에 있는 플로팅 버튼이 굳이 필요가 없어 보여서 제거해 줬고 우측 하단에 있는이 두 버튼이 너무 자기 주장이 강해 보여서 라인 스타일로 좀 죽여줬습니다
21:16또 아까 설명드린 검사창을 활용하면 다른 웹사이트의 코드도 확인할 수 있는데 이걸 활용하면 내가 원하는 웹사이트의 디자인 요소로 동일하게 수정도 가능합니다
21:22예를 들어 저는이 상단 내비게이션의 스타일을 원본 레퍼런스 사이트의 내비게이션 디자인으로 동일하게 수정해 볼게요
21:28원본 사이트에서 검사를 클릭하고 마법으로 상단 내비게이션을 클릭하면이 UI를 이루고 있는 코드의 위치를 이렇게 확인할 수 있어요.이 코드 영역에서 마우스 오른쪽 클릭, 카피 메뉴를 보면 다양한 방식으로 코드를 복사할 수 있습니다
21:45먼저 HTML을 복사해 줄게요
21:45그리고 레플릿 에이전트에서 내비게이션 요소를 셀렉터로 지정해 줍니다
21:51그리고 제공한 코드대로 내비게이션에 HTML CSS를 수정해 달라고 프롬프트를 작성하고 아까 카피한 HTML 코드를 붙여 넣어 줍니다
21:57그리고 CSS 코드도 넣어 줄게요
22:03카피해서 이번에는 카피 스타일을 클릭합니다
22:03그럼 CSS까지 복사할 수 있어요
22:03그리고 다시 인풋의 코드를 넣어주고 프롬프트를 요청하면 됩니다
22:09수정이 완료되었고요
22:15내비게이션에 스펜태그 안에 숫자가 들어가긴 했지만 디자인이 확실히 레퍼런스 웹사이트처럼 바뀌었죠
22:20스펜태그는 어시스턴트로 따로 제거해 주시면 됩니다
22:20그런데 저는 기존 디자인이 더 마음에 들어서 변경된 코드는 취소해 줄게요
22:26레플릿 에이전트 창을 보면 개발이 업데이트된 시점마다 커밋 로그가 자동으로 남겨져 있고 이렇게 롤백 버튼도 제공됩니다.이 롤백 버튼을 클릭하면 이전 상태로 쉽게 되돌릴 수 있어요
22:39롤백이 완료되면 미리 보기 창단에 새로 호침 버튼을 클릭해서 기존 디자인으로 잘 돌아가는지 확인해 주시면 됩니다
22:44기존 디자인으로 잘 바뀌었죠? AI 에이전트가 한동대 의도와 다르게 개발을 진행할 때가 있는데 이럴 때이 롤백 기능을 활용하면 쉽게 복구할 수 있어 아주 유용해요
22:50페어로 섹션이 완성되었으니 이제 다음 단계로 이메일을 수집할 수 있는 인풋이 포함된 이메일 섹션을 개발해 보겠습니다
22:56어 프롬프트는 간단히 생성한 코드를 참고해서 유사한 스타일로 히어로 섹션 아래에 이메일 섹션을 만들어 달라고 했고요
23:01그리고 기본적으로 필요한 요소들 뭐 타이틀이나 본문, 이메일 인풋과 CTA 버튼을 명수해 줬고 그리고 이메일 섹션의 백그라운드 컬러는 헤딩 타이틀에서 사용한 메인 컬러를 설정해 달라고 덧붙여 줬습니다
23:19이메일 섹션이 개발이 되었고요
23:192단 레이아웃으로 되어 있고 기존 마진 정렬이 잘 맞지 않아 보이네요
23:25그리고 이메일 인풋도 시각적으로 눈에 잘 뛰지 않습니다
23:25그래서 이메일 섹션의 레이아웃을 중앙 정렬로 수정하고 이메일 인풋 디자인도 변경해 볼게요
23:31셀렉터로 이메일 섹션 전체를 클릭
23:31프롬프트는 이메일 섹션에 있는 모든 요소를 중앙 정렬로 해 달라고 작성했고 인풋의 컬러는 화이트
23:38CTA 버튼은 이메일 인풋 안으로 넣어 달라고 요청했습니다
23:44결과를 보시면 요청한 대로 디자인이 잘 변경되었죠
23:44인풋을 클릭하면 이메일 인풋이 액티브 상태로 바뀌고 이렇게 프론트엔드 상에서 이메일도 가능합니다
23:52하지만 이렇게 이메일을 입력해도 아직 백인드가 없기 때문에 어디에 저장되거나 전송되는 건 아니에요.이 부분은 프론트를 다 끝내고 하나씩 진행해 볼게요
24:04저는 추가로이 이메일 인풋의 액티브 테두리 라인이 너무 두꺼워서 디자인 변경을 요청했고 CTA 버튼 안에 있는 텍스트도 심플한 화살표로 대체해서 좀 더 미니멀하게 디자인을 수정해 줬습니다
24:16이제 이메일 섹션까지 완성되었고 어 다음 단계로는 좋아요 기능이 포함된 카드 형태 UI를 개발해 보겠습니다
24:21프롬프트는 이메일 섹션 아래에 세 가지의 신발을 홍보할 수 있는 카드 세 개를 만들어 달라고 했고 각 카드에는 좋아요 버튼을 포함하고 스타일은 기존과 유사하게 디자인해 달라고 했어요
24:34결과를 보면 카드 UI가 잘 생성되었죠
24:34좋아요 버튼을 클릭하면 요렇게 프론트 단에서 클릭되는 상태까지 잘 구현되어 있어요
24:39참고로 클릭은 이렇게 되지만 이메일 인풋과 마찬가지로 백핸드가 없는 상태이기 때문에 클릭된 상태가 저장되거나 서버에 반영되지 않습니다
24:45각 카드의 이미지는 히어로 섹션에 사용한 이미지가 들어가 있는데이 부분은 여러분이 직접 원하는 이미지로 교체해 보면서 연습해 보시면 좋겠고요
24:56저는 추가로 카드 간의 간격이 다소 넓게 느껴져서 간격을 조종해 달라고 요청했고 각 CTA 버튼이 필 컬러 상태라 너무 강해 보여서 라인 스타일 고스트 버튼으로 디자인을 변경해 달라고 요청해 줬어요
25:08간격이 적절하게 잘 조정되었고 CTA 버튼도 라인으로 바뀌어서 아까보다 훨씬 전체적으로 잘 어울리고 보기도 좋아졌죠
25:15이제 마지막으로 푸터를 만들어 줄게요
25:15웹사이트 바닥에 보시면 연락 천화 회사 정보 관련 링크 같은 거 넣는 영역이 있잖아요
25:21그걸 푸터라고 하는데이 카드 섹션 아래에 푸터도 만들어 달라고 요청을 해 줬습니다
25:27이제 랜딩 페이지의 프론트 엔드 작업은 거의 완료되었어요
25:32마지막 단계로 태블릿이나 모바일 기기에서도 레이아웃이 깨지지 않도록 반응 디자인을 적용해 보겠습니다
25:37반응형 디자인은 에이전트가 기본적으로 자동으로 설정해 주기 때문에 전체를 다 손 볼 필요는 없고 화면 크기를 조절해 보면서 어긋나는 부분만 선택적으로 수정해 주면 됩니다
25:43어, 지금 보시면 히어로 섹션 아래에 있는이 텍스트와 버튼이 모바일 사이즈가 되었을 때 정렬이 잘 맞지가 않죠
25:54이런 부분만 수정해 주는 겁니다.이 요소를 셀렉터로 선택해 주고 랜딩 페이지가 모바일 버전이 되었을 때 해당 디브태그의 모든 요소가 중앙 정렬되도록 해 달라고 요청해 줬습니다
26:00이제 모바일 사이즈에서도 해당 요소들이 중앙 정렬되어서 아까보다 훨씬 더 깔끔해 보이죠? 다음은 태블릿 사이즈를 확인해 볼게요
26:13창을 조정해 보면 현재 카드 UI가 태블릿 화면에서는 두 개 한 개씩 난어 배치되어서 불안정해 보입니다
26:19태블릿 화면에서는 세 개의 카드 UI가 모두 한 줄로 나란히 보이도록 수정해 줄게요
26:24셀렉터를 선택한 뒤 태블릿 사이즈가 되었을 때 세 개 카드가 모두 인라인으로 정렬되도록 요청해 줬습니다
26:30여기서 인라인은 요소들이 가로 방향으로 나란히 정렬되는 걸 말합니다
26:37카드 UI가 잘 수정되었고요
26:37창을 조정해 보면 PC와 태블릿 사이즈까지는 카드 UI가 세 개까지 잘 보여지다가 모바일 화면에서는 하나씩 세로로 배치되어 반응이 잘 적용된 걸 확인할 수 있습니다
26:49저는 같은 방식으로 상단 내비게이션도 모바일이 되었을 때 메뉴 버튼으로 바뀌도록 수정했고 그리고 푸터가 좀 좌측으로 쏠려 보여서 정렬도 다듬어 줬습니다
26:56이런 식으로 하나씩 체크하셔서 수정해 나가시면 됩니다
27:01이제 프론트 엔드 작업은 완료되었고 백엔드로 넘어가기 전에 점검을 해 볼게요
27:01보시면 아주 깔끔하게 잘 구현되었어요
27:08푸터까지 마진과 정렬도 잘 맞고 히어로 섹션 애니메이션도 잘 출력되고 태블릿 사이즈로 화면을 조정해도 안정적으로 잘 바뀌고 있죠
27:20카드 UI도 태블릿 사이즈에서 세 개가 잘 정렬되고 모바일 사이즈가 되었을 때 카드가 세로로 잘 쌓이고 있고 히어로 섹션 하단에 있는 요소도 모바일이 되었을 때 중앙 정률로 잘 바뀌죠
27:27그리고 상단 내비게이션도 메뉴 버튼으로 잘 바뀌고 있어요
27:34아주 훌륭합니다
27:34개인적으로 정말 만족스럽고요
27:34이제 다음으로 백핸드 작업으로 들어가서 이메일 수집과 좋아요 기능을 구현해 보도록 할게요
27:40이제 이메일을 수집하면 구글 시티에 저장되고 좋아요를 클릭하면 카운트가 올라가서에 저장되는 백엔드 작업을 시작해 볼 거예요
27:47이미 말씀드렸듯이 초보자 시점에서 바이브 코딩을 할 때 백엔드는 프론트보다 개발 난이도가 훨씬 더 높습니다
28:00그렇기 때문에 저는 가능한한 개발 난유도로 낮춰서 간단하게 구현해 볼 거예요
28:00그래서 이메일이 저장되는 데이터베이스 대신에 구글 시티의 이메일이 저장되도록 해 보겠습니다
28:05이건 구글 앱스 스크립트를 활용하면 정말 쉽게 만들 수 있어요
28:11구글 앱스 스크립트는 간단히 말하면 구글 서비스의 자동화 기능을 추구할 수 있는 도구입니다
28:17자바스크립트 문법 기반으로 작동하고 구글 제품들과 자연스럽게 연동되는게 장점이에요
28:23다만 앱스 스크리트를 사용하려면 간단한 코드 작성이 필요해요
28:23그런데 뭐 이것도 어려울게 없어요
28:28LNM에게 코드 작성을 맡기면 됩니다
28:28저는 GPT에서 프롬프트로 내가 제작한 웹사이트 이메일 인풋에 사용자가 이메일을 입력하고 제출하면 구글시티의 이메일이 저장되도록 하고 싶어 구글 앱스 스크립트를 활용해서 구현하고 싶은데 어떻게 하면 되는지 차근차근 설명해 줘라고 요청해 줬어요
28:40그럼 이렇게 단계별로 구체적인 가이드를 제공받을 수 있습니다
28:46첫 번째 단계는 구글 시트 준비이고요
28:46스프레드 시트를 만들어서 첫 번째 행해 이메일이라고 입력해야 하네요
28:52바로 하나씩 따라서 진행해 볼게요
28:52구글 드라이브에서 빈 스프레드시트 클릭
28:58새로운 스프레드시트를 만들어 주고 첫 번째 행에 이메일이라고 작성해 줬습니다
29:04그리고 스프레드시트의 제목도 이메일 수이라고 수정해 줄게요
29:04이제 다음 단계는 시트의 아이디를 복사하는 거라고 하네요
29:10보시면 구글 시트 URL에서 어떤 부분이 스프레드시트 아이디인지 잘 안내해 주고 있어요
29:16그리고 스프레드시트 상단 메뉴에 있는 확장 프로그램에서 앱스 스크립트를 클릭해서 스크립트 편집기를 열고 코드.gs라는 GS라는 곳에 아래 코드를 붙여 넣으러 합니다
29:21그럼이 코드를 복사해서이 과정도 하나씩 진행해 볼게요
29:27다시 스프레드시트로 와서 확정 프로그램 클릭
29:27앱스 스크립트가 보이죠? 클릭해 줍니다
29:33그럼 코드닷 파일이 나타나는데 기존 코드는 지우고 아까 복사한 코드를 붙여 넣어 줍니다
29:40그리고 붙여 놓은 코드를 보시면 친절하게 어디에 스프레드시티 아이디를 넣고 어디에 시트 이름을 넣어야 하는지 잘 나와 있죠? 그대로 넣어 주면 됩니다
29:45알파벳 d/와 슬디 사이에 있는 것이 스프레드시트 아이디라고 하는데 그대로 스프레드시트 아이디를 찾아서 복사해 줍니다
29:58그리고 앱스 스크립트 편집기에 넣었던 코드에 아이디를 그대로 넣어 줄게요
29:58그리고 시트 이름도 넣어 줘야 하는데 스프레드 시트 왼쪽 하단에 있는게 시트 이름입니다
30:04한글로 시트 1이라고 되어 있죠
30:04그대로 시트 1이라고 수정해 줄게요
30:10이제 다음 단계는 세 배포를 클릭한 뒤 배포 유형을 웹으로 선택, 설명 텍스트를 변경한 뒤 엑세스 사용자와 실행자 권한을 설정해 주고 배포된 URL을 복사하라고 하네요.이 과정도 어렵지 않습니다
30:23하나씩 해보죠
30:23다시 앱스 스크립트 편집기로 와서 배포를 클릭, 새 배포를 클릭합니다
30:29그리고 창이 나타나면 유형 선택에서 웹을 선택해 줄게요
30:34설명은 그냥 간단하게 이메일 수집이라고 작성해 줄게요
30:34그리고 웹은 나로 그대로 두고 엑세스 권한만 나만해서 모든 사용자로 변경해 주시면 됩니다
30:41그리고 배포를 클릭하고 잠시 기다리면 엑세스 승인 버튼이 나타나는데 클릭해 줍니다
30:47그리고 구글 계정을 선택해 주고 어드밴스드라는 버튼을 클릭합니다
30:54그리고 고투 제목 없는 프로젝트 클릭
30:54마지막으로 허가를 클릭하면 앱스 스크립트 설정은 끝났어요.이 웹 URL만 복사해 주시면 되겠습니다
31:00이제 다시 레플리스로 들어와서 셀렉터로 인풋 선택해 주시고요
31:06프롬프트로 아래 앱스 스크립트 웹 URL로 패치 요청해서 이메일 인풋에 메일 작성하면 구글 시트에 메일이 저장되도록 만들어 달라고 작성한 뒤 복사한 URL을 넣고 요청해 주시면 됩니다
31:13그럼 AI가 자동으로 패치 요청을 구현해 줍니다
31:19네
31:19이메일 기능이 개발 완료되었고요
31:19잘 작동되는지 확인해 보시죠
31:25임의로 이메일을 입력해서 제출을 클릭하면 이렇게 구독해 줘서 고맙다는 메시지가 나타납니다
31:30제가 실수로 두 번 클릭했는데 메시지도 정확히 두 번 떴네요
31:30그리고 구글 스프레드시트로가 보면 제가 두 번 클릭해서 동일한 아이디가 정확히 두 개가 저장된 걸 확인할 수 있어요
31:37참고로 아이디 중복 저장을 맡고 싶다면 이것도 그냥 프롬프트로 에이전트에게 요청하시면 됩니다
31:42이렇게 이메일 수 기능까지 구현해 봤고요
31:48이제 마지막으로이 카드 UI의 좋아요 버튼을 클릭하면 좋아요 수가 카운트되어서 데이터베이스에 저장될 수 있도록 개발을 해 보겠습니다
31:53그런데 여러분,이 좋아요 기능 굉장히 단순해 보이죠? 그냥 클릭하면 버튼 눌러지는 거잖아 생각할 수 있는데이 기능을 제대로 정의해 보면 생각보다 신경 써야 할게 많고 복잡합니다
32:05우선 한 번 클릭하면 좋아의 수가 + 1이 되어야 하고 다시 한번 클릭하면 -1이 되어야 해요
32:11토을 방식으로 작동하는 거죠
32:11그런데 단순히 숫자만 바뀌는게 아니라 사용자가 이전에 좋아요를 눌렀는지 아닌지를 판단하고 그에 따라 상태도 바뀌어야 해요
32:17그리고이 정보는 그대로 데이터베이스에 저장돼야 하죠
32:23또 좋아요 정보는 사용자에게 계속 보여줘야 하니까 클라이언트가 실시간으로 요청을 보내야하고 서버는 데이터베이스에서이 정보를 확인해서 응답해 줘야 해요
32:28그리고 같은 사용자가 중복해서 좋아요를 누를 수 없게 막는 것도 해 줘야 하고요
32:34어 이렇게 간단히만 정의해 봐도 좋아요 기능 하나에 생각보다 고려할게 정말 많죠
32:39그래도 이런 로직을 잘 이해하고 있으면 AI 에이전트에게 명령을 훨씬 더 정확하게 내릴 수 있어요
32:45그런데 클라이언트, 서버 이것도 뭐야라고 하실 수 있는데 한마디로 웹이나 앱 같은 디지털 프로덕트는 정보를 주거받을 때 클라이언트와 서버 구조로 작동해요
32:52이걸 더 쉽게 치킨 가게 비유해서 한 번에 이해시켜 드릴게요
32:58제가 치킨 가게에 가서 좋아요라는 치킨을 주문했다고 해 볼게요
32:58그럼 저는 치킨을 요청하는 손님 즉 클라이언트가 됩니다
33:04주문이 들어가면 주방에서는 냉장고에서 재료를 꺼내 요리를 하겠죠
33:09여기서이 냉장고가 바로 데이터베이스입니다
33:09필요한 재료 즉 정보를 저장해 두는 공간이죠
33:09그리고 치킨이 다 튀겨지면 직원이 제게 치킨을 가져다 주겠죠
33:15이때 서빙을 하는 직원이 바로 서버입니다
33:15서버는 데이터베이스에서 꺼낸 정보나 처리한 결과를 사용자 클라이언트에게 전달해 주는 역할을 해요
33:21그런데 서버는 단순히 배달만 하는게 아니고요
33:27주문을 확인하고 할인 계산도 하고 지금 제고가 있는지 없는지도 판단하는 등 여러 가지 역할을 합니다
33:33그만큼 똑똑한 직원인 거죠
33:33여러분들은 이제 웹사이트가 동작하는 기본 구조를 다 이해하신 거예요
33:39어때요? 생각보다 어렵지 않죠? 그리고 AI를 다루다 보면 API라는 말을 정말 자주 듣게 되는데 이참에 API까지 알아보죠
33:45예를 들어 서빙 직원이 주방에 좋아요 치킨 한 마리라고 정확하게 말해야 주방이 알아듣고 요리를 시작할 수 있잖아요
33:51그런데 막무관으로 이거 하나요라고 하면 주방이 알아듣지 못할 수도 있어요
33:56그래서이 둘 사이에는 정해진 주문 양식이 필요해요
33:56이게 바로 API입니다
33:56즉 API는 클라이언트와 서버가 정보를 주고받을 때 사용하는 정해진 통신 규칙입니다
34:02이런 요청은 어떤 형식으로 보내야 하고 응답은 어떤 형식으로 와야 하는지 다 정해져 있죠
34:08이제 여러분들 어디 가서 앱 쓰시다가 갑자기 앱이 멈췄다 이러면 아 서버 문제 같은데 이렇게 아는 척 하실 수 있게 되었습니다
34:13이제이 좋아요 기능을 본격적으로 구현해 볼 건데 저는 AI 에이전트를 활용해서 직접 간단한 서버와 데이터베이스 백엔드 API를 개발해 볼 거예요
34:25먼저 셀렉터로 카드 전체를 지정해 주고 아까 제가 설명드렸던 로직을 정리해서 프롬프트에 작성해 주면 되는데 다음과 같이 좋아요 기능을 구현해 줘라고 작성하고 로직을 하나씩 작성해 볼게요
34:38한번 클릭시 특정 아이템에 대한 카운트 1 증가
34:38제클릭시 특정 아이템에 대한 카운트 취소 1차감
34:45로그인하지 않아도 클릭 가능
34:45한 사람당 한 번만 클릭 가능
34:45중복 방지 필요
34:45데이터가 보존될 저장소 필요
34:52각 아이템의 정렬 순서는 고정
34:52뭐이 정도만 정리하면 충분할 것 같아서이 정도만 하고 요청해 볼게요
34:59자, 이제 개발이 완료되었고요
34:59확인해 보겠습니다
34:59좋아요 버튼을 클릭하면 해당 아이템의 좋아요 수가 이렇게 1 증가하고 다시 클릭하면 좋아요가 취소되어서 1이 차간되어서 0이 됩니다
35:05좋아요 정보가 데이터베이스에 잘 저장되고 있고 실시간으로 잘 보여지고 있죠
35:11만약 데이터베이스에 실제로 어떤 값들이 저장되고 있는지 직접 확인하고 싶으시다면 왼쪽에 있는이 데이터베이스 버튼을 클릭
35:17그럼 이런 표를 보실 수 있습니다
35:24제가 아까 데이터베이스는 그냥 엑셀 시트 표 같은 거라고 말씀드렸잖아요
35:24여기서 마이데이터를 클릭하고 프로덕트 라이크를 클릭하면 이렇게 실제 값들을 확인할 수 있는데 여러분들은 이제 이거 읽으실 수 있습니다
35:35프로덕트 아이디는 어떤 아이템인지를 말하는 거고요
35:35지금은 좋아요가 클릭되어 있는 아이템만 프로덕트 아이디로 보여지고 있는 거예요
35:41그리고 클라이언트 아이디는 누가 눌렀는지에 대한 것이고 크리에이트에는 언제 생성되었는지에 대한 정보도 잘 나와 있습니다
35:47그리고 프로덕트 라이크 카운트를 클릭하면 이렇게 모든 아이템의 기록을 확인하실 수 있습니다
35:53지금 1번 프로덕트 아이디에만 좋아요 카운트가 1로 되어 있는데 이렇게 두 번째 카드에 좋아요를 클릭하고 다시 데이터베이스로 가서 새로 고침을 클릭하면 이번 프로덕트 아이디의 라이크 카운트가 1이 추가된 걸 확인할 수 있어요
36:04실시간으로 잘 반영되고 있죠
36:04좋아요 기능이 아주 잘 구현되었습니다
36:10저는 마지막으로 좋아요 버튼과 이메일 인풋의 액티브 상태 디자인을 추가로 수정하고 마무리를 했습니다
36:17이제 이렇게 완성된 렌딩 페이지를 실제로 다른 사람도 방문할 수 있게 하려면 배포를 해 줘야 하는데요
36:23레플릿에서 배포하는 과정은 엄청 간단합니다.이 오른쪽 상단에 있는 디플로이 버튼을 클릭하면 이런 안내가 나타나는데 이건 서비스가 얼마나 많은 사용자 요청을 동시에 처리할지를 정하는 부분입니다
36:36초당 유닛을 얼마나 사용할지 안내되어 있고 슬라이더 UI에는 기본적으로 세 개 머신을 사용하도록 설정되어 있는데 이건 일정 유닛까지는 무료이고 얼마나 쓰느냐에 따라 추가 요금이 발생하기에 실제 서비스를 다 개발하고 배포하실 때 어느 정도의 트래픽이 발생할지 계산을 해 보신 다음에 설정하시면 좋겠습니다
36:50저는 그냥 개인적으로 배포할 거니까 바로 승인 버튼을 클릭해 줄게요
36:55그럼 다음 페이지에서 도메인을 설정할 수 있는데 도메인은 내 가게의 이름 정도로 생각하시면 됩니다
37:02내 웹사이트의 URL에 일부 포함되는 가게의 이름인 거죠
37:02저는 그냥 간단하게 제 닉네임 뒤에 MVP라고 작성해 줬어요
37:08그리고 배포를 클릭해 줍니다
37:08그러면 레플릿이 알아서 모든 배포 과정을 진행해 줍니다
37:14몇 분 기다리면 배포가 완료되고 배포 완료된 랜딩 페이지의 URL이 이렇게 나타납니다
37:20URL을 클릭해서 결과물을 확인해 보고 이번 영상은 마무리하도록 할게요
37:25URL을 보시면 제가 작성한 도메인이 잘 포함되어 있죠
37:25내비게이션과 히어로 섹션도 잘 구현되어 있고 이메일 인풋을 클릭하면 이렇게 블러 효과가 나타나도록 수정해 줬어요
37:32이메일 입력하고 전송 버튼을 클릭하면 이렇게 토스트 메시지가 나타나고요
37:39엑셀 시트로 가서 확인해 보면 이메일이 잘 저장되어 있는 걸 확인할 수 있어요
37:44그리고 좋아요 버튼도 클릭하면 이렇게 카운트가 실시간으로 잘 바뀌고 있고요
37:50데이터베이스에서 확인해 보면 좋아요 수가 잘 저장되고 있습니다
37:50그리고 푸터까지 깔끔하게 잘 구현되어 있죠
37:57이번 영상은 여기까지입니다.