티스토리 뷰
목차
실무에 바로 써먹는 설문조사 양식, HTML로 직접 만들어보세요
설문조사 양식 HTML 폼을 직접 코딩하여 이름, 이메일, 연령대, 학원 선택 기준, 의견 등
다양한 항목을 입력받는 웹 폼을 구현하는 방법을 알아봅니다.
필수 입력 유도, 접근성 고려, 서버 전송 처리까지 함께 다루며
HTML 폼의 핵심을 탄탄히 익힐 수 있습니다.
<form>과 action, method로 전송 흐름 지정하기
<form> 태그는 사용자로부터 입력을 받는 폼의 틀입니다.
실제 서비스를 생각한다면 데이터를 어디로,
어떤 방식으로 보낼지 설정이 필요합니다.
<form action="/submit" method="post">
action은 데이터를 받을 서버의 주소이고, method는 전송 방식입니다.
post는 정보를 안전하게 전달할 때 사용되며 설문조사에 적합합니다.

<fieldset>과 <legend>로 항목을 논리적으로 그룹화
각 입력 영역은 <fieldset>으로 그룹화하고,
해당 그룹의 제목은 <legend>로 설정합니다.
이번 실습에서는 아래와 같이 구역을 나누었습니다.
그룹 이름 포함된 항목
| 개인정보 | 이름, 이메일 |
| 설문 | 연령대, 학원 선택 기준 |
| 기타 의견 | 텍스트 작성 |
구조를 구분하면 사용자도 작성 시 더 편하고, 코드 유지관리도 쉬워집니다.

required, label, placeholder로 입력 유도와 접근성 향상
입력란에 이름과 이메일을 요구할 때는
아래와 같은 요소로 사용자 경험을 높일 수 있습니다.
<label for="name">이름</label>
<input type="text" name="name" id="name" required placeholder="본명을 입력하세요">
<label for="email">이메일</label>
<input type="email" name="email" id="email" required placeholder="메일 주소 쓰세요">
required 속성은 필수 입력을 의미하며,
placeholder는 입력 안내 문구를 제공하고
label과 id는 연결되어 시각장애인 접근성도 향상시킵니다.

연령대 선택은 radio로 단일 선택 가능하게 구성
사용자가 반드시 하나만 선택해야 하는 연령대 항목은
<input type="radio">를 사용하여 단일 선택 그룹으로 만듭니다.
<input type="radio" id="teen" name="age">
<label for="teen">10대</label>
...
name 값을 모두 "age"로 동일하게 설정하여
서로 배타적인 선택이 가능하게 합니다.

학원 선택 기준은 checkbox로 복수 선택 구현
복수 기준을 허용하는 경우 <input type="checkbox">를 활용합니다.
위치, 학원비, 강사, 시설 중 사용자가 원하는 조건을 여러 개 선택할 수 있도록 합니다.
항목 ID 항목명 name 값
| position | 위치 | academy |
| price | 학원비 | academy |
| teacher | 강사 | academy |
| infra | 시설 | academy |
이름을 같게 설정하면 배열처럼 값을 받을 수 있어 서버에서도 쉽게 처리 가능합니다.

사용자 의견은 textarea로 자유롭게 입력 가능
개인의 의견이나 코멘트를 수집하기 위한 필드는
<textarea>를 사용해 다중 줄 입력이 가능하도록 구성합니다.
<textarea rows="3" cols="30" name="comment"></textarea>
글자 수 제한 없이 자유롭게 내용을 입력할 수 있으며,
rows와 cols를 통해 크기를 적절히 조절할 수 있습니다.

제출 버튼과 마무리 문구 구성
사용자가 모든 항목을 입력한 뒤 제출할 수 있도록
<input type="submit"> 버튼을 구성하고,
폼 하단에는 다음과 같은 피드백 문구를 배치할 수 있습니다.
<input type="submit" value="제출">
<footer><p>입력하느라 수고하셨습니다.</p></footer>
이런 간단한 피드백은 사용자의 심리적 만족도를 높여줍니다.
접근성과 사용자 경험을 높이는 추가 속성
아래 표는 HTML 폼에서 자주 사용되는 속성과 그 효과를 정리한 것입니다.
속성명 설명
| required | 필수 입력 필드로 지정 |
| placeholder | 입력 전 사용자에게 힌트 제공 |
| id/for | label과 input 연결로 접근성 향상 |
| name | 서버로 전송될 데이터의 키 이름 설정 |

실전 예시를 CSS로 스타일링하면 더 완성도 높은 폼이 된다
간단한 스타일링만 추가해도 폼의 완성도가 크게 향상됩니다.
아래는 대표적인 CSS 코드 예시입니다.
form {
width: 500px;
margin: auto;
font-family: sans-serif;
}
fieldset {
margin-bottom: 15px;
padding: 10px;
}
label {
display: inline-block;
width: 80px;
}
input[type="submit"] {
margin-top: 10px;
}
가독성을 높이고 입력 항목 사이 간격을 적절히 조절하여
사용자 중심의 폼을 완성할 수 있습니다.
이번 실습을 통해 HTML 폼을 설계하고 사용자 입력을
수집하는 다양한 방식을 익혔습니다.
action, method, required, radio, checkbox 등 필수 속성과 구조를 학습하여,
실제 프로젝트에 적용 가능한 설문 양식 제작 역량을 키우는 데 도움이 됩니다.