AI 폼의 readonly와 disabled: 화면 잠금과 전송값 확인은 별개

읽기 전용 입력과 비활성 입력이 있는 개념 노트북 삽화

입력 칸을 고칠 수 없게 보이게 했다고 제출 데이터까지 같아지는 것은 아닙니다. 텍스트 입력의 readonly와 disabled를 나누어 실제 FormData 항목을 확인하세요.

1. 보이는 상태와 제출 데이터를 나누기

WHATWG HTML 표준은 readonly를 사용자 편집을 막는 속성으로 설명합니다. disabled와 같은 뜻이 아니며 readonly는 텍스트 계열 입력에 적용됩니다. 체크박스나 버튼에 같은 효과가 있다고 가정하지 마세요.

AI가 작성한 프로필 수정 화면을 검토한다면, 변경 불가 ID를 readonly로 보여 주는지 disabled로 비활성화하는지 먼저 읽습니다. 이 선택이 서버에서 필요한 값을 빠뜨리거나 예상과 다른 제출을 만들 수 있습니다.

2. 작은 폼에서 차이 확인

readonly: 수정 제한과 값 제출 구분 / disabled: 비활성 입력은 제출에서 제외 / name: 제출할 필드 이름 확인 / 검증: 화면과 수신 데이터 비교

직접 구성한 로컬 예제는 name="account" value="reader" readonly와 name="plan" value="basic" disabled를 같은 폼에 두고 new FormData(form)을 읽습니다. 확인 결과 account=reader는 포함되고 plan은 제외됐습니다. 실제 서비스의 계정 정보나 인증 자료는 사용하지 않았습니다.

예제 입력편집 상태FormData 확인
account / readonly사용자 수정 제한account=reader 포함
plan / disabled비활성화plan 항목 제외
속성만 보고 판단화면이 비슷해 보임실제 키·값을 함께 비교

3. 서버 검증은 별도로 유지

readonly는 접근 권한을 보장하는 보안 경계가 아닙니다. 서버는 전달된 값을 별도로 검증해야 합니다. 제출 전에 값을 복구하는 숨은 스크립트를 더하기보다, 어떤 필드가 제출돼야 하는지와 서버의 기대 형식을 먼저 명확히 하세요.

검토 기록확인 질문
표시사용자가 수정할 수 있는가
제출키·값이 실제 포함됐는가
서버클라이언트 값을 신뢰하지 않고 검증하는가

4. 자주 묻는 질문

readonly를 모든 입력 종류에 붙이면 되나요?

아닙니다. 표준은 텍스트 계열 입력과 적용되지 않는 입력 종류를 구분합니다.

readonly면 서버 검증을 생략해도 되나요?

안 됩니다. 화면의 수정 제한과 서버가 값을 신뢰할 수 있는지는 별도 문제입니다.

HTML input의 readonly·disabled 표준 읽기(영문)

공식 자료 확인일 2026년 10월 15일: HTML input의 readonly·disabled 표준 읽기(영문).

대표 삽화는 AI로 제작했으며 본문 설명 도표는 직접 구성했습니다.

댓글

이 블로그의 인기 게시물

Canva AI vs Figma AI, 디자인 문외한이 써본 솔직 후기

크리에이터 하루 루틴에 AI 도구 3개 끼워 넣는 법

ChatGPT 유료 3개월째, 크리에이터 입장에서 돈값 하는지 솔직히