본문 바로가기

Development/JAVA 앱 개발노트

(My Voca) Day 14. 사전기능 및 시험문제 만들기 기능 구현

1. 사전API

- 사전 api는 사실상 유료가 대부분이며 무료인 경우에도 예문 등을 재구성하여 2차 창작물을 만든 경우 저작권에 문제가 생길 수 있음

- 따라서 사전기능은 정보를 저장하여 내용에 대한 수정은 없이 저장만 가능하도록 함

- 사용 예정 사전 api: 한국어기초사전 api

 

2. 문제 만들기

 1) O, X 문제 만들기

   - ArrayList에서 문제 생성을 위해 사용될 단어와 뜻을 가져옴

   - 단어, 뜻, TF여부를 전역변수로 지정

   - generateQuestion을 통해 문제 생성 틀을 지정

   - 단어 가져오기 > 정답을 가져올지 오답을 가져올지 설정 > 클릭 이벤트 처리 대기

   - rendomQuestion을 통해 랜덤한 문제 생성(총 문제 20개를 지정한다면 20개의 문제를 우선 생성 후 정답을 미리 저장)

   - 문제 출력

   - 클릭이벤트로 수집된 TF데이터를 병기나열하여 동일함에 대한 TF 검증

   - 결과 출력 및 정답률 저장

 

  2) 매칭 문제

   - 단어와 뜻만 전역변수로 지정

   - 4지선다 문제 생성 틀 지정

   - 단어 가져오고 뜻 들은 4개를 만들되 한 개는 정답, 나머지는 랜덤하게 오답 추출

   - 선택지의 오답 및 정답의 순서는 랜덤하게 배열(20문제를 지정한다면 문제의 정답을 우선 저장)

   - 문제 출력

   - 클릭이벤트로 수집된 TF데이터를 병기나열하여 동일함에 대한 TF 검증

   - 결과 출력 및 정답률 저장

 

  3) 빈 칸 넣기(사실상 사전 기능의 저작권문제는 여기서 발생하므로 크롤링을 통한 문장 가져오기 및 번역기능api 사용)

    - 단어를 전역변수로 지정

    - 문장을 크롤링

    - 크롤링한 문장에서 선택 단어를 문자열 "____"로 전환

    - "___"를 하나의 단어로 포함하여 번역

    - 단어리스트 중 한 개의 정답과 세 개의 오답을 랜덤하게 배치(정답 우선 저장)

    - 문제 출력

   - 클릭이벤트로 수집된 TF데이터를 병기나열하여 동일함에 대한 TF 검증

   - 결과 출력 및 정답률 저장

 

3. 추가 고려사항

   - 문제 풀이 중 단어 찾기 기능을 넣을지 말지에 대한 고민은 필요할 것으로 보임(크롤링을 통한 문장을 가져오기 때문)

   - 크롤링을 통한 문장 문장의 저작권, 문장의 신뢰도 연구 필요

   - 번역기능의 필요여부, 번역기능의 성능 검증 필요

   - 영한만 취급? 한영도 취급해야할텐데? 그럼 가져온 결과물을 DB에 어떻게 구성할 것인가 고민 필요