AI VIDEO BRIEFING
개발자 행동의 심리학: 행동경제학으로 본 취약한 코드의 10가지 습관과 넛지 해법
보안 전문가 타냐 잔카는 취약한 코드가 개인의 실수가 아니라 예측 가능한 행동 패턴이라고 말한다. 바이브 코딩부터 형식적 코드 리뷰까지 10가지 습관과 그 뒤의 인지 편향, 그리고 환경을 바꾸는 처방을 정리했다.

핵심 메시지
쉽게 이해하기
29년째 기술 업계에서 일해 온 보안 전문가 타냐 잔카는 NDC 발표에서 다소 낯선 제안을 내놨다. 시스템을 위협 모델링하듯 사람의 행동도 위협 모델링해 보자는 것이다. 그는 보안 업계가 오랫동안 '개발자가 잘못했다'고 말해 왔지만, 정작 개발자가 완벽하기 어렵도록 설계된 것은 시스템 쪽이었다고 지적한다. 외울 것은 끝없이 늘고, 속도는 재촉받고, 교육은 거의 없고, 도구는 개발 주기 한참 뒤에야 무엇이 잘못됐는지 알려 준다. 그리고 실수할 때마다 형편없다는 말을 듣는다.
그가 기댄 도구는 행동경제학이다. 사람들이 은퇴 자금을 충분히 모으지 않는 이유, 눈높이에 둔 간식을 더 자주 집어 드는 이유를 설명하는 그 분야다. 핵심 개념인 넛지는 선택이 제시되는 방식을 미묘하게 바꿔 평균적으로 예측 가능한 방향의 행동을 이끌어내되, 선택지를 제한하거나 보상 구조를 크게 바꾸지는 않는 개입을 뜻한다. 발표자는 이를 사람을 압박하고 속이는 사회공학과 명확히 구분한다. 의사가 환자에게 금연이 나은 선택임을 보여 주는 쪽이지, 속여서 끊게 만드는 쪽이 아니라는 것이다.
발표의 본론은 취약한 코드를 낳는 열 가지 습관과 그 뒤에 있는 편향을 하나씩 짚는 것이다. AI가 코드를 거의 다 쓰고 사람은 검토하지 않는 바이브 코딩은 자동화 편향과 인지적 부담 떠넘기기로, 온라인 포럼의 답을 맥락 없이 가져오는 습관은 권위 편향과 가용성 휴리스틱으로 설명된다. 마감에 쫓겨 지름길을 택하는 것은 현재 편향, 문서화를 미루는 것은 노력 절하와 공유지의 비극, 테스트하지 않은 코드를 커밋하는 것은 결과 편향, 컴파일러 경고를 무시하는 것은 정상화 편향, 형식적인 코드 리뷰는 책임 분산과 도덕적 면허 효과에 해당한다.
처방은 세 층으로 쌓인다. 첫째는 안전한 기본값이다. 대부분의 개발자는 안전하게 만들 의도를 갖고 있지만 의도는 매번 기억과 의지력을 요구한다. 반면 기본값은 자동으로 작동하며, 위험한 선택을 하려면 오히려 노력을 들여야 한다. 발표자가 드는 예는 데이터베이스 접근을 ORM으로 감싸 파라미터화된 쿼리만 허용하는 방식이다. 둘째는 개발 주기와 도구에 보안 활동을 심는 것이다. 요구사항 단계에는 보안 요구사항을, 설계 단계에는 위협 모델링을, 커밋 시점에는 비밀값 스캔 훅을, PR에는 무엇을 봐야 하는지 알려 주는 템플릿을 붙이는 식이다.
셋째는 교육과 문화다. 그는 1년에 한 번 몰아서 하는 보안 교육 대신 매달 모이는 실무 커뮤니티, 짧은 수업, 치트시트를 제안한다. 취약점 목록을 외우게 하기보다 좋은 코드와 나쁜 코드를 함께 읽는 편이 낫다는 것이다. 측정 대상도 바뀌어야 한다. 며칠짜리 교육에 참석했다는 체크 표시가 아니라, 취약점을 실제로 더 많이 고치는지, 같은 실수가 줄어드는지, 보안팀에 질문을 더 자주 하는지를 봐야 한다. 결론에서 그는 사고가 났을 때 특정 개인을 지목하는 대신 그런 결정을 하게 만든 환경과 프로세스를 고치라고 요약했다.
주요 인사이트
- 발표자는 AI가 쓴 코드에 대한 리뷰가 형식적으로 흐르고 있다는 문제를 짚으며, 풀 리퀘스트 검토 시간이 1초 미만인 경우가 대다수였다는 연구를 인용했다. '사람이 확인한다'는 전제가 실제로는 지켜지지 않는 곳이 많다는 지적이다.
- 바이브 코딩에 대한 그의 처방은 사용 금지가 아니라 재료를 바꾸는 쪽이다. 사내 인증·세션 관리·입력 검증 모범 사례를 RAG로 참조하게 하고, 보안 코딩 가이드라인을 프롬프트로 바꿔 두고, AI가 만든 코드를 위한 리뷰 체크리스트를 따로 두라는 것이다.
- 문서화를 아무도 하지 않는 이유를 그는 게으름이 아니라 보상 구조로 본다. 모두에게 이롭지만 개인에게는 인정받지 못하는 일이기 때문이다. 그래서 해법도 스프린트 리뷰나 인사 평가에 이 작업을 드러내 보이게 하는 쪽이다.
- 과도한 설계와 과시적인 코드는 신호 이론과 지위 추구 행동으로 설명된다. 열 줄짜리 코드를 아무도 읽을 수 없는 한 줄로 압축하는 일이 그 예다. 시니어 엔지니어가 읽고 이해할 수 없다면 리뷰에서 되돌려 보내고, 단순함을 칭찬하는 문화를 만들라는 조언이 이어진다.
- 그는 자신이 보안 교육을 파는 사람이라는 점을 밝히면서도 연 1회 교육으로는 부족하다고 말했다. 자기 상품에 불리한 이야기를 굳이 덧붙인 셈인데, 결국 사려는 것은 교육 이수가 아니라 행동 변화라는 발표 전체의 논지와 맞닿는다.
자주 묻는 질문
넛지와 사회공학은 무엇이 다른가?
넛지는 선택이 제시되는 방식만 바꿔 예측 가능한 방향으로 행동을 유도하되, 선택지를 제한하거나 보상 구조를 크게 바꾸지 않는다. 반면 사회공학은 압박하고 조작해 원하는 결정을 하게 만드는 것이다. 발표자는 의사가 금연을 권하는 방식과 속여서 끊게 만드는 방식의 차이로 설명했다.
'안전한 기본값'이란 구체적으로 어떤 것인가?
안전한 길이 가장 쉬운 길이 되도록 환경을 짜는 것이다. 예를 들어 데이터베이스 접근을 ORM으로 감싸 파라미터화된 쿼리만 가능하게 하면, 문자열을 이어 붙인 위험한 SQL을 쓰려면 오히려 상당한 노력을 들여야 한다.
보안 교육의 성과는 무엇으로 측정해야 하나?
교육 참석 여부나 소진한 교육 예산이 아니라 행동의 변화다. 취약점을 실제로 더 많이 고치는지, 같은 실수가 반복되지 않는지, 개발자가 보안팀에 더 자주 문의하는지 같은 지표를 봐야 한다는 것이 발표자의 주장이다.
원문과 출처
이 글은 원본 영상의 자막을 바탕으로 한국어 독자를 위해 요약했습니다. 전체 맥락과 최신 정보는 원문에서 확인하세요.
YouTube 원본 영상 보기 ↗