바이브코딩 51

[바이브코딩 HTML 웹앱 20일 챌린지] 18일차 - 내가 만든 앱에 이름 붙이기

18일차에서는 지금까지 만든 웹앱에 이름과 소개 문구를 붙입니다. 기능 완성만큼 중요한 것이 정체성 정리이고, 앱의 톤과 목적을 한 문장으로 설명하는 작업이 브랜딩의 시작입니다.오늘은 AI와 함께 이름 후보를 뽑고, 헤더 문구와 버튼 텍스트를 다듬어 "내가 만든 앱"이라는 느낌을 더 분명하게 만드는 데 집중합니다.목차1. 오늘 만들 기능 소개2. AI에게 요청할 프롬프트3. 코드 작성과 실행 과정4. 코드 이해하기5. 오늘 만든 내용 정리6. 자주 묻는 질문7. 다음 단계로 이어가기1. 오늘 만들 기능 소개오늘 목표는 앱 이름 선정과 UI 문구 정리입니다. 예를 들어 앱 타이틀, 서브 설명, 빈 목록 안내 문구, 버튼 라벨을 통일된 톤으로 바꾸면 같은 기능이라도 훨씬 완성도 있게 보입니다.2. AI에게 ..

체크박스를 눌렀는데 완료 상태가 바뀌지 않을 때

목차1. 체크박스는 눌리는데 왜 상태가 안 바뀔까2. 가장 자주 생기는 원인 5가지3. 단계별 점검과 수정 방법4. 상태 동기화를 안정화하는 습관5. 자주 묻는 질문1. 체크박스는 눌리는데 왜 상태가 안 바뀔까할 일 목록을 만들 때 가장 흔한 문제 중 하나가 "체크박스는 클릭되는데 완료 상태가 반영되지 않는" 상황입니다. 화면에서 체크가 들어간 것처럼 보여도, 실제 데이터 배열은 그대로인 경우가 많고, 반대로 데이터는 바뀌었는데 화면이 다시 렌더링되지 않아 변화가 없는 것처럼 보일 때도 있습니다.결국 이 문제는 체크박스 자체보다 이벤트 처리, 데이터 업데이트, 화면 렌더링 세 단계 중 어디가 끊겼는지 찾는 작업입니다. 이 흐름을 순서대로 점검하면 대부분 빠르게 해결됩니다. 감으로 고치기보다 단계별로 검증..

에러 메시지를 AI에게 보낼 때 꼭 같이 적어야 할 정보

목차1. 왜 에러 메시지 한 줄만으로는 부족한가2. AI에게 꼭 전달해야 할 정보 6가지3. 복붙해서 쓰는 에러 질문 템플릿4. 해결 속도를 올리는 디버깅 습관5. 자주 묻는 질문1. 왜 에러 메시지 한 줄만으로는 부족한가AI에게 디버깅을 요청할 때 많은 사람이 에러 문장 한 줄만 보냅니다. 예를 들어 “Cannot read properties of undefined” 같은 메시지입니다. 문제는 이 문장만으로는 원인이 너무 많다는 점입니다. 같은 에러라도 변수 초기화 누락, 비동기 타이밍 이슈, API 응답 구조 변경 등 서로 다른 원인에서 발생할 수 있습니다. 그래서 AI는 정답 하나를 내기보다 가능한 시나리오를 길게 나열하게 됩니다.결국 핵심은 에러 문장 자체보다 에러가 발생한 맥락입니다. 어떤 환경..

[바이브코딩 HTML 웹앱 20일 챌린지] 17일차 - 복잡해진 코드를 파일별로 정리하기

17일차에서는 기능이 늘어나며 복잡해진 코드를 파일별로 정리합니다. 지금까지 빠르게 기능을 붙였다면, 오늘은 유지보수하기 쉬운 구조로 다듬는 날입니다. 파일 분리와 역할 분리를 해두면 이후 수정 속도와 안정성이 크게 좋아집니다.특히 초보자에게 리팩토링은 "어려운 최적화"가 아니라 코드를 읽기 쉬운 상태로 정돈하는 습관이라는 점이 중요합니다.목차1. 오늘 만들 기능 소개2. AI에게 요청할 프롬프트3. 코드 작성과 실행 과정4. 코드 이해하기5. 오늘 만든 내용 정리6. 자주 묻는 질문7. 다음 단계로 이어가기1. 오늘 만들 기능 소개오늘 목표는 HTML, CSS, JavaScript 파일을 역할 중심으로 정리하고, 중복 코드와 길어진 이벤트 로직을 함수 단위로 분리하는 것입니다. 기능 추가는 잠시 멈추고..

localStorage에 저장했는데 새로고침하면 사라질 때

목차1. 저장했는데 왜 사라질까2. 먼저 확인할 핵심 원인3. 단계별 해결 방법4. 안정적으로 유지하는 패턴5. 자주 묻는 질문1. 저장했는데 왜 사라질까localStorage는 브라우저에 데이터를 저장하므로, 원칙적으로 새로고침해도 값이 유지되어야 합니다. 그런데 실제 개발에서는 "분명 저장했는데 리로드하면 초기화"되는 일이 자주 발생합니다. 이때 localStorage가 고장 난 것이 아니라, 저장과 불러오기 흐름 중 하나가 깨진 경우가 대부분입니다.특히 초보 단계에서 흔한 실수는 저장 직후 화면에는 반영되지만, 페이지 시작 시 다시 읽어오는 코드가 없거나 잘못된 키를 쓰는 경우입니다. 또 다른 원인은 개발 중 초기화 코드가 매번 실행되어 저장값을 덮어쓰는 상황입니다. 핵심은 저장(set)과 복원(g..

초보자가 AI에게 코드 설명을 제대로 받는 질문법

목차1. 왜 “코드 설명해줘”만으로는 부족할까2. 초보자 질문의 핵심 구조 4가지3. 이해가 빨라지는 질문 템플릿4. 실전에서 자주 하는 실수와 개선법5. 자주 묻는 질문1. 왜 “코드 설명해줘”만으로는 부족할까초보자가 AI에게 코드를 물어볼 때 가장 흔한 문장은 “이 코드 설명해줘”입니다. 물론 이 질문도 나쁘지 않지만, 결과가 너무 넓고 추상적으로 나올 가능성이 큽니다. AI는 코드 전체를 훑으며 일반론을 말하기 쉽고, 사용자가 진짜 막힌 지점을 정확히 짚어주지 못할 때가 많습니다. 결국 설명을 읽어도 “그래서 나는 지금 뭘 고치면 되지?”라는 답답함이 남게 됩니다.핵심은 질문의 범위를 줄이는 것입니다. 코드의 모든 줄을 한 번에 이해하려고 하기보다, 현재 막힌 포인트를 잘라서 물어보면 답변 품질이 ..

[바이브코딩 HTML 웹앱 20일 챌린지] 16일차 - 모바일에서도 보기 좋은 화면으로 바꾸기

16일차에서는 모바일 화면에서도 보기 좋은 반응형 레이아웃을 적용합니다. 데스크톱에서는 괜찮던 구성도 작은 화면에서는 답답해질 수 있어서, 화면 크기에 맞춰 구조를 바꾸는 CSS 전략이 필요합니다.오늘은 `media query`를 중심으로 카드 배치, 여백, 버튼 크기, 입력창 너비를 조정해 스마트폰에서도 자연스럽게 사용할 수 있는 웹앱으로 개선합니다.목차1. 오늘 만들 기능 소개2. AI에게 요청할 프롬프트3. 코드 작성과 실행 과정4. 코드 이해하기5. 오늘 만든 내용 정리6. 자주 묻는 질문7. 다음 단계로 이어가기1. 오늘 만들 기능 소개오늘 목표는 모바일 가독성과 조작성을 높이는 것입니다. 카드가 가로로 길게 배치되어 있다면 세로 스택으로 바꾸고, 작은 화면에서 텍스트와 버튼이 겹치지 않도록 간..

CSS를 작성했는데 화면에 적용되지 않을 때 확인 순서

목차1. CSS가 안 먹는 이유부터 이해하기2. 가장 먼저 확인할 체크포인트3. 문제를 빠르게 찾는 점검 순서4. 재발 방지를 위한 스타일링 습관5. 자주 묻는 질문1. CSS가 안 먹는 이유부터 이해하기분명히 CSS를 작성했는데 화면에서 아무 변화가 없으면, 처음에는 코드 전체가 잘못된 것처럼 느껴집니다. 하지만 실제로는 대부분 단순한 연결 문제입니다. 대표적으로 파일 경로가 틀렸거나, 선택자가 대상 요소와 일치하지 않거나, 더 강한 우선순위 스타일에 덮여서 적용이 보이지 않는 경우가 많습니다.핵심은 "CSS를 썼다"가 아니라 "브라우저가 그 CSS를 읽고, 해당 요소에, 이길 수 있는 우선순위로 적용했는가"를 확인하는 것입니다. 이 세 단계 중 하나라도 빠지면 작성한 스타일은 존재해도 화면에는 나타나..

AI에게 웹앱 기능을 단계별로 요청하는 프롬프트 구조

목차1. 왜 단계별 요청 구조가 필요한가2. 실전에서 쓰는 5단계 프롬프트 프레임3. 단계별 요청 문장 템플릿4. 실패를 줄이는 운영 원칙5. 자주 묻는 질문1. 왜 단계별 요청 구조가 필요한가AI에게 웹앱을 요청할 때 많은 사람이 처음부터 “로그인, 게시판, 검색, 관리자 페이지까지 다 만들어줘”라고 말합니다. 시작은 빠를 수 있지만 결과는 대개 불안정합니다. 기능이 섞인 상태로 생성되면 어디가 잘못됐는지 찾기 어렵고, 한 부분을 수정하면 다른 부분이 깨지는 일이 반복됩니다. 그래서 필요한 것이 단계별 요청 구조입니다.단계별 요청은 단순히 일을 쪼개는 방식이 아닙니다. 기능별 책임을 분리하고, 각 단계마다 검증 기준을 두어 리스크를 낮추는 방식입니다. 특히 초보자에게는 “무엇을 먼저 확인해야 하는지”가..

[바이브코딩 HTML 웹앱 20일 챌린지] 15일차 - 할 일을 검색하고 상태별로 걸러보기

15일차에서는 할 일 검색과 상태 필터 기능을 추가합니다. 항목이 많아질수록 원하는 할 일을 찾기 어려워지기 때문에, 키워드 검색 + 완료/미완료 필터는 사용성을 크게 높여줍니다.오늘 구현의 핵심은 목록 전체를 다시 만들지 않고, 조건에 맞는 항목만 보여주거나 숨기는 방식으로 가볍게 처리하는 것입니다.목차1. 오늘 만들 기능 소개2. AI에게 요청할 프롬프트3. 코드 작성과 실행 과정4. 코드 이해하기5. 오늘 만든 내용 정리6. 자주 묻는 질문7. 다음 단계로 이어가기1. 오늘 만들 기능 소개오늘은 두 가지를 만듭니다. 첫째, 입력한 키워드가 포함된 할 일만 보여주는 검색 기능. 둘째, 전체/완료/미완료 조건으로 목록을 나눠 보는 상태 필터입니다.2. AI에게 요청할 프롬프트검색 기준과 필터 종류를 함..