LeanX

규칙 파일과 보안 기초

대부분의 AI 코딩 도구가 지원하는 '규칙 파일'은 에이전트를 위한 영구 시스템 프롬프트로, 최소 변경·API 키 보호(환경 변수)·API 요청 rate limit·공개 폼 CAPTCHA·입력값 검증 같은 보안 원칙을 여기에 적어 두면 매 요청마다 자동으로 지켜집니다.

앞 레슨에서 좋은 습관을 잔뜩 배웠습니다 — 작게 바꾸기, 자주 저장하기, 맥락 주기. 그런데 이걸 매번 프롬프트마다 되풀이해 말하려면 번거롭고, 결국 깜빡하게 됩니다. 다행히 대부분의 AI 코딩 도구에는 이 규칙들을 한 번 적어 두면 계속 기억하게 하는 장치가 있습니다.

바로 '규칙 파일(rules/instructions)'입니다. 코딩 에이전트를 위한 '영구 시스템 프롬프트' 혹은 '팀 규칙 메모'라고 생각하면 됩니다. 여기에 적힌 지침은 당신이 무슨 요청을 하든 매번 함께 읽힙니다.

규칙 파일이란 — 에이전트의 영구 메모

규칙 파일 = 에이전트의 영구 시스템 프롬프트

  • 규칙 파일 (rules) 코드 변경은 최소한으로 · API 키는 절대 코드에 넣지 마 · 모든 API에 rate limit · 공개 폼엔 CAPTCHA · 입력값은 항상 검증
  • 나의 프롬프트 '로그인 기능 만들어줘' — 규칙 파일이 매 요청마다 자동으로 함께 읽힘
  • AI 코딩 에이전트 규칙을 매번 상기함
  • 규칙을 지킨 코드 안전한 기본값으로 생성

규칙 파일은 매번 반복해 말하지 않아도 에이전트가 늘 기억하는 '팀 규칙'입니다. 한 번 잘 적어 두면 모든 작업에 자동 적용됩니다.

꼭 넣어야 할 규칙들

  • 코드 변경은 최소한으로: AI는 사소한 수정에도 필요 이상으로 여러 파일을 건드려 새 버그를 만드는 경향이 있습니다. '요청과 무관한 부분은 바꾸지 말라'고 못 박습니다.
  • API 키·비밀 값은 절대 코드에 넣지 말고 환경 변수로: 노출되면 요금 폭탄·도용으로 이어집니다.
  • 모든 API 엔드포인트에 rate limit(요청 제한): 폭주하는 요청으로 인한 비용 폭발과 무차별 공격을 막습니다.
  • 공개·회원가입 폼에는 CAPTCHA: 자동 봇의 스팸 가입·악용을 걸러 냅니다.
  • 사용자 입력값은 항상 검증(validation): 신뢰하지 말고 형식·범위를 확인하고 정제(sanitize)합니다.
  • 보안 모범 사례를 따르라: 확신이 없으면 안전한 기본값을 택하게 합니다.

보안 기초 — 비개발자가 반드시 알아야 할 것

보안은 전문가만의 영역이 아닙니다. 서비스를 세상에 공개하는 순간, 최소한의 상식이 없으면 큰 사고로 이어집니다. 아래 네 가지는 반드시 알아 두세요.

① API 키·비밀 값 보호가 첫째

API 키, 코드에 박지 말고 환경 변수로

위험 — 키를 코드에 직접 박음

  • app.js에 key = "sk-abc123..." 처럼 값을 그대로 박음
  • push하면 공개 저장소(☁)에 그대로 올라감
  • 누구나 열람 → 요금 폭탄·도용

안전 — 키는 .env 에, .env 는 .gitignore 에

  • .env 에 API_KEY=sk-abc123... — 내 컴퓨터에만 존재
  • .gitignore 에 .env 등록 — 업로드 목록에서 제외
  • app.js 는 환경변수(API_KEY) 이름만 참조 — 코드엔 값이 아니라 '이름'만

저장소엔 키가 안 올라감 → 안전

비밀 값은 코드가 아니라 환경 변수(.env)에 두고, .env는 반드시 .gitignore로 업로드에서 제외합니다. 코드에는 값이 아니라 '이름'만 남깁니다.

API 키는 외부 서비스(지도, 결제, AI 등)를 쓸 때 발급받는 '전용 열쇠'입니다. 이 열쇠가 공개 저장소에 올라가면 누구나 훔쳐 쓸 수 있고, 그 사용료는 고스란히 당신에게 청구됩니다. 그래서 키는 코드가 아니라 환경 변수(주로 .env 파일)에 두고, 그 파일은 절대 업로드되지 않도록 .gitignore에 등록합니다. AI에게도 '비밀 값은 반드시 환경 변수로 처리하라'고 규칙에 못 박아 두세요.

AI 코딩 도구는 지시하지 않으면 API 키를 코드에 그대로 박아 넣는 경우가 흔합니다. 실수로 이미 커밋했다면, 그 키는 '유출된 것'으로 간주하고 즉시 폐기·재발급하세요. 저장소에서 지워도 기록에는 남기 때문입니다. 공개 전에 비밀 값이 새어 나가지 않았는지 점검하는 습관을 들이세요.

② Rate limit — 요청 제한은 백엔드에서

rate limit은 '한 사람이 1분에 요청을 몇 번까지'처럼 요청 횟수를 제한하는 장치입니다. 로그인 시도를 무한정 허용하면 비밀번호를 무차별로 대입하는 공격에 뚫리고, API 호출이 폭주하면 비용이 폭발합니다. 중요한 점: rate limit은 반드시 '백엔드'에서 걸어야 합니다. 화면(프론트엔드)에만 걸면 우회가 쉬워 무용지물입니다. AI에게 '백엔드에서 rate limit을 적용하라'고 명시하세요.

③ 입력값 검증 — 사용자를 믿지 마라

폼·검색창 등 사용자가 입력하는 모든 곳은 잠재적 공격 통로입니다. 악의적 입력이 그대로 처리되면 데이터가 새거나 화면이 조작될 수 있습니다(예: XSS, 인젝션). 그래서 입력값은 서버에서 형식·범위를 검증하고, 위험한 문자를 정제(sanitize)하며, 데이터베이스 질의는 값을 안전하게 끼워 넣는 방식(파라미터화)을 써야 합니다. AI에게 요청할 때 '입력 검증', '정제(sanitization)', '파라미터화'라는 단어를 직접 써 주면 훨씬 안전한 코드를 만들어 줍니다.

④ CAPTCHA — 공개 폼의 문지기

회원가입·문의처럼 누구나 접근하는 공개 폼에는 CAPTCHA(사람인지 확인하는 절차)를 붙여 자동 봇의 대량 가입·스팸을 막습니다. 공개적으로 노출되는 입력 지점에는 기본으로 고려하세요.

위협무엇이 위험한가규칙 파일 방어
키 유출요금 폭탄·계정 도용비밀 값은 환경 변수(.env)+.gitignore
무차별 공격로그인 뚫림·비용 폭발백엔드에서 rate limit
악성 입력데이터 유출·화면 조작입력 검증·정제·파라미터화
봇 남용스팸·대량 가입공개 폼에 CAPTCHA

프롬프트 — 규칙 파일에 넣을 보안 지침

이 프로젝트의 규칙 파일에 아래 지침을 추가해 줘. 앞으로 모든 작업에서 항상 지켜:

[일반]
- 요청과 무관한 코드는 바꾸지 마. 변경은 필요한 최소한으로.

[보안]
- API 키·비밀번호·토큰 등 비밀 값은 절대 코드에 넣지 말고 환경 변수(.env)로 처리해.
  그리고 .env 는 .gitignore 에 반드시 포함해.
- 모든 API 엔드포인트에 백엔드 기준 rate limit(요청 제한)을 적용해.
- 사용자 입력은 항상 서버에서 검증하고 정제(sanitize)하며, DB 질의는 파라미터화해.
- 회원가입·공개 폼에는 CAPTCHA를 넣어.
- 확신이 없으면 항상 더 안전한 쪽을 택해.

보안 규칙은 '나중에'가 아니라 프로젝트 시작 때 규칙 파일에 넣어 두는 것이 가장 쉽습니다. 처음부터 안전한 기본값으로 지어 올리면, 나중에 취약점을 찾아 뜯어고치는 훨씬 큰 수고를 아낄 수 있습니다.

여기까지가 바이브 코딩의 기초입니다. 다섯 손가락(사고·구조·체크포인트·디버깅·맥락)을 펴고, 규칙 파일로 좋은 습관과 보안을 자동화하면, AI는 더 이상 요행을 바라는 마법이 아니라 믿고 함께 일하는 동료가 됩니다. 이제 작은 MVP 하나를 골라, 오늘 배운 흐름대로 직접 대화하며 지어 보세요 — 그게 가장 빠른 다음 걸음입니다.