2026/05 74

AI가 준 코드가 작동하지 않을 때 수정 요청하는 법

목차1. 왜 AI 코드가 바로 안 돌아갈까2. 수정 요청 전에 준비할 정보3. 효과적인 재요청 문장 템플릿4. 디버깅 속도를 높이는 협업 습관5. 자주 묻는 질문1. 왜 AI 코드가 바로 안 돌아갈까AI가 제공한 코드는 "일반적인 환경"을 기준으로 생성되는 경우가 많습니다. 그런데 실제 프로젝트는 파일 구조, 라이브러리 버전, 데이터 형식, 빌드 환경이 다르기 때문에 그대로 붙여넣으면 동작하지 않을 수 있습니다. 이건 이상한 일이 아니라 자연스러운 현상입니다.중요한 건 "코드가 틀렸다"고 단정하기보다, 현재 환경과 맞지 않는 지점을 빠르게 찾아 다시 요청하는 것입니다. 요청 품질이 올라가면 답변 정확도도 크게 올라갑니다. 즉, AI 활용의 핵심은 한 번에 정답을 받는 것이 아니라 증상과 맥락을 정확히 전..

기능 추가를 요청할 때 기존 코드를 망치지 않게 하는 법

목차1. 기능 추가가 기존 코드를 깨뜨리는 이유2. 안전한 기능 추가 요청의 핵심 원칙3. 복붙해서 쓰는 실전 요청 템플릿4. 적용 후 회귀 버그를 막는 점검법5. 자주 묻는 질문1. 기능 추가가 기존 코드를 깨뜨리는 이유AI에게 새 기능을 요청할 때 가장 흔한 문제는 “원하던 기능은 들어갔는데 기존 기능이 망가졌다”는 상황입니다. 이런 회귀 버그는 보통 AI가 나빠서 생기는 게 아니라, 요청 범위가 넓고 제약이 없어서 생깁니다. “검색 기능 추가해줘”처럼 목표만 주면 AI는 구현 편의를 위해 기존 구조를 크게 바꾸기도 합니다. 그 결과 기존 이벤트 흐름이나 상태 관리 규칙이 무너질 수 있습니다.특히 프론트엔드에서는 작은 변경이 연쇄 영향을 만들기 쉽습니다. 필터 하나를 추가했는데 렌더링 조건이 바뀌고,..

조건문이 너무 길어졌을 때 읽기 좋게 바꾸는 법: 초보 코드 리뷰 Before & After

목차1. 주제 소개2. 핵심 내용3. 적용 방법4. 정리5. 자주 묻는 질문1. 주제 소개초보 코드 리뷰를 하다 보면 가장 자주 만나는 장면이 긴 조건문입니다. `if` 안에 `if`가 들어가고, `else if`가 계속 이어지며, 논리연산자까지 섞이면 코드가 동작하더라도 읽기가 매우 어려워집니다. 특히 로그인, 결제, 권한 체크 같은 분기 많은 기능에서 이런 문제가 자주 나타납니다. 문제는 단순히 코드가 길다는 것이 아니라, 어떤 케이스가 먼저 처리되고 어떤 케이스가 누락됐는지 파악하기 어렵다는 점입니다. 이 상태에서는 수정할 때마다 예상치 못한 회귀 버그가 생기기 쉽습니다.이번 글에서는 길어진 조건문을 읽기 좋게 바꾸는 기본 기준을 Before & After 관점으로 정리합니다. 핵심은 분기 자체를 ..

[바이브코딩 HTML 웹앱 20일 챌린지] 20일차 - 20일 동안 만든 웹앱 돌아보고 확장 아이디어 정리하기

20일차에서는 지금까지 만든 웹앱을 전체 점검하고, 다음 확장 방향을 정리합니다. 기능을 하나씩 쌓아온 흐름을 돌아보며 무엇이 완성됐고 무엇을 개선할지를 명확히 하는 마무리 단계입니다.이번 회차의 핵심은 새로운 기능 추가보다 회고와 우선순위 설정입니다. 완성본을 점검하고 다음 프로젝트로 자연스럽게 이어질 수 있는 기준을 만드는 데 집중합니다.목차1. 오늘 만들 기능 소개2. AI에게 요청할 프롬프트3. 코드 작성과 실행 과정4. 코드 이해하기5. 오늘 만든 내용 정리6. 자주 묻는 질문7. 이전 단계 돌아보기1. 오늘 만들 기능 소개오늘 목표는 20일 동안 구현한 기능을 체크리스트로 검토하는 것입니다. 할 일, 메모, 기분 기록, 타이머, 습관 체크, 진행률, 다크모드, 검색/필터, 반응형, 배포까지 핵..

화면에는 보이는데 클릭이 안 되는 이유

목차1. 보이는데 클릭이 안 되는 현상 이해2. 가장 흔한 원인 체크리스트3. 빠르게 해결하는 점검 순서4. 클릭 이슈 재발 방지 팁5. 자주 묻는 질문1. 보이는데 클릭이 안 되는 현상 이해버튼이나 링크가 화면에 분명히 보이는데 클릭이 안 되면, 많은 분이 JavaScript 이벤트 문제부터 의심합니다. 물론 이벤트 바인딩 문제일 수도 있지만, 실제로는 CSS 레이어 충돌이나 disabled 상태처럼 UI 구조 문제인 경우가 매우 흔합니다. 즉 "보인다"와 "클릭 가능하다"는 완전히 다른 조건입니다.클릭 가능하려면 요소 위를 다른 레이어가 막고 있지 않아야 하고, 포인터 이벤트가 허용되어야 하며, 요소가 비활성 상태가 아니어야 합니다. 그래서 이 문제는 레이아웃, 속성 상태, 이벤트 연결을 동시에 확인..

AI가 만든 코드를 내 프로젝트에 맞게 바꾸는 요청법

목차1. 왜 그대로 붙이면 문제가 생길까2. 프로젝트 맞춤 요청의 핵심 정보3. 실전 변환 프롬프트 작성법4. 안정적으로 반영하는 적용 순서5. 자주 묻는 질문1. 왜 그대로 붙이면 문제가 생길까AI가 만들어준 코드는 출발점으로 훌륭하지만, 내 프로젝트에 바로 붙이면 충돌이 생기기 쉽습니다. 이유는 간단합니다. AI가 생성한 코드는 보통 일반적인 구조를 기준으로 하고, 실제 프로젝트는 팀 규칙, 폴더 구조, 상태 관리 방식, 공통 컴포넌트 정책이 이미 정해져 있기 때문입니다. 겉보기에는 동작해도 장기적으로 유지보수 비용이 커질 수 있습니다.예를 들어 동일한 기능이라도 우리 팀은 `fetch` 대신 전역 API 클라이언트를 쓰고, 에러 처리는 공통 핸들러를 거쳐야 할 수 있습니다. 그런데 이런 규칙을 전달..

localStorage 저장 코드를 함수로 분리해보기: 초보 코드 리뷰 Before & After

목차1. 주제 소개2. 핵심 내용3. 적용 방법4. 정리5. 자주 묻는 질문1. 주제 소개초보 프로젝트에서 localStorage는 매우 자주 사용됩니다. 다크모드 상태 저장, 최근 검색어 보관, 임시 폼 데이터 유지 같은 기능을 빠르게 만들 수 있기 때문입니다. 문제는 이 저장/조회 코드가 파일 곳곳에 흩어지기 시작할 때 발생합니다. 어떤 곳에서는 `JSON.stringify`를 쓰고, 다른 곳에서는 문자열 그대로 넣고, 키 이름도 제각각이면 버그가 생겨도 원인을 찾기 어렵습니다. 특히 파싱 오류나 null 처리 누락은 화면이 조용히 깨지는 원인이 됩니다.이번 글에서는 localStorage 코드를 함수로 분리해 안정성과 가독성을 높이는 방법을 Before & After 관점으로 정리합니다. 핵심은 단..

[바이브코딩 HTML 웹앱 20일 챌린지] 19일차 - GitHub Pages로 웹앱 배포하기

19일차에서는 완성한 웹앱을 GitHub Pages로 배포합니다. 이제 로컬에서만 보던 프로젝트를 링크로 공유할 수 있게 되며, "만드는 단계"에서 "보여주는 단계"로 전환되는 중요한 시점입니다.초보자에게 배포는 어렵게 느껴질 수 있지만, 저장소 생성 → 파일 업로드 → Pages 설정 순서만 지키면 안정적으로 완료할 수 있습니다.목차1. 오늘 만들 기능 소개2. AI에게 요청할 프롬프트3. 코드 작성과 실행 과정4. 코드 이해하기5. 오늘 만든 내용 정리6. 자주 묻는 질문7. 다음 단계로 이어가기1. 오늘 만들 기능 소개오늘 목표는 GitHub 저장소를 만들고 웹앱 파일을 업로드한 뒤, GitHub Pages를 활성화해 실제 접속 가능한 배포 URL을 얻는 것입니다. 이 링크를 통해 다른 사람도 내 ..

입력창 값이 제대로 가져와지지 않을 때 점검할 것

목차1. 입력값이 비어 보이는 대표 상황2. 먼저 확인할 핵심 체크리스트3. 단계별 디버깅 순서4. 입력 처리 안정화 습관5. 자주 묻는 질문1. 입력값이 비어 보이는 대표 상황폼 기능을 만들 때 "분명 입력했는데 값이 안 들어온다"는 문제는 정말 자주 발생합니다. 콘솔로 찍으면 빈 문자열이 나오거나, 이전 값이 남아 있거나, 아예 undefined가 나오는 식입니다. 이때 대부분은 입력창 자체 문제가 아니라 이벤트 시점이나 요소 선택 방식에서 실수가 생긴 경우가 많습니다.핵심은 어떤 요소에서, 어떤 시점에, 어떤 속성으로 값을 읽는지를 명확히 분리해 보는 것입니다. 입력창 값을 다룰 때는 value, textContent, innerText를 혼동하기 쉽고, submit 이벤트 기본 동작 때문에 값 확..

원하는 디자인이 안 나올 때 프롬프트를 수정하는 방법

목차1. 왜 결과가 마음에 들지 않을까2. 디자인 프롬프트 수정의 핵심 원칙3. 실패한 요청을 개선하는 실전 예시4. 반복 수정 시간을 줄이는 체크리스트5. 자주 묻는 질문1. 왜 결과가 마음에 들지 않을까AI에게 디자인을 요청했는데 결과가 밋밋하거나 의도와 다르게 나오는 이유는 대개 비슷합니다. “깔끔하게 만들어줘”, “예쁘게 바꿔줘”처럼 추상적인 표현만 있고, 구체적인 기준이 없기 때문입니다. AI는 이런 요청을 받으면 평균적인 안전한 결과를 선택하는 경향이 있습니다. 즉, 실패의 원인은 모델 성능 부족이 아니라 요구 조건의 모호함인 경우가 많습니다.특히 웹 디자인에서는 레이아웃, 타이포그래피, 컬러, 컴포넌트 밀도, 여백 리듬 같은 요소가 동시에 작동합니다. 그런데 요청에서 이 축들을 분리하지 않으..