티스토리 뷰

목차



    반응형

    실무에 바로 써먹는 설문조사 양식, HTML로 직접 만들어보세요

     

    설문조사 양식 HTML 폼을 직접 코딩하여 이름, 이메일, 연령대, 학원 선택 기준, 의견 등

    다양한 항목을 입력받는 웹 폼을 구현하는 방법을 알아봅니다.

    필수 입력 유도, 접근성 고려, 서버 전송 처리까지 함께 다루며

    HTML 폼의 핵심을 탄탄히 익힐 수 있습니다.

     

    <form>과 action, method로 전송 흐름 지정하기

     

    <form> 태그는 사용자로부터 입력을 받는 폼의 틀입니다.
    실제 서비스를 생각한다면 데이터를 어디로,

    어떤 방식으로 보낼지 설정이 필요합니다.

     

    <form action="/submit" method="post">

     

    action은 데이터를 받을 서버의 주소이고, method는 전송 방식입니다.
    post는 정보를 안전하게 전달할 때 사용되며 설문조사에 적합합니다.

     

     

    fieldset, legend 코드 적용

    <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, checkbox 코드 구현

    연령대 선택은 radio로 단일 선택 가능하게 구성

     

    사용자가 반드시 하나만 선택해야 하는 연령대 항목은
    <input type="radio">를 사용하여 단일 선택 그룹으로 만듭니다.

     

    <input type="radio" id="teen" name="age">
    <label for="teen">10대</label>
    ...

     

    name 값을 모두 "age"로 동일하게 설정하여
    서로 배타적인 선택이 가능하게 합니다.

     

     

    checkbox 구현 출력물

    학원 선택 기준은 checkbox로 복수 선택 구현

     

    복수 기준을 허용하는 경우 <input type="checkbox">를 활용합니다.
    위치, 학원비, 강사, 시설 중 사용자가 원하는 조건을 여러 개 선택할 수 있도록 합니다.

    항목 ID 항목명 name 값

     

    position 위치 academy
    price 학원비 academy
    teacher 강사 academy
    infra 시설 academy

     

    이름을 같게 설정하면 배열처럼 값을 받을 수 있어 서버에서도 쉽게 처리 가능합니다.

     

     

    textarea 코드

    사용자 의견은 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 서버로 전송될 데이터의 키 이름 설정

     

     

    설문조사 양식 form 전체

    실전 예시를 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 등 필수 속성과 구조를 학습하여,

    실제 프로젝트에 적용 가능한 설문 양식 제작 역량을 키우는 데 도움이 됩니다.

    반응형