Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[FEAT] "간편 입력" 에서 문제 언어를 정할 수 있는 기능을 추가 #133

Merged
merged 12 commits into from
Oct 25, 2024

Conversation

wzrabbit
Copy link
Owner

@wzrabbit wzrabbit commented Oct 25, 2024

관련 이슈

PR 설명

본 PR에서는 아래의 변경사항들을 구현하였습니다.

1️⃣ "간편 입력" 에서 문제 언어를 정할 수 있는 기능을 추가

랜덤 디펜스 기능의 간편 입력 메뉴에서 문제의 언어를 지정 할 수 있는 기능을 추가하였습니다.

  • 한국어, 영어, 한국어 및 영어, 모든 언어 중 하나를 선택할 수 있습니다.

각 옵션을 골랐을 때에는 아래와 같이 작동합니다.

  • 한국어 를 고른 경우에는 한국어 문제이거나, 한국어 번역을 제공하는 문제만이 선정됩니다. 즉, 원문이 외국어인 문제가 등장할 수 있습니다. lang:ko
  • 영어 를 고른 경우에는 영어 언어만을 지니는 문제만이 선정됩니다. 원문이 영어인 한국어 문제는 등장하지 않습니다. lang:en ~lang:ja ~lang:sv
  • 한국어 및 영어 를 고른 경우에는 한국어, 영어 중 적어도 하나의 지문을 제공하는 문제들이 선정됩니다. 즉, 러시아어 문제더라도 한국어 원문을 제공하면 등장할 수 있습니다. (lang:ko | (lang:en ~lang:ja ~lang:sv))
  • 모든 언어 를 고른 경우에는 모든 문제들이 선정될 수 있습니다. 이 경우 별도의 쿼리는 없습니다.

~lang:ja, ~lang:sv 를 사용하는 이유는, 이러한 문제들 중 일부는 lang:kolang:en 의 검색 결과로 나오는 문제이면서, 한국어 및 영어 지문이 없는 문제가 나오는 경우를 발견했기 때문입니다.

2️⃣ 추첨 수정 모달에서도 솔브드 고급 검색 하이퍼링크가 보이도록 개선

"직접 입력" 메뉴 외에도 추첨 생성 후 수정을 할 때 띄워지는 추첨 수정 모달에서도 하이퍼링크가 보이도록 개선하였습니다.

3️⃣ NOR 모드가 올바르게 작동하지 않는 문제를 해결

NOR 연산자를 선택하여 추첨을 생성했을 경우 잘못된 쿼리로 인해 기능이 올바르게 작동하지 않는 점을 해결했습니다.

  • 특정 알고리즘을 제외하기 위해 - 연산자를 사용했었는데, 이를 ~ 로 변경하였습니다.
  • - 도 유효한 연산자이지만, 알고리즘 분류끼리 붙어 있을 경우 제대로 작동하지 않았습니다. 반면 ~ 의 경우에는 연산자가 붙어 있어도 올바르게 작동함을 확인하였습니다.

4️⃣ 쿼리의 최대 글자수를 늘렸습니다.

  • 300자 $\rightarrow$ 512자
  • 테스트 후 안전함을 확인하였고, 솔브드에서 허용하는 최대 쿼리 글자 수로 변경하였습니다.

참고 자료

1️⃣ 새롭게 변경된 "간편 입력" UI

image

2️⃣ 추첨 수정 모달 UI

image

- 기존에는 직접 입력을 누른 경우에만 이 문구가 보이기에, 직접 입력 메뉴를 사용하지 않는 유저는 이 팁을 발견하지 못할 수 있음
@wzrabbit wzrabbit added ✨ 기능 새로운 기능을 건의 / 새로운 기능을 구현 또는 개선 🚨 버그 버그 제보 / 버그를 해결 🎁 컴포넌트 컴포넌트 관련 작업사항 labels Oct 25, 2024
@wzrabbit wzrabbit self-assigned this Oct 25, 2024
@wzrabbit wzrabbit merged commit 2045677 into develop Oct 25, 2024
2 checks passed
@wzrabbit wzrabbit deleted the feat/add-problem-lang-option-to-random-defense branch October 25, 2024 11:10
@wzrabbit wzrabbit mentioned this pull request Oct 25, 2024
wzrabbit added a commit that referenced this pull request Oct 25, 2024
* [FIX] 새로 배포를 할 때 이전 버전의 배포가 남아있는 문제를 해결 (#129)

* [FEAT] 공용 Select 컴포넌트를 구현하고, `<TierDropdown>` 를 리팩터링 (#130)

* ✨ feat: useSelect 커스텀 훅을 구현

* ✨ feat: Select 공용 컴포넌트를 구현

* 🧪 test: Select 컴포넌트에 대응하는 스토리북을 작성

* ♻️ refactor: TierDropdown 컴포넌트명을 변경하고, useSelect 커스텀 훅을 사용하도록 변경

* ♻️ refactor: HiderFieldsetMenu 컴포넌트에 TierSelect 컴포넌트명 변경에 따른 반영 진행

* [FEAT] "간편 입력" 에서 문제 언어를 정할 수 있는 기능을 추가 (#133)

* ✨ feat: AlgorithmPool의 검색 창의 placeholder를 더 명확한 의미를 가지는 문구로 변경

* ✨ feat: 쿼리의 최대 글자 수를 300자에서 512자로 변경

* ✨ feat: 최초 설치 시 생성되는 추첨에서 한국어 문제만 결과로 나오도록 설정

* ✨ feat: 문제 언어에 대응되는 타입을 추가

* ✨ feat: 문제 언어를 고를 수 있도록 validator / 커스텀 훅에 기능을 추가

* ✨ feat: "간편 입력" 모드에서 문제 언어를 고를 수 있는 UI를 구현하고, 커스텀 훅 및 Select 컴포넌트를 연결

* ✨ feat: 쿼리 생성을 담당하는 도메인에서 문제 언어를 반영할 수 있도록 개선

* ✨ feat: 추첨 수정 모달에서도 솔브드 고급검색 페이지 참고 문구를 보여주도록 개선

- 기존에는 직접 입력을 누른 경우에만 이 문구가 보이기에, 직접 입력 메뉴를 사용하지 않는 유저는 이 팁을 발견하지 못할 수 있음

* ♻️ refactor: 한 곳에서만 쓰이는 상수를 카멜 케이스로 변경하고, SearchOperator 타입을 직접 명시적으로 사용하도록 변경

* 🧪 test: 변경된 쿼리의 최대 글자 수에 맞춰 쿼리 검증 로직의 테스트 코드를 수정

* 🧪 test: 언어 설정을 반영한 쿼리 생성 도메인 로직 테스트를 반영

* 🧪 test: 변경된 쿼리의 최대 글자 수에 맞춰 쿼리 생성 시 폼의 데이터를 검증하는 로직의 테스트 코드를 수정
@wzrabbit wzrabbit mentioned this pull request Nov 3, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
✨ 기능 새로운 기능을 건의 / 새로운 기능을 구현 또는 개선 🎁 컴포넌트 컴포넌트 관련 작업사항 🚨 버그 버그 제보 / 버그를 해결
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant