Skip to content

Conversation

@ihyeeun
Copy link
Contributor

@ihyeeun ihyeeun commented Oct 22, 2025

요약

  • 제33~35항에서 빠져 있던 종료표 생략 예외를 모두 코드로 옮겨, 마침표/따옴표/괄호/숫자와 결합한 로마자에서도 잘못된 종료표가 출력되지 않도록 했습니다.
  • 로마자 구간을 유지해야 하는 기호를 should_skip_terminator_for_symbol, should_request_continuation 등 헬퍼 함수로 분리해 Encoder가 종료/연속 상태를 명확하게 전환하도록 했습니다.
  • 괄호, 쉼표를 영어 점자로 출력할지 판별하는 로직과 단일 소문자 연속 규칙() 처리를 english_logic 모듈을 만들었습니다.
  • rule_32 CSV 테스트 케이스를 추가해 새 로직이 의도한 결과를 내는지 검증했습니다.
     

세부 변경 사항

  1. english_logic.rs 모듈을 신설해 로마자 종료/연속 판단, 영어 기호 사용 판정을 각각의 함수로 분리했습니다.
    이렇게 하면 제33~35항의 조건을 한 곳에서 관리할 수 있도록 하였습니다.
  2. Encoder는 영어 구간을 열고 닫을 때 새 헬퍼를 호출하도록 수정되었습니다.
    숫자(제35항), 닫는 괄호·따옴표(제34항), 문장부호(제33항) 등에서 종료표를 생략하고도 연속 상태를 기억하도록needs_english_continuation 플래그를 사용합니다.
  3. 괄호·쉼표가 영어 기호인지 한글 기호인지 판단하는 조건을 정리했습니다.
    영어 구간에서 열었던 괄호는 영어 괄호로 닫히고,
    한글 문맥에서는 기존 점형을 유지하게 했습니다.
  4. 영어 구간 전용 괄호·쉼표 점형을 제공하기 위해 symbol_shortcut에 영어 전용 기호 매핑을 추가해, 제33~34항 상황에서도 올바른 점형이 나오도록 했습니다.
  5. 테스트 케이스 rule_32를 추가하였습니다.
  6. 2024 개정 한국 점자 규정 PDF와 일치하지 않았던 제34항 라인1의 테스트 케이스를 수정했습니다.
기존 테스트 결과 개선 테스트 결과 요약
스크린샷 2025-10-21 21 31 01 스크린샷 2025-10-21 21 31 23 32항 테케 추가 -> 100%
33항 50% -> 100%
33항_다만 42% -> 100%
34항 33% -> 100%
35항 0% -> 100%
위 케이스가 모두 통과하면서
총 실패 케이스 수가
48건에서 37건으로 감소.

리뷰 요청사항

Rust 언어를 이번에 처음 사용해 보았습니다.
미숙한 부분이나 코드 스타일에 개선이 필요한 부분이 있다면 편하게 리뷰 남겨주시면 감사하겠습니다 ! 🙌
(아직 로마자 관련 로직이 완벽하게 구현되지는 않았습니다. 이 부분은 추후 개선해 나가야할거같습니다!)

Signed-off-by: ihyeeun <oioigl@naver.com>
Signed-off-by: ihyeeun <oioigl@naver.com>
Signed-off-by: ihyeeun <oioigl@naver.com>
@changeset-bot
Copy link

changeset-bot bot commented Oct 22, 2025

⚠️ No Changeset found

Latest commit: 0211b31

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@hanan-nana
Copy link

hanan-nana commented Oct 24, 2025

엇... 제가 이슈 올렸던 부분을 해결하셨군요 한참 하고 있었는데.. 다음에는 혼선 안생기게 미리 이슈 올려주시면 감사하겠습니다

@hanan-nana
Copy link

hanan-nana commented Oct 24, 2025

OSSCA 마감 직전에 봐서 좀 많이 당황스럽긴합니다

@ihyeeun
Copy link
Contributor Author

ihyeeun commented Oct 24, 2025

안녕하세요,
작업 과정을 먼저 설명드리자면 저는 처음에 30항 살펴보다가 테스트 케이스를 확인하는 과정에서 로마자 관련 규칙이 아직 구현되지 않았거나 오류가 있는 것을 발견했습니다.
원래 이슈를 먼저 등록하고 작업을 진행했어야 했는데 범위가 얼마나 될지, 제가 구현할 수 있을지 확신이 서지 않아서 해낼 수 있는 건가 하며 혼자서 코드를 수정하면서 문제상황을 찾아갔습니다. 초기에는 점자규칙에 대해서도 잘 모르고 Rust언어를 처음 사용하다보니 더욱 소극적 자세로 임했던 것 같습니다.

그 사이 @hanan-nana 님께서 문제를 정확히 짚어 이슈를 등록해주셨습니다. 제 미성숙한 자세와 사전에 이슈를 올리지 않아 중복된 문제에 시간을 쓰시게 한 것 같아 정말 죄송합니다..

이 PR은 실패중인 테스트 케이스를 통과하기 위해 진행한 결과이며 추가되지 않은 로마자 관련 케이스에서 완벽하게 커버되지 않을 수 있습니다.
또한 제가 Rust는 이번 프로젝트를 통해 처음 사용하게 되어 코드 품질이나 접근 방식에 더 나은 방식이 있을 것 같습니다. 제 코드와 상관없이 더 좋은 코드가 있다면 프로젝트를 위해 가장 좋은 코드가 병합되어야 한다고 생각합니다 .. !

앞으로는 이런 문제가 없도록 이슈를 먼저 등록하고 작업을 진행하도록 하겠습니다..
다시 한번 혼선을 드린 점 사과드립니다.

@hanan-nana
Copy link

괜찮습니다! 다행히 이슈 올린뒤로 39항의 로마자가 주된 문장의 구분과 관련해서 한글이 주된 문장과의 구분을 어떻게 구현할지부분도 보고 있었어서 그 부분으로 진행하려고 합니다.

저도 러스트는 익숙하지 않기도 하고, @ihyeeun 님이 올려주신 PR과 별개로 39항 처리를 중심으로 잡아서 구현해보려고 하니 너무 심려치 마세요! 좋은 프로젝트에 큰 기여하신거 같아서 부럽고 저도 다른 이슈 해결하는데 집중해보겠습니다 :)

@ihyeeun
Copy link
Contributor Author

ihyeeun commented Oct 24, 2025

@hanan-nana 님 너그럽게 이해해주셔서 정말 감사합니다. 🙇
이슈를 발견하고 정리하는 데 들이셨을 노력을 알기에 더 죄송한 마음이었습니다.

39항 관련 작업도 순조롭게 진행되어 꼭 성공적으로 기여하시길 진심으로 응원하겠습니다 !!

Copy link
Contributor

@owjs3901 owjs3901 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

함수 주석 관련만 수정 부탁드립니다

// 규칙 33~35에서 종료표(⠲)를 생략해야 하는 기호 모음.
// 기호 앞뒤에서는 로마자 종료표를 생략한다.
pub(crate) fn should_skip_terminator_for_symbol(symbol: char) -> bool {
matches!(symbol, '.' | '?'| '!'| '…'| '⋯'| '"'| '\''| '”'| '’'| '」'| '』'
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

저 이 문법 처음 알았어요

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

char 대상으로도 됐었구나..

Comment on lines 3 to 4
// 규칙 33~35에서 종료표(⠲)를 생략해야 하는 기호 모음.
// 기호 앞뒤에서는 로마자 종료표를 생략한다.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

/// 로 걸어야지 docs 에 들어갈거에요

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

수정 했습니다 ! 한번만 확인 부탁드립니다 !

@codecov
Copy link

codecov bot commented Oct 26, 2025

Codecov Report

❌ Patch coverage is 99.47090% with 1 line in your changes missing coverage. Please review.

Files with missing lines Patch % Lines
libs/braillify/src/english_logic.rs 98.18% 1 Missing ⚠️
Files with missing lines Coverage Δ
libs/braillify/src/lib.rs 92.03% <100.00%> (+4.05%) ⬆️
libs/braillify/src/symbol_shortcut.rs 90.00% <100.00%> (+6.66%) ⬆️
libs/braillify/src/english_logic.rs 98.18% <98.18%> (ø)

... and 1 file with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Signed-off-by: ihyeeun <oioigl@naver.com>
@ihyeeun
Copy link
Contributor Author

ihyeeun commented Oct 26, 2025

@owjs3901 멘토님 테스트 코드 추가 했습니다 ! 확인 부탁드립니다 !

@owjs3901 owjs3901 merged commit c8d5868 into dev-five-git:main Oct 28, 2025
2 checks passed
@ihyeeun ihyeeun deleted the refactor/braille-rules-32-35 branch October 28, 2025 11:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants