[Project] 한글 끝말잇기 AI 안드로이드 앱 04. 단어 사전 뜻 풀이 표시하기


개요

아무리 enphago 가 대답을 잘한다 한들 실제로 있는 단어인지 납득이 안가면 게임하는 맛이 안난다. 말풍선을 클릭하면 해당 단어의 뜻을 바로바로 표시해주어 플레이어를 납득시켜보자.


코루틴과 XML 파싱


0

단어 뜻 풀이는 역시 표준국어대사전 API 를 이용할 것이다. 사전 API 인 만큼 단어 검색에 특화되어 있다.

1

단어 사전 검색을 위해 필요한 정보는 word 태그 내용과 definition 태그 내용이다. 위 내용은 xml 파싱 을 통해 간단히 가져올 수 있다.

2

검색 결과의 반환 값으로 SearchResult 라는 Data Class 를 따로 구현했다. 이 클래스는 다음과 같은 요소로 이루어져있다.

  • 단어
  • 품사
  • 정의

위 3가지 값을 한 번에 묶어서 반환하고 이를 받아 화면에 dialog 형태로 뿌려준다.

이 때 네트워크 통신이 필요하므로 역시나 백그라운드에서 작업해주어야 한다. 2장 에서 단어 검사를 하는 과정과 같이 코루틴 을 이용하여 비동기 프로그래밍을 해주었다.


결과 표시

단어 검색은 채팅창의 말풍선 클릭을 통해 이루어진다. 다른말로 하면 RecyclerViewitem 내의 widget 을 클릭하는 것이다. 따라서 단어 검색 요청 코드를 RecyclerView 어댑터의 holder 내에 작성했다.

3

다만 똑같은 코드를 2개의 holder 에 모두 작성해야 한다는 점은 개선해야 할 이슈인 것 같다. 또한 RecyclerViewadapter 를 담당하는 클래스에 너무 부가적인 코드를 많이 작성하는 것도 좋은 개발 방법은 아닌 것 같다. 이것들은 좀 더 고민해보고 아이디어가 떠오르면 코드를 수정하여 개선해 볼 생각이다.

4

위와 같은 모습으로 출력된다.


마무리

이로써 기능적인 구현에 관련된 내용의 포스팅은 끝났다. 다음은 마지막 포스팅으로 enphago 의 단어 학습 기능에 대해 다루겠다.


Github 저장소: https://github.com/yjyoon-dev/enphago-android

0%