---
title: 텍스트
---

<Frame>
  <img src="/images/user-guide/notes/notes_header.png" alt="헤더" />
</Frame>

## 텍스트 입력

사용자가 텍스트를 입력하고 편집할 수 있습니다.

<Tabs>
  <Tab title="사용법">
    ```jsx
    import { TextInput } from "@/ui/input/components/TextInput";

    export const MyComponent = () => {
      const handleChange = (text) => {
        console.log("입력 변경됨:", text);
      };

      const handleKeyDown = (event) => {
        console.log("키가 눌림:", event.key);
      };

      return (
          <TextInput
            className
            label="사용자 이름"
            onChange={handleChange}
            fullWidth={false}
            disableHotkeys={false}
            error="유효하지 않은 사용자 이름"
            onKeyDown={handleKeyDown}
            RightIcon={null}
          />
      );
    };
    ```
  </Tab>

  <Tab title="프로퍼티">
    | 프로퍼티           | 유형            | 설명                                                             |
    | -------------- | ------------- | -------------------------------------------------------------- |
    | 클래스 네임         | 문자열           | 추가 스타일링을 위한 선택적 이름                                             |
    | 레이블            | 문자열           | 입력의 레이블을 나타냅니다.                                                |
    | onChange       | function      | 입력 값이 변경될 때 호출되는 함수                                            |
    | fullWidth      | 부울            | 입력이 너비의 100%를 차지해야 하는지 여부를 나타냅니다.                              |
    | disableHotkeys | 부울            | 입력에 대해 단축키가 활성화되었는지 여부를 나타냅니다.                                 |
    | 오류             | 문자열           | 표시될 오류 메시지를 나타냅니다. 제공되면 입력의 오른쪽에 오류 아이콘도 추가됩니다                 |
    | onKeyDown      | function      | 입력 필드가 포커스될 때 키가 눌린 경우 호출됩니다. `React.KeyboardEvent`를 인수로 받습니다. |
    | RightIcon      | IconComponent | 입력 오른쪽에 표시되는 선택적 아이콘 컴포넌트                                      |

    이 컴포넌트는 다른 HTML 입력 요소 속성도 허용합니다.
  </Tab>
</Tabs>

## 자동 크기 조정 텍스트 입력

내용에 따라 자동으로 높이가 조정되는 텍스트 입력 컴포넌트.

<Tabs>
  <Tab title="사용법">
    ```jsx
    import { AutosizeTextInput } from "@/ui/input/components/AutosizeTextInput";

    export const MyComponent = () => {
      return (
          <AutosizeTextInput
            onValidate={() => console.log("onValidate 함수 실행됨")}
            minRows={1}
            placeholder="댓글을 작성하세요"
            onFocus={() => console.log("onFocus 함수 실행됨")}
            variant="icon"
            buttonTitle
            value="작업: "
          />
      );
    };
    ```
  </Tab>

  <Tab title="프로퍼티">
    | 프로퍼티        | 유형       | 설명                                               |
    | ----------- | -------- | ------------------------------------------------ |
    | onValidate  | function | 사용자가 입력을 검증할 때 트리거하려는 콜백 함수                      |
    | minRows     | 숫자       | 텍스트 영역의 최소 행 수                                   |
    | placeholder | 문자열      | 텍스트 영역이 비어 있을 때 표시할 자리 표시자 텍스트                   |
    | onFocus     | function | 텍스트 영역에 초점이 맞춰졌을 때 트리거하려는 콜백 함수                  |
    | variant     | 문자열      | 입력의 변형. 옵션에는 `default`, `icon`, `button`이 포함됩니다. |
    | buttonTitle | 문자열      | (버튼 변형에만 적용됨) 버튼의 제목                             |
    | 값           | 문자열      | 텍스트 영역의 초기 값                                     |
  </Tab>
</Tabs>

## 텍스트 영역

다중 라인 텍스트 입력을 만들 수 있습니다.

<Tabs>
  <Tab title="사용법">
    ```jsx
    import { TextArea } from "@/ui/input/components/TextArea";

    export const MyComponent = () => {
      return (
        <TextArea
        disabled={false}
        minRows={4}
        onChange={()=>console.log('onChange 함수 실행됨')}
        placeholder="여기에 텍스트를 입력하세요"
        value=""
        />
      );
    };
    ```
  </Tab>

  <Tab title="프로퍼티">
    | 프로퍼티        | 유형  | 설명                             |
    | ----------- | --- | ------------------------------ |
    | disabled    | 부울  | 텍스트 영역이 비활성화되어 있는지 여부를 나타냅니다.  |
    | minRows     | 숫자  | 텍스트 영역의 최소 표시 행 수.             |
    | onChange    | 기능  | 텍스트 영역의 내용이 변경될 때 호출되는 콜백 함수   |
    | placeholder | 문자열 | 텍스트 영역이 비어 있을 때 표시할 자리 표시자 텍스트 |
    | 값           | 문자열 | 텍스트 영역의 현재 값                   |
  </Tab>
</Tabs>
