feat(wiki,vocabulary): 문법 위키 + 학년별 단어장 교체 - #19
Merged
Merged
Conversation
## 문법 위키
교재 PDF 30챕터 253용어를 DB 에 넣고 조회 API 를 붙였다.
GET /api/wiki/chapters 목차 (용어 수 포함)
GET /api/wiki/chapters/{id} 장 본문
GET /api/wiki/search 이름·영문명·설명 검색
GET /api/wiki/terms?ids= 즐겨찾기 복원
파싱에서 걸린 것 세 가지.
- 목차 페이지에도 "1. 문장의 기본 구조" 가 있어 챕터가 60개로 잡혔다
- 8장 조동사만 영문명이 없다. 위치로 고정하면 15개가 통째로 날아간다
- 설명이 여러 줄로 쪼개지고, 비교 예문은 예문·뜻이 2줄씩 짝을 이룬다
examples/meanings 는 짝이라 DB 제약으로 길이를 맞춘다. 어긋나면 화면에서
해석이 밀린다.
검색은 pg_trgm 인덱스로 받친다. 253행이라 성능 문제는 아니지만 앞뒤
와일드카드가 순차 스캔을 타지 않게 한다.
## 학년별 단어장
BEGINNER/INTERMEDIATE/ADVANCED → GRADE_1/2/3. 실제 교재가 고1·고2·고3
세 벌로 만들어져 이름을 맞춘다.
users.vocab_level 은 그대로 둔다. 이름만 학년을 따를 뿐 users.grade 와는
여전히 별개다 — 고3 학생에게 고1 단어장을 지정할 수 있어야 한다.
기존 3998단어를 지우고 새 6000배치(고유 4063행)를 넣는다. 고2·고3 에 1450개가
겹치는데 뜻·예문이 대개 달라 행이 갈린다. word_day_items 를 걸 때 headword 만
쓰면 엉뚱한 행이 걸리므로 뜻까지 지정한다.
questions.ref_word_day_id 는 CASCADE 가 아니라 참조만 끊는다. 사라진 교재를
가리켰다고 학생 질문을 지울 수는 없다.
품사는 tags 배열이 아니라 part_of_speech 컬럼에 둔다. 기존 tags 의
headword/derived 와는 의미가 다르다.
## .gitignore
디렉터리를 jungwoon-api → purut-api 로 옮길 때 무시 경로를 같이 고치지 않아
단어 데이터가 다시 추적됐다. 경로를 고치고 위키 데이터도 함께 막는다.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
문법 위키
교재 PDF 30챕터 253용어를 DB 에 넣고 조회 API 를 붙였습니다.
파싱에서 걸린 것 세 가지입니다.
1. 문장의 기본 구조가 있어 챕터가 60개로 잡혔습니다examples/meanings는 짝이라 DB 제약으로 길이를 맞췄습니다. 어긋나면 화면에서해석이 밀립니다.
목차의 챕터별 개수와 대조해 253개 전수 일치를 확인했습니다.
학년별 단어장
BEGINNER/INTERMEDIATE/ADVANCED→GRADE_1/2/3. 실제 교재가 고1·고2·고3 세 벌로만들어져 이름을 맞춥니다.
users.vocab_level은 그대로 둡니다. 이름만 학년을 따를 뿐users.grade와는여전히 별개입니다 — 고3 학생에게 고1 단어장을 지정할 수 있어야 합니다. V5 에서
둘을 분리한 이유가 그것입니다.
기존 3,998단어를 지우고 새 6,000배치(고유 4,063행)를 넣습니다. 고2·고3 에 1,450개가
겹치는데 뜻·예문이 대개 달라 행이 갈립니다.
word_day_items를 걸 때headword만쓰면 엉뚱한 행이 걸리므로 뜻까지 지정합니다.
questions.ref_word_day_id는 CASCADE 가 아니라 참조만 끊습니다. 사라진 교재를가리켰다고 학생 질문을 지울 수는 없습니다.
확인
./gradlew test통과.gitignore
디렉터리를
jungwoon-api→purut-api로 옮길 때 무시 경로를 같이 고치지 않아단어 데이터가 다시 추적됐습니다. 경로를 고치고 위키 데이터도 함께 막았습니다.
히스토리에 올라갔던 것은 별도로 제거했습니다.