[HTML] form태그와 input태그

2025. 11. 21. 18:30·React/HTML & CSS

웹에서 회원가입, 로그인 같은 화면을 보면 대부분 입력창이 있음.

이때 사용되는 태그가 바로 `form`과 `input`임.

오늘은 이걸 다뤄보겠음


form 태그란?

`form`태그는 사용자가 입력한 데이터를 서버로 전송하기 위한 영역을 만드는 태그임

 

주 역할

  • 입력 데이터를 하나의 묶음으로 관리
  • 전송 방식 설정
  • 데이터를 보낼 서버 주소 지정

기본 형태는 아래와 같음

<form action="서버주소" method="전송방식">
  <!-- 입력 요소들 -->
</form>
  • `action` -> 데이터를 보낼 서버 주소
  • `method` -> 전송 방식 (GET 또는 POST)

`method`를 생략하면 기본값은 `GET` 방식으로 동작함

이는 아래에서 더 다루겠음


input 태그란?

`input`태그는 실제로 사용자 입력을 받는 칸을 만드는 태그임.
`type` 속성에 따라 입력 방식이 달라짐

 

자주 쓰는 `type` 종류

  • `text` -> 일반 텍스트 입력
  • `email` -> 이메일 형식 입력
  • `password` -> 비밀번호 입력
  • `number` -> 숫자 입력
  • `tel` -> 전화번호 입력
  • `radio` -> 라디오 버튼 (복수 선택 X)
  • `checkbox` -> 체크박스 (복수 선택 O)
  • `file` -> 파일 업로드
  • `submit` -> 폼 전송 버튼

예시

<input type="text" placeholder="이름" />
<input type="email" placeholder="이메일" />
<input type="password" placeholder="패스워드" />
<input type="submit" value="회원가입" />

button 태그와 submit 버튼 차이

요약해서 보면:

  • `<input type="submit">`
    → 폼을 서버로 전송하는 역할
  • `<button>`
    → 기본 타입은 `submit`이지만,
    보통 스타일링이나 JS 기능 연결용으로 많이 사용됨

예시

<button type="submit">회원가입</button>

label 태그 사용하는 이유

`label`은 입력창에 이름을 붙이면서 input과 연결해 주는 역할을 함.
`for` 속성과 `input`의 `id`를 연결해서 사용함.

 

예시

<label for="man">남자</label> <input id="man" type="radio" name="gender" />

이렇게 작성하면 “남자” 텍스트를 클릭해도 라디오 버튼이 선택됨.


radio 버튼 정리

라디오 버튼은 여러 개 중 하나만 선택할 때 사용함.

 

핵심은 `name` 속성

<input type="radio" name="gender" id="man" /> <input type="radio" name="gender" id="woman" />

두 개의 name`이 같으면 하나만 선택 가능해짐.


checkbox 정리

체크박스는 여러 개를 동시에 선택 가능한 입력 방식임.

 

예시

<input type="checkbox" id="korean" /> <label for="korean">한국인</label>

 


GET 방식과 POST 방식 차이

`form`에서 가장 중요한 속성이 `method`임.
  • `GET` 방식
    • 데이터가 URL에 그대로 붙어서 전송됨
    • 주소창에서 전송 데이터 확인 가능
    • 북마크 가능
    • 주로 조회, 검색 기능에 사용됨
  • `POST` 방식
    • 데이터가 HTTP 요청 몸체(body)에 담겨 전송
    • URL에 데이터가 노출되지 않음
    • 보안적으로 GET보다 유리함
    • 로그인, 회원가입, 글 작성 시 주로 사용됨

예시

<form action="abc.com" method=""> <!-- 자동으로 GET -->
<form action="abc.com" method="post">

핵심 요약

  • `form` → 입력 데이터를 서버로 보내는 전체 영역
  • `input` → 실제 입력받는 요소
  • `label` → input에 이름을 붙이고 클릭 영역 확장
  • `GET` → 조회용, URL에 데이터 표시됨
  • `POST` → 생성/수정용, 데이터가 숨겨져 전송됨

'React > HTML & CSS' 카테고리의 다른 글

[HTML/CSS] CSS 정리  (0) 2025.11.26
[HTML/CSS] 자기소개 페이지 꾸며보기  (0) 2025.11.26
[HTML] div, span 태그 & 클래스와 아이디  (0) 2025.11.21
[HTML] 간단한 자기소개 페이지 만들어보기  (0) 2025.11.20
[HTML] 태그  (0) 2025.11.20
'React/HTML & CSS' 카테고리의 다른 글
  • [HTML/CSS] CSS 정리
  • [HTML/CSS] 자기소개 페이지 꾸며보기
  • [HTML] div, span 태그 & 클래스와 아이디
  • [HTML] 간단한 자기소개 페이지 만들어보기
이도서
이도서
  • 이도서
    도서의 코딩노트
    이도서
  • 전체
    오늘
    어제
    • 분류 전체보기 (249)
      • Today I Learned (79)
        • 2024 (78)
      • Swift (25)
        • Swift 문법 정리 (19)
        • RxSwift (5)
      • Swift Study (12)
        • Playground (2)
        • Storyboard (9)
        • UIKit (1)
      • Flutter (27)
        • Dart 언어 (16)
        • Flutter Study (11)
      • React (37)
        • HTML & CSS (8)
        • JavaScript 기본 (12)
        • JavaScript 심화 (14)
        • Node.js (2)
        • React (1)
      • Git (3)
      • 코딩테스트 (60)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

    • 개발 공부 공유 링크
  • 인기 글

  • 태그

    storyboard
    React
    CLASS
    객체지향
    내일배움캠프
    코딩테스트
    Til
    function
    html
    ios앱개발자
    코딩테스트Level.1
    javascript 기본
    Swift
    javascript
    코딩테스트 level.1
    iOS앱개발
    함수
    ios
    DART
    Flutter
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
이도서
[HTML] form태그와 input태그
상단으로

티스토리툴바