[flutter] 플러터 Checkbox 국립국어원 표기법 검사 기능 추가하기

이번 포스트에서는 플러터(Flutter) 앱에서 Checkbox를 사용하여 국립국어원의 표기법 검사 기능을 추가하는 방법에 대해 알아보겠습니다.

1. 국립국어원 API 사용

표기법 검사 기능을 구현하기 위해 우리는 국립국어원의 API를 사용해야 합니다. 국립국어원 API는 한글 문법, 띄어쓰기, 맞춤법 등을 검사하는 기능을 제공합니다. 먼저, 국립국어원 홈페이지에서 API 키를 발급받아야 합니다.

2. API 요청 및 응답 처리

우리는 Checkbox를 선택하면 국립국어원 API를 호출하여 표기법 검사를 수행하고 결과를 받아와야 합니다. 플러터에서는 http 패키지를 사용하여 API 요청을 처리할 수 있습니다. 아래는 예시 코드입니다.

import 'dart:convert';
import 'package:http/http.dart' as http;

String apiKey = "YOUR_API_KEY";
String textToCheck = "표기법을 검사할 텍스트 입력";

Future<bool> checkSpelling() async {
  final response = await http.post(
    Uri.parse("https://api.korean.go.kr/api/checkSpelling/검사기능"),
    headers: {
      "Content-Type": "application/x-www-form-urlencoded",
    },
    body: {
      "apiKey": apiKey,
      "text": textToCheck,
    },
  );

  if (response.statusCode == 200) {
    Map<String, dynamic> result = jsonDecode(response.body);
    bool isCorrect = result['isCorrect'];
    return isCorrect;
  } else {
    throw Exception('API 요청에 실패했습니다.');
  }
}

위 코드에서 YOUR_API_KEY 부분에는 발급받은 API 키를 입력해야 합니다. checkSpelling 함수를 호출하면 API를 요청하고 표기법이 올바른지 여부를 반환합니다.

3. Checkbox와 연동

이제 Checkbox와 국립국어원 API를 연동해보겠습니다. Checkbox의 value를 checkSpelling 함수의 반환값과 연결하여 표기법 검사 결과를 표시하겠습니다.

bool isChecked = false;

CheckboxListTile(
  title: Text("표기법 검사"),
  value: isChecked,
  onChanged: (bool? value) async {
    setState(() {
      isChecked = value!;
    });

    if (isChecked) {
      bool isCorrect = await checkSpelling();
      if (!isCorrect) {
        // 표기법이 올바르지 않은 경우 처리 로직 추가
      }
    }
  },
);

위 코드에서는 CheckboxListTile 위젯을 사용하여 토글 기능을 제공하고, isChecked 변수를 사용하여 Checkbox의 선택 여부를 관리합니다. Checkbox의 선택 여부가 변경되면 onChanged 콜백 함수가 호출되어 checkSpelling 함수를 비동기로 실행합니다. 반환된 표기법 검사 결과에 따라 적절한 처리를 수행합니다.

마무리

이제 플러터 앱에서 Checkbox를 사용하여 국립국어원의 표기법 검사 기능을 추가하는 방법에 대해 알아보았습니다. API 호출 및 응답 처리, Checkbox와의 연동 등 다양한 요소를 포함하고 있습니다. 이를 참고하여 원하는 앱에 표기법 검사 기능을 구현해보세요.

참고 자료