WIL. 최종프로젝트(17) kiwipiepy, jamo, 퀴즈처리로직

2023년 06월 24일 by barryjung

    WIL. 최종프로젝트(17) kiwipiepy, jamo, 퀴즈처리로직 목차

[이번주 배운점]

이번에 새롭게 접하게된 라이브러리가 많다.

사실 selenium도 사용해본것은 처음이고, email등 모듈 처음이다.

 

그중 우리 프로젝트에 적절하게도 한글을 가공해주는 라이브러리들이 있다.

파이썬

<kiwipiepy, jamo>

팀원분이 작성해주신 부분에서 사용된 라이브러리다.

 

1. kiwipiepy는 한국어 형태소 분석기라고 부른다.

한글 단어 하나를 입력하면, 그에 맞는 여러 형을 묶어서 반환해준다.

명사 '공부'를 넣으면 '공부하다' '공부하는' 등을 출력해주는 것이다.

 

우리 프로젝트에서 빈칸 채우기 퀴즈 유형을 만드는데 사용되었다.

 

※ 한편, 뜻풀이퀴즈와 빈칸채우기 퀴즈는

사전 퀴즈 데이터를 여러개 불러와서 조합해 퀴즈를 만들어낸다.

사전 퀴즈 데이터가 몇천개 있으니, 나오는 퀴즈의 경우의 수는 셀수가 없다.

 

※ 나는 퀴즈 신고하기 관련하여 퀴즈에 아이디(pk)를 퀴즈 유형별로 '모델'+pk값으로 바꾸려고 시도했었었다.

그런데 AutoField를 커스텀하는게 어려워서 작성이 어려웠다.

하지만 위와같은 퀴즈 유형이 생겨서 퀴즈 신고하기는 퀴즈 ID를 신고하는게 아닌,

해당 퀴즈 json을 통채로 신고하는 형태로 바뀌었다.

 

퀴즈 결과 보고의 경우에도 확장성을 고려해서 퀴즈 제공 json에

정답여부만 표시하여('solved'키로 True/False값이온다.) 그대로 반환하는 식으로 작성했다.

 

※ 퀴즈 제공과 결과보고는 json값을 작성하고 접수받기만 하지만,

퀴즈 신고하기는 퀴즈 json값을 DB에 저장한다. (관리자가 처리할때까지)

특별하게도 postgresql은 json필드를 지원하여 적절하게 저장할수 있었다.

 

2. jamo는 한글 자모를 뜻하고 말그대로 자음 모음을 분리해주는데,

한글자를 초성 중성 종성으로 분리해준다.

 

우리 프로젝트에서 십자말 풀이에 힌트보기에서 사용되었다.

힌트를 누르면 단어의 초성을 보여준다.