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

[기능 요구사항] 문제 추첨 #76

Open
jihwankim128 opened this issue Aug 9, 2024 · 8 comments
Open

[기능 요구사항] 문제 추첨 #76

jihwankim128 opened this issue Aug 9, 2024 · 8 comments
Assignees
Labels
✨ 기능 새로운 기능을 건의 / 새로운 기능을 구현 또는 개선 🟠 우선 순위: 높음

Comments

@jihwankim128
Copy link

단축 키로 1문제씩 문제를 보여주는게 아니라,
한 번에 여러 문제도 추첨해주셨으면 좋겠습니다.

학생들 간 알고리즘 스터디 시 유용하게 사용할 것 같습니다.

이미 바쁘셔서 건의사항은 추가하기 힘들다는 것을 알고 있지만, 작업이 다 끝나는대로 기대해 볼 수 있을까 ? 하고 작성합니다 ^^!
고생 많으십니다. 감사해요

@wzrabbit wzrabbit self-assigned this Aug 9, 2024
@wzrabbit wzrabbit added the ✨ 기능 새로운 기능을 건의 / 새로운 기능을 구현 또는 개선 label Aug 9, 2024
@wzrabbit
Copy link
Owner

wzrabbit commented Aug 9, 2024

안녕하세요, @jihwankim128 님! 토탐정을 개발 및 관리하고 있는 요술토끼입니다.

우선 여러 개의 문제(사실상 문제셋) 추첨 기능에 대해서 건의해 주셔서 감사합니다! 알고리즘 스터디를 말씀해 주셨는데요,
실제로도 토탐정을 스터디 진행 용도로 사용하고 계신 분들이 많았으며, 따라서 건의해 주신 기능 또한 많은 분들이 필요로 하실 것이라고 생각됩니다.

알고 계신대로 저는 토탐정을 완전히 처음부터 재개발 중이고, 이후의 건의사항도 많기에 높은 수요가 예상됨에도 불구하고 바로 작업하지 못하는 점은 죄송하게 생각하지만, 꼭 긍정적으로 고려해 보고 어떻게 구상해야 유용하게 이 기능이 사용될 수 있을지도 고민해보겠습니다. 문제 자체를 뽑아오는 것은 API로 어렵지 않게 가능하지만, 항상 UI를 어떻게 구상해야 할 지가 고민이 많이 되는 것 같습니다.

건의해 주셔서 다시 한 번 감사합니다! 이 이슈는 닫지 않고 제가 추후 구현할 수 있도록 그대로 두겠습니다.

@wzrabbit
Copy link
Owner

wzrabbit commented Aug 9, 2024

여기는 이슈이므로, 꼭 사용자님이 질문만 하시고, 제가 답변만 하는 일방통행과 같은 대화는 아니어도 괜찮을 것 같네요. 혹시 더 구체적인 아이디어나 수요를 말씀해 주시고 싶으시면 이 이슈에 이어서 말씀해 주셔도 될 것 같습니다.

저도 사용자님 이슈를 보고 아이디어를 떠올리던 중, 아래의 아이디어를 하나 떠올려봤는데, 이 아이디어에 대해서는 어떻게 생각하시는 지 궁금합니다.

✨ 기능: 길게 눌러서 여러 문제 추첨하기

  • 문제 추첨(랜덤 디펜스)을 위해 사용자가 쿼리를 작성해 슬롯에 등록해야 하는 것, 그리고 단축키 / 추첨 아이콘을 눌러야 추첨이 진행되는 것은 동일합니다.
  • 그러나, 단축키 / 추첨 아이콘을 일정 시간 이상 길게 누를 경우, 추첨 후 해당 문제로 추첨이 되는 대신, 팝업 또는 토스트가 뜨며 몇 문제를 추첨할 것인지를 물어봅니다.
  • 사용자가 문제 수를 고르면, 페이지 이동을 하는 대신, 화면에 추첨된 문제들을 띄우는 것으로 기능을 대신합니다.
  • 추첨된 문제들은 추첨 기록에 저장할 지, 저장하지 않을 지 선택이 가능합니다.
  • 스터디 등 메모를 위해, 추첨된 문제들을 텍스트 형태로 간편하게 복사할 수 있습니다(원클릭 복사). 아래는 예시입니다. 더 좋아보이는 메모 포맷이 있다면 추천해주셔도 좋습니다.
1. 1000번. A+B (https://acmicpc.net/1000)
2. 1001번. A-B (https://acmicpc.net/1001)
3. 1002번. 터렛 (https://acmicpc.net/1002)

@jihwankim128
Copy link
Author

여행 일정으로 이제서야 확인했네요. 답변 감사합니다.

image

저는 그냥 해당 ui에서 추첨할 문제 개수 를 추가했으면 좋겠습니다.
그리고 문제 추첨하기 를 누르면, 검색 알고리즘 태그의 목록대로 랜덤한 개수의 문제를 추첨하는 것이죠.

그리고 추첨기록은 로컬 스토리지나 크롬 스토리지에 저장될 것 같은데 그냥 지우기 버튼을 하나 만들어 주는 것도 좋을 것 같습니다.

정리를 해보겠습니다.

  • 단축키 설정 화면을 그대로 사용한다.
  • 검색에 포함할 알고리즘을 선택한다.
  • 문제 추첨 생성을 누르면 작성된 정보를 저장한다.
    • 로컬 스토리지나 크롬 스토리지를 사용할 것으로 예상
  • 저장된 정보로 백준 페이지에서 단축키를 누르면 랜덤 문제를 도출한다.

여기까지가 기존의 문제 추첨 화면일 것입니다.
추가적으로 제목, 맞힌 사람 수 등의 옵션이 있죠.

수정될 기능입니다.

  • 문제 추첨 생성을 누르면 작성된 정보를 저장한다.
    • 텍스트 부분은 텍스트 작성이 완료되었을 때, 자동으로 저장되게 수정합니다.
    • 알고리즘 선택을 하는 순간 자동으로 저장합니다.
  • 추첨할 문제의 개수를 선택하도록 합니다.
    • 이 정보는 백준 페이지에서는 무용지물입니다. 백준 페이지는 오로지 1문제만 추천합니다.
  • 크롬 옵션 창에서 문제 추첨 버튼을 누르면 문제의 개수에 맞게끔 문제를 추천합니다.
    • 추천된 문제는 기록에만 표시해주고 기록을 지울 수 있게 해줍니다.

저는 불편하게 따로 페이지를 나누지 않고 한 페이지에서 다 처리할 수 있을 것 같습니다.
알고리즘을 좋아하는 코더를 위해 고생해주시는 토끼님 감사합니다 ^^

@wzrabbit
Copy link
Owner

wzrabbit commented Aug 15, 2024

안녕하세요, 의견 공유해 주셔서 감사합니다.
답변할 내용이 많아서 주제별로 나누어서 저도 의견 공유해드리겠습니다.

1️⃣ 질문: 자동 저장

문제 추첨 생성을 누르면 작성된 정보를 저장한다.

  • 텍스트 부분은 텍스트 작성이 완료되었을 때, 자동으로 저장되게 수정합니다.
  • 알고리즘 선택을 하는 순간 자동으로 저장합니다.

"자동 저장"이라는 것은, 설정 페이지를 새로고침 하더라도 [추첨 만들기] 메뉴에서 작성 중이던 사항들이 유실되지 않도록 개선을 원하신다는 의미일까요? 즉, 본래 건의해 주신 문제 추첨 기능과는 별개로 편의성 패치를 건의해 주신 건가요?

2️⃣ 추첨 기록의 삭제

그리고 추첨기록은 로컬 스토리지나 크롬 스토리지에 저장될 것 같은데 그냥 지우기 버튼을 하나 만들어 주는 것도 좋을 것 같습니다.

많이 불편하셨을 것 같습니다. 현재 다시 개발하고 있는 버전에서는 추첨을 (하나를 선택하여 삭제 / 전체 삭제)할 수 있는 기능을 이미 구현해 둔 이후니, 이후 v1.2 배포 시에는 이 기능이 추가되어 있을 것입니다.

3️⃣ UI 깨짐 문제

올려주신 스크린샷에서 UI가 부자연스럽게 깨지는 문제가 있네요? 별도로 건의해 주시지는 않으셨지만 어느 시점부터 이 UI가 깨져있는 것으로 보여, 수정 후 패치 진행하도록 하겠습니다.

말씀해 주신대로 저는 건의사항을 추가하기 힘든 상황에 놓여있고, 기존 버전(v1.1.*)의 UI는 기능 추가를 위한 유지보수는 더 이상 안 할 예정이지만, 이건 해결되지 않으면 많은 사용자들이 불편해 할 핫픽스이니 오늘 바로 크롬 웹 스토어에 버전 제출해 둘 계획입니다.

image

4️⃣ 답변: 추첨할 문제 개수를 UI에 직접 추가

아마도 이 답변을 기다려주셨을 것입니다.

저는 그냥 해당 ui에서 추첨할 문제 개수 를 추가했으면 좋겠습니다.

크롬 옵션 창에서 문제 추첨 버튼을 누르면 문제의 개수에 맞게끔 문제를 추천합니다.

  • 추천된 문제는 기록에만 표시해주고 기록을 지울 수 있게 해줍니다.

아마도 토탐정 설정 페이지에서 직접

  1. 추첨할 문제의 개수를 선택
  2. (여러 개의 문제를 추첨하기 위해) 추첨 기능을 직접 사용

하는 기능을 건의해 주신 것 같습니다. 다만, 이 건의에 대해서는 아직 저도 생각하고 있는 상황입니다. 왜 그런지는, 아래에 제 생각을 숨김 없이 공유해 드리겠습니다.

  1. 토탐정의 설정 페이지는 기본적으로 이곳에서 기능을 직접 사용하기보다는, 사용할 기능들에 대한 설정을 할 수 있도록 고안된 곳입니다. 설정 페이지를 보시면 아실 수 있지만, 지금으로써 토탐정 설정 페이지에서 직접 기능을 사용하는 부분은 한 곳도 없습니다. 모든 기능은 백준 사이트 내에서 실행되며, 토탐정 위젯이 이를 담당하는 역할을 합니다.
    • 몇몇 기능은 백준 페이지에서, 몇몇 기능은 설정 페이지에서 실행한다면 토탐정 확장 프로그램의 사용 난이도가 증가할 수 있을 것이라고 생각하고 있습니다.
    • 도움말을 더 자세하게 작성하는 것으로 보완할 생각이지만, 설정 페이지에 기능을 실행하는 UI가 있을 경우, 사용자는 슬롯에 대한 기능을 백준 페이지가 아니라 설정 페이지에서 사용해 주는 것일거라고 오해할 가능성이 있어 보입니다.
    • 설정에서 기능을 사용하는 것보다 백준에서 기능을 사용하도록 기획한 이유는, 사용자가 설정을 해야 하는 상황이어서 설정 페이지에 방문하는 경우를 제외하면 가능한 한 설정 페이지를 켜는 불편함 없이 백준 페이지 내에서 토탐정의 모든 기능을 이용할 수 있게 하기 위함이었습니다.
  2. 토탐정의 문제 추첨 설정 페이지는 이미 복잡한 UI 등으로 인해 사용법에 대한 문의가 여러 차례 올라온 적이 있는지라, 설정에 대한 기능을 추가하는 상황이 아니라면 가능한 한 설정 페이지보다는 백준 페이지에 있는 토탐정 위젯을 통해 기능을 제공해 드리고자 계획하고 있었습니다.
  3. "추첨할 문제 개수"는 사용자가 추첨을 원할 때마다 매번 추첨하고 싶은 문제 개수가 달라질 수 있을 것이라고 생각하며, 쿼리 생성에 관여하는 설정은 아니기 때문에, [추첨 만들기] 단계에서 해당 옵션을 추가하기 보다는, 이미 생성된 추첨에 대해 사용자가 이후 이 쿼리로 추첨을 원할 때, 그 때 사용자에게 추첨할 문제 수를 물어보는 것이 적합할 것이라고 생각하고 있습니다.

그래서 위에서 말씀드렸던 ✨ 기능: 길게 눌러서 여러 문제 추첨하기와 같이

  • 추첨을 만드는 곳에서는 쿼리에 영향을 미치는 요소들만 사용자가 설정할 수 있도록 해 두고,
  • 추첨을 만든 이후 이 추첨을 활용하는 백준 페이지에서 몇 문제를 추첨할 것인지를 묻는 형식으로
    일관성을 유지하고, 기능을 분리할 수 있는 기능 등을 제안드렸던 것입니다.

위의 이유로 저도 아직 고민하고 있으며, @jihwankim128 님을 설득하면서 한편으로는 @jihwankim128 님이 이를 보완할 수 있는 방법을 혹시 생각하실 수 있도록 제 생각을 공유해 드렸습니다.

근거를 고려하여 종합했을 때에는 어떻게 생각하시는 지 궁금합니다.

@wzrabbit
Copy link
Owner

wzrabbit commented Aug 15, 2024

곧 말씀하신 건의사항을 바탕으로 고안해 본 기능, 그리고 이해를 돕기 위해 제가 본래 이야기했던 ✨ 기능: 길게 눌러서 여러 문제 추첨하기 에 대해 기획한 스크린샷을 간략하게 올려드리도록 하겠습니다.
확인해 보신 후 결정해 주셔도 괜찮을 것 같습니다.

UI는 아직 배포되지 않은, 개발 중인 v1.2를 기준으로 하므로 아마 UI가 조금 달라보이실 수 있을 거에요 😄

@wzrabbit
Copy link
Owner

wzrabbit commented Aug 15, 2024

디자인은 급조된 것이며, 확정된 것이 아닙니다. 디자인보다는 기능 위주로 봐 주세요.
하나만 반영하거나, 혹은 둘 다 반영하는 등의 여러 선택지를 생각해 보고 있으니 보고 느끼신 점을 말씀해 주셔도 될 것 같습니다.

1️⃣ 설정 페이지 내에서, 즉석 추첨 진행하기

생성 시 추첨할 문제 수를 적는 것은 상단에 명시된 이유의 3번 항목에 의해 현재 고려하지 않고 있습니다.

✔️ v1.2를 기준으로 퀵 슬롯 메뉴는 원래 이렇습니다.
image

✔️ 이제, 여기에 즉석 추첨 버튼을 추가해 보겠습니다. 아래는 버튼 추가 후의 전체 UI입니다.
image

✔️ 즉석 추첨 버튼을 누르면 좌측의 모달이 표시되고, 이 상태에서 확인 버튼을 누르면 오른쪽 모달과 같이 결과 모달을 띄워줄 것 같습니다. 급조하는 것이므로 UI가 생략된 점은 양해 부탁드려요.
image

2️⃣ 백준 페이지 내에서, 길게 눌러서 여러 문제 추첨하기

✔️ 퀵 슬롯 메뉴에는 변동사항이 없습니다.

✔️백준 페이지 내의 토탐정 위젯에서 사용자가 단축키를 길게 누르거나, 위젯에 있는 추첨 버튼을 누르면

✔️ 아래와 같이, 백준 페이지의 좌측 하단에 토스트가 띄워집니다. 확인 버튼을 누르면 위와 동일하게 추첨 결과가 모달로 띄워집니다.

@jihwankim128
Copy link
Author

계속 답변이 늦네요 죄송합니다.

답변주신 내용 꼼꼼히 잘 읽어봤습니다.
앞서, 제 질문에 답변주신 부분은 생략해도 될 것 같네요. 토탐정님만의 확고한 개발 목적이 있는 것 같다고 느꼈습니다.

그리고 바로 이어서 답변으로 예시 결과물을 보여주셨는데 사용자 입장에서 매우 만족할만한 UX네요.

다만 마지막 코멘트 1번과 2번 중 선택하라면
저는, 1번을 선택하겠습니다. 저만의 일반화일 수도 있는데 단축키라는게 설명서를 꼼꼼히 읽지 않는 이상 놓치기 쉬운 부분이라고 생각하는데요.

조심스러울수도 있는 발언이지만, 저는 개인적으로 한국인 특성 상 설명서 같은건 집어치우고 눈에 보이는대로 테스트 하는 경우가 많다고 생각합니다. 그랬을 때 1번 결과물이 조금 더 직관적이지 않을까? 라는 생각을 해봐요.

저도 토탐정을 사용해 본 경험으로 1번 결과물만 되어도 주변 지인들한테 많이 추천할 것 같습니다.

저는 전공 학생이지만 주변 친구들 중에 알고리즘을 접근하기 어려워하는 학생들도 많고, 유형 별 문제에 대해 감을 못잡는 학생도 많습니다. 그런데 저렇게 직관적인 UI라면 꼭 사용해보라고 할 것 같습니다.

계속 답변주시고 좋은 결과물 만들어주려고 노력해주셔서 감사합니다 ^^!

@wzrabbit
Copy link
Owner

안녕하세요, @jihwankim128 님!
먼저 자세하게 여러 코멘트에 걸쳐 의견 공유해 주셔서 감사할 따름입니다. 덕분에 첫 번째 코멘트가 자세해서 무엇을 원하시는지 어느 정도 예측이 가능하고 이를 바탕으로 두 가지 플로우를 추천드릴 수 있었습니다.

1번을 선호하신다고 말씀해 주셨고, 그 근거로 2번보다 직관적이고, 단축키를 포함하여 2번 기능에서 제공하는 것들은 설명서를 보지 않으면 놓치기 쉬움을 말씀해 주셨습니다. 읽어보면서 두 근거 모두 공감가며, 평소 토탐정의 사용 난이도를 걱정하고 있는 저에게도 기능 기획을 고려함에 있어서 신중하게 고려하게 되는 근거였습니다.

앞으로의 구현 방향을 말씀드리겠습니다.

구현 방향

  1. "1️⃣ 설정 페이지 내에서, 즉석 추첨 진행하기" 방식으로 사용자에게 여러 문제를 추첨할 수 있는 기능을 제공한다.
  2. "2️⃣ 백준 페이지 내에서, 길게 눌러서 여러 문제 추첨하기" 는 이후 상황에 따라 후순위로 구현해 보며, 구현할 경우 반드시 이 기능에 대한 자세한 사용법을 첨부한다.

"2️⃣ 백준 페이지 내에서, 길게 눌러서 여러 문제 추첨하기" 를 이야기했을 때 일관성에 대한 이야기를 한 적이 있습니다. 설정은 "토탐정 설정" 에서, 기능은 "백준 페이지 내에서" 하는 것이요.

그러나 결국 이 일관성이 사용자가 헤매지 않고 토탐정을 쉽게 사용하는 것이 목적이라면 일관성을 위해 말씀하신 직관적인 UI를 포기하게 되고, 오히려 의도와는 달리 사용자의 사용 난이도를 결국 높이는 결과가 될 수도 있음을 알게 되었습니다. 일관성은 중요하지만, 때로는 개발자의 잘못된 고집이라고도 생각해요.

다만 토탐정의 사용법을 숙지한 유저 입장에서라면, 설정 페이지를 들르기 전 백준 페이지에서 온전히 기능을 사용할 수 있게 하는 것은 토탐정이 랜덤 디펜스 기능을 처음 제공했을 때부터 사용자분들께 드리고 싶었던 편리함이므로, 2번 기능도 아예 배제하기보다는 구현해 보고 싶은 마음입니다. 이슈에서 의견 나누면서 어렵게 떠올린 아이디어라고 생각하거든요.

이렇게 진행할 예정입니다만, 처음에 말씀드렸던 대로 저는 v1.2를 완성시키는 것을 최우선으로 하고 있으므로 빠른 시일 내로 이 기능을 구현하는 것은 어려울 수 있음을 말씀드립니다. 정말 원하시는 기능인데도 불구하고 빠르게 가려운 곳을 긁어드리지 못하는 것은 죄송하게 생각하며, 이 건의는 잊지 않고 꼭 구현해 볼 수 있도록 하겠습니다.

이 이슈는 기능 구현이 완료될 때까지 열어 두겠습니다. 감사합니다.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
✨ 기능 새로운 기능을 건의 / 새로운 기능을 구현 또는 개선 🟠 우선 순위: 높음
Projects
None yet
Development

No branches or pull requests

2 participants