개발자를 위한 AI 보조 코딩
Francesca Donadoni
AI Curriculum Manager, DataCamp
이메일 주소를 파싱하는 Python 함수를 작성해 주세요.
이메일 주소를 파싱하는 Python 함수를 작성해 주세요. 다음 테스트를 통과해야 합니다:
- "[email protected]"과 같은 유효한 주소를 허용합니다.
- "user@@domain"과 같은 잘못된 입력을 거부합니다.
- 빈 입력에 대해 ValueError를 발생시킵니다.
사용자 프롬프트: 사용자가 제출한 양식 데이터를 처리하여 SQL 데이터베이스에 삽입하는 함수에 대한 Python 단위 테스트를 생성해 주세요.
모델 응답:
유효성 검사, 정규화, SQL 인젝션 안전성, 트랜잭션 동작을 포함하는 즉시 실행 가능한 pytest 스위트를 제공합니다.
[...]
# ---------- Test DB fixtures ----------
@pytest.fixture()
def conn():
"""In-memory SQLite DB with a users table."""
c = sqlite3.connect(":memory:") [...]
사용자 프롬프트: 아래 함수에 대해 pytest를 사용한 Python 단위 테스트를 생성해 주세요. 빈 입력, SQL 키워드 포함 입력, 특수 문자에 대한 테스트 케이스를 포함하고, 모의 데이터베이스 연결을 가정하세요. <INSERT FUNCTION>
모델 응답:
모의 객체를 사용하는(실제 DB 불필요) 독립형 pytest 테스트 모듈로, 빈 입력, SQL 키워드, 특수 문자를 다루며 커밋/종료 동작과 예외 처리도 검증합니다.
[...]
@pytest.fixture
def mock_sqlite_connect(monkeypatch):
"""
Patch sqlite3.connect to return a MagicMock connection + cursor.
[...]
$$
아래 Python 함수에서 잠재적인 취약점을 검사하고, 발견된 경우 더 안전한 대안을 제안해 주세요.
$$
이 코드에서 SQL 인젝션, XSS, 입력 유효성 검사 취약점 등 일반적인 웹 보안 문제를 검토해 주세요.

def login(username, password):
query = f"SELECT * FROM users WHERE username = '{username}' \
AND password = '{password}'"
result = db.execute(query)
return result.fetchone()
로그인 함수에 대한 OWASP Top 10 감사 결과와 더 안전한 코드로 재작성한 내용을 제공합니다.
username = "admin' --" → 비밀번호 검사를 우회합니다. [...]개발자를 위한 AI 보조 코딩