본문 바로가기
일반IT/AI

🤖 AI가 코드를 짜주는 시대, 보안은 누가 책임지나? — 노코드 개발의 그림자

by gasbugs 2026. 3. 27.

"AI한테 시켰더니 잘 되더라고요."
그 코드 안에 비밀번호가 하드코딩되어 있다는 걸 알고 계셨나요?


🎯 이 글에서 다루는 것

  • AI Agent로 개발하면서 무심코 저지르는 보안 실수들
  • 노코드·비전공자 개발의 구조적 위험성
  • 하드코딩된 시크릿이 왜 치명적인지 (실제 사례 포함)
  • AI가 더 발전하면 이 문제가 자동으로 해결될까?
  • 우리가 지금 당장 해야 할 현실적인 성찰과 대응

📌 도입 / 배경 — "일단 돌아가면 된 거 아닌가요?"

요즘 개발 환경이 빠르게 바뀌고 있습니다. ChatGPT, Claude, Cursor, GitHub Copilot… AI한테 "이거 만들어줘"라고 말하면 그럴싸한 코드가 뚝딱 나오는 시대가 됐죠.

 

덕분에 정말 많은 것들이 가능해졌습니다. 기획자가 직접 프로토타입을 만들고, 마케터가 데이터 파이프라인을 구성하고, 디자이너가 API를 연동합니다. "비전공자도 개발할 수 있는 시대"라는 말이 단순한 구호가 아니라 현실이 됐어요.

 

그런데 문제가 있습니다.

 

AI가 코드를 잘 짜주는 건 맞습니다. 하지만 AI는 보안을 알아서 챙겨주지 않습니다. 아니, 정확히는 — 물어보지 않으면 챙겨주지 않습니다.

# AI가 아무 생각 없이 만들어준 코드
import openai

client = openai.OpenAI(api_key="sk-proj-xxxxxxxxxxxxxxxxxxxxxxxx")  # 😱

response = client.chat.completions.create(
    model="gpt-4",
    messages=[{"role": "user", "content": "안녕"}]
)

 

이런 코드가 GitHub에 올라가는 데 걸리는 시간은 단 몇 분입니다. 그리고 이 API 키가 탈취되는 데 걸리는 시간은... 그보다 훨씬 짧습니다.

 

 


🔍 왜 AI는 보안을 챙기지 않는가?

AI는 기본적으로 "요청한 것을 동작하게 만드는 것" 이 1순위입니다. 사용자가 "AWS S3에 파일 업로드하는 코드 짜줘"라고 하면, 가장 빠르게 동작하는 코드를 먼저 내놓습니다.

 

여기서 보안 모범 사례까지 함께 요구하지 않으면, AI는 당연하다는 듯이 Access Key를 코드에 직접 박아버립니다.

🧩 하드코딩이란?

하드코딩(Hardcoding) 이란 코드 안에 값을 직접 써넣는 행위입니다. 보안 관점에서 특히 문제가 되는 것은 비밀 정보를 코드에 직접 작성하는 경우입니다:

 

 

하드코딩 하면 안 되는 것들  왜 위험한가
API 키 (OpenAI, Stripe, AWS 등) GitHub 업로드 시 전 세계에 공개됨
DB 비밀번호 코드 공유만으로 DB 접근 가능
JWT Secret 토큰 위조 가능
클라우드 IAM 자격증명 클라우드 전체 권한 탈취 위험
OAuth Client Secret 서비스 사칭 가능

 

실제로 2023~2024년 사이, GitHub에서 수백만 건의 시크릿이 노출된 사고가 보고되었습니다. 그 중 상당수는 "AI가 만들어준 코드를 그냥 올린" 케이스였습니다.

 

🔐 올바른 방법: 환경 변수와 시크릿 관리

# ✅ 올바른 방법 — 환경 변수 활용
import os
from openai import OpenAI

# API 키는 환경 변수에서 읽어온다
client = OpenAI(api_key=os.environ.get("OPENAI_API_KEY"))

# 로컬 개발 시엔 .env 파일을 사용하되, .gitignore에 반드시 추가
# 프로덕션 환경에서는 AWS Secrets Manager, Azure Key Vault,
# HashiCorp Vault 등 전용 서비스를 사용한다
# .env 파일 (절대로 Git에 올리지 않는다)
OPENAI_API_KEY=sk-proj-xxxx
DB_PASSWORD=my_secret_password

# .gitignore 에 반드시 추가
.env
*.env

AI에게 코드를 요청할 때는 이렇게 물어보는 습관이 필요합니다:

AWS SDK 연동 코드 짜줘.
단, 자격증명은 하드코딩하지 말고 환경 변수나 IAM Role을 사용하는 방식으로.

 

 

딱 이 한 문장 차이가 안전한 코드와 위험한 코드를 가릅니다.


🏗️ 노코드·비전공자 개발의 구조적 문제

하드코딩은 사실 빙산의 일각입니다. 더 근본적인 문제를 짚어봐야 합니다.

1️⃣ 인프라 구조를 모른 채 만든다

노코드 도구나 AI로 뭔가를 만들 때, 그것이 실제로 어떤 인프라 위에서 동작하는지 모르는 경우가 많습니다.

예를 들어, Make(구 Integromat)나 Zapier로 자동화를 만들었을 때 — 내 데이터가 어느 서버를 거쳐가는지, 어떤 권한으로 접근되는지, 로그가 어디에 남는지 아는 사람이 얼마나 될까요?

이건 단순한 호기심의 문제가 아니라 법적 책임의 문제입니다.

2️⃣ 법을 모른 채 개인정보를 다룬다

국내에서 서비스를 운영하면 최소한 이 두 가지 법을 알아야 합니다:

  • 개인정보 보호법(개보법): 개인정보 수집·처리 시 동의 의무, 안전조치 의무
  • 정보통신망 이용촉진 및 정보보호 등에 관한 법률(망법): 기술적·관리적 보호조치 의무

AI로 회원가입 폼을 만들었는데, 개인정보 처리방침도 없고, 암호화도 없고, 수집 동의도 제대로 받지 않았다면 — 그건 단순한 실수가 아니라 법 위반입니다. 과태료는 최대 수천만 원에서 매출액의 3%까지 부과될 수 있습니다.

AI는 "이 기능 만들어줘"라는 요청에 법적 컴플라이언스를 자동으로 끼워주지 않습니다.

3️⃣ 최소 권한 원칙을 모른다

// 😱 AI가 별 생각 없이 만들어준 IAM 정책
{
  "Effect": "Allow",
  "Action": "*",
  "Resource": "*"
}

 

"일단 다 되게 해줘"라는 접근은 편하지만 치명적입니다. 최소 권한 원칙(Principle of Least Privilege)은 보안의 기본 중의 기본인데, 이를 모르면 AI가 만들어주는 "일단 동작하는" 설정을 그대로 프로덕션에 올리게 됩니다.


💭 AI가 더 발전하면 이 문제가 해결될까?

이 질문은 굉장히 중요하고, 솔직하게 답해야 합니다.

 

부분적으로는 나아질 것입니다.

 

이미 GitHub Copilot은 시크릿 스캐닝 기능을 통해 하드코딩된 API 키를 감지하고 경고를 줍니다. AWS나 Azure 같은 클라우드도 자격증명이 공개 레포에 올라가면 자동으로 비활성화하는 메커니즘을 운영하고 있습니다. AI 모델 자체도 점점 보안 모범 사례를 더 적극적으로 제안하는 방향으로 발전하고 있습니다.

 

하지만 근본적으로 해결되지 않는 것들이 있습니다. 기술적 가드레일은 이미 알려진 패턴만 잡을 수 있습니다. 법과 규정은 AI가 대신 판단해줄 수 없습니다. 무엇보다, 책임은 여전히 사람에게 있습니다.

 

데이터 유출 사고가 났을 때 "AI가 만든 코드라서요"는 법적으로도, 윤리적으로도 면죄부가 되지 않습니다. 서비스를 배포한 사람이 책임을 집니다.

 

🔑 AI는 도구의 성능을 높여줄 수 있지만, 도구를 책임 있게 쓰는 판단력은 사람이 길러야 합니다.


🧭 우리가 지금 해야 할 것들

이 시대에 개발에 관여하는 모든 사람 — 개발자든, 기획자든, 마케터든 — 이 알아야 할 최소한의 것들입니다.

✏️ AI에게 코드를 요청할 때

  • 항상 "보안 모범 사례를 적용해서" 라는 조건을 붙이세요
  • 시크릿은 절대 코드에 직접 쓰지 말라고 명시적으로 요청하세요
  • 생성된 코드를 그대로 복붙하기 전에 한 번은 읽어보세요

🏢 조직 차원에서

  • 코드 리뷰 문화: AI가 만든 코드도 리뷰 대상입니다
  • 시크릿 스캐닝 도구 도입: truffleHog, gitleaks, GitHub의 Secret Scanning 등
  • 최소 권한 정책 기본화: 기본값이 "모든 권한"이어선 안 됩니다
  • 비전공자 대상 보안 인식 교육: 1년에 한 번이라도 기본 보안 교육이 필요합니다

📚 개인 차원에서

지금 당장 개인정보 처리방침이 없는 서비스를 운영 중이라면, AI한테 물어보세요:

"내가 한국에서 이메일 수집하는 서비스를 운영한다면, 개인정보 보호법상 어떤 의무가 있어?"

 

 

AI는 꽤 잘 알려줍니다. 단지 — 먼저 물어봐야 한다는 게 문제인 거죠.


✅ 정리 / 마무리

AI가 개발 진입장벽을 낮춘 건 분명히 좋은 일입니다. 더 많은 사람이 더 많은 것을 만들 수 있게 됐으니까요.

하지만 진입장벽이 낮아졌다고 책임도 낮아진 건 아닙니다.

 

하드코딩된 시크릿, 과도한 권한, 법적 컴플라이언스 부재 — 이것들은 AI가 발전해도 "알아서 해결"되지 않습니다. 왜냐하면 이것들은 기술 문제가 아니라 판단과 책임의 문제이기 때문입니다.

 

지금 이 시대에 AI를 활용해 뭔가를 만드는 사람이라면, 적어도 이것만은 기억해 주세요:

💬 "AI는 내가 물어본 것만 해결해준다. 물어보지 않은 것까지 책임져주지는 않는다."