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: 한글 문자열에 대한 검증, assert, parsing 함수를 구현합니다. #136

Merged
merged 7 commits into from
Jun 29, 2024

Conversation

sa02045
Copy link
Contributor

@sa02045 sa02045 commented Jun 25, 2024

Overview

#106 이슈에서 제안한 "한글 문자열"만을 다루기 위한 내부 함수를 구현합니다.

한글 문자열임을 보장하기 위해 상황에 따라 검증, assert, parsing 기능을 제공합니다.

  • 검증(validation): isHangul
  • assert: assertHangul
  • parsing: parseHangul, safeParseHangul

** "한글 문자열"에 대한 정의는 다른 이슈를 참고해 "공백포함"인 경우를 생각했습니다.

parsing은 유저 입력같이 런타임 데이터를 주로 다루는 함수에서 사용될 것으로 기대합니다.

  • 알수없는 입력값 string 타입을 한글 문자열로 parsing하여 사용

example)

export function hangulIncludes(x: string, y: string) {
  const parsedHangulX = safeParseHangul(x)  
  const parsedHangulY = safeParseHangul(y)

  if( !(parsedHangulX.success && parsedHangulY.success) ){
     return false
  }
  
   // 한글 문자열로 파싱 후 disassemble
  const disassembledX = disassembleHangul(parsedHangulX.data);
  const disassembledY = disassembleHangul(parsedHangulY.data);
  
  // ...
}

PR Checklist

  • I read and included theses actions below
  1. I have read the Contributing Guide
  2. I have written documents and tests, if needed.

Copy link

changeset-bot bot commented Jun 25, 2024

⚠️ No Changeset found

Latest commit: 2d3974e

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.

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

Copy link

vercel bot commented Jun 25, 2024

The latest updates on your projects. Learn more about Vercel for Git ↗︎

Name Status Preview Comments Updated (UTC)
es-hangul ❌ Failed (Inspect) Jun 25, 2024 5:56pm

@codecov-commenter
Copy link

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 99.58%. Comparing base (db94449) to head (2d3974e).

Additional details and impacted files

Impacted file tree graph

@@            Coverage Diff             @@
##             main     #136      +/-   ##
==========================================
+ Coverage   99.56%   99.58%   +0.02%     
==========================================
  Files          14       14              
  Lines         230      242      +12     
  Branches       51       53       +2     
==========================================
+ Hits          229      241      +12     
  Misses          1        1              

Copy link
Member

@okinawaa okinawaa left a comment

Choose a reason for hiding this comment

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

감사합니다! 내부적으로, 일관된 코딩스타일을 유지하는데 큰 도움이 될 것 같아요!

@okinawaa okinawaa merged commit f0195b2 into toss:main Jun 29, 2024
9 of 10 checks passed
KNU-K added a commit to KNU-K/es-hangul that referenced this pull request Jun 29, 2024
okinawaa added a commit that referenced this pull request Jun 29, 2024
* feat : 문장의 각 단어 중 첫 문자만 뽑는 함수추가

* test 및 함수 추가

* add : 한글 문장인지 여부 판별 함수 추가

* fix : 한글 문장인지 여부 판별 기저 및 오류 추가 / arg 이름 변경

test 추가

* fix: src/_internal/hangul.ts

Co-authored-by: 박찬혁 <[email protected]>

* fix : rename function

getFirstHangulLetters -> getHangulAcronym

* fix : rename function

export function isHangulOnly로 변경

* fix : lint error

* fix : index에 추가

* chore : doc 추가

* fix : 문서화 한글 영어 바뀐거 바로 변경

* fix : isHangul로 대체 #136 으로

* chore : doc수정

* Update docs/src/pages/docs/api/getHangulAcronym.en.mdx

Co-authored-by: 박찬혁 <[email protected]>

* fix : Update hangul.ts

안쓰는 메소드 삭제

* Update getHangulAcronym.ko.mdx

* Update getHangulAcronym.en.mdx

* Update src/getHangulAcronym.ts

Co-authored-by: 박찬혁 <[email protected]>

* Update src/getHangulAcronym.ts

Co-authored-by: 박찬혁 <[email protected]>

* Update getHangulAcronym.ts

* Update getHangulAcronym.spec.ts

* Create fair-brooms-drive.md

---------

Co-authored-by: 박찬혁 <[email protected]>
@sa02045 sa02045 deleted the feat/hangul-invariant branch July 5, 2024 01:36
seungrodotlee pushed a commit to seungrodotlee/es-hangul that referenced this pull request Jul 6, 2024
* feat: 한글 문자열인지 boolean 반환 함수

* feat: 한글 문자열인지 assert 함수

* feat: stringify

* test: isHangulString, assertHangulString 테스트 코드

* feat: parse 함수

* test: parse 함수 테스트

* refactor: naming 통일
seungrodotlee pushed a commit to seungrodotlee/es-hangul that referenced this pull request Jul 6, 2024
* feat : 문장의 각 단어 중 첫 문자만 뽑는 함수추가

* test 및 함수 추가

* add : 한글 문장인지 여부 판별 함수 추가

* fix : 한글 문장인지 여부 판별 기저 및 오류 추가 / arg 이름 변경

test 추가

* fix: src/_internal/hangul.ts

Co-authored-by: 박찬혁 <[email protected]>

* fix : rename function

getFirstHangulLetters -> getHangulAcronym

* fix : rename function

export function isHangulOnly로 변경

* fix : lint error

* fix : index에 추가

* chore : doc 추가

* fix : 문서화 한글 영어 바뀐거 바로 변경

* fix : isHangul로 대체 toss#136 으로

* chore : doc수정

* Update docs/src/pages/docs/api/getHangulAcronym.en.mdx

Co-authored-by: 박찬혁 <[email protected]>

* fix : Update hangul.ts

안쓰는 메소드 삭제

* Update getHangulAcronym.ko.mdx

* Update getHangulAcronym.en.mdx

* Update src/getHangulAcronym.ts

Co-authored-by: 박찬혁 <[email protected]>

* Update src/getHangulAcronym.ts

Co-authored-by: 박찬혁 <[email protected]>

* Update getHangulAcronym.ts

* Update getHangulAcronym.spec.ts

* Create fair-brooms-drive.md

---------

Co-authored-by: 박찬혁 <[email protected]>
okinawaa added a commit that referenced this pull request Jul 12, 2024
* fix. 겹모음과 관련된 이상 현상들 수정

* fix. fix index

* fix. 오타 수정

Co-authored-by: 박찬혁 <[email protected]>

* fix. 오타 수정

Co-authored-by: 박찬혁 <[email protected]>

* fix. 업데이트 로직 반영

* test: internal 테스트 코드를 작성합니다 (#137)

* test: internal 테스트 코드를 작성합니다

* test: vitest에서 제공해주는 toThrowError로 변경

---------

Co-authored-by: 박찬혁 <[email protected]>

* docs: josa에 관련된 문서에 잘못된 부분을 수정합니다

- '이에/에' 삭제

Co-authored-by: 박찬혁 <[email protected]>

* chore: version packages (#143)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* feat: 한글 문자열에 대한 검증, assert, parsing 함수를 구현합니다. (#136)

* feat: 한글 문자열인지 boolean 반환 함수

* feat: 한글 문자열인지 assert 함수

* feat: stringify

* test: isHangulString, assertHangulString 테스트 코드

* feat: parse 함수

* test: parse 함수 테스트

* refactor: naming 통일

* feat : 문장의 각 단어 중 첫 문자만 뽑는 함수추가 ( #128 이슈에 대한 ) (#133)

* feat : 문장의 각 단어 중 첫 문자만 뽑는 함수추가

* test 및 함수 추가

* add : 한글 문장인지 여부 판별 함수 추가

* fix : 한글 문장인지 여부 판별 기저 및 오류 추가 / arg 이름 변경

test 추가

* fix: src/_internal/hangul.ts

Co-authored-by: 박찬혁 <[email protected]>

* fix : rename function

getFirstHangulLetters -> getHangulAcronym

* fix : rename function

export function isHangulOnly로 변경

* fix : lint error

* fix : index에 추가

* chore : doc 추가

* fix : 문서화 한글 영어 바뀐거 바로 변경

* fix : isHangul로 대체 #136 으로

* chore : doc수정

* Update docs/src/pages/docs/api/getHangulAcronym.en.mdx

Co-authored-by: 박찬혁 <[email protected]>

* fix : Update hangul.ts

안쓰는 메소드 삭제

* Update getHangulAcronym.ko.mdx

* Update getHangulAcronym.en.mdx

* Update src/getHangulAcronym.ts

Co-authored-by: 박찬혁 <[email protected]>

* Update src/getHangulAcronym.ts

Co-authored-by: 박찬혁 <[email protected]>

* Update getHangulAcronym.ts

* Update getHangulAcronym.spec.ts

* Create fair-brooms-drive.md

---------

Co-authored-by: 박찬혁 <[email protected]>

* chore: version packages (#145)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* feat: 문자열에서 한글만 반환하는 extractHangul을 구현합니다. (#130)

* feat: parseHangul

* fix: parseHangul의 이름을 extractHangul로 수정 및 테스트 코드 보완

* test: 일관된 테스트 코드 작성이 될 수 있도록 describe 설명 수정

* test: 테스트 코드 수정

* docs: extractHangul의 문서 작성

* test: 테스트 문구 수정

* fix: index.ts에 export 추가

* Create fresh-students-sit.md

---------

Co-authored-by: 박찬혁 <[email protected]>

* chore: version packages (#146)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* fix : getHangulacronym함수를 acronymizeHangul 메서드로 대체합니다. (#148)

* Update and rename getHangulAcronym.ts to acronymizeHangul.ts

* Update and rename getHangulAcronym.spec.ts to acronymizeHangul.spec.ts

* Update index.ts

* Update and rename getHangulAcronym.en.mdx to acronymizeHangul.en.mdx

* Update and rename getHangulAcronym.ko.mdx to acronymizeHangul.ko.mdx

* Create odd-squids-sin.md

---------

Co-authored-by: 박찬혁 <[email protected]>

* chore: version packages (#150)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* fix: amountToHangul이 소수점, 숫자도 대응할 수 있도록 수정 (#144)

* fix: amountToHangul이 소수점, 숫자도 대응할 수 있도록 수정

* docs: amountToHangul의 영어 문서 작성

* Create famous-cheetahs-sneeze.md

* Update famous-cheetahs-sneeze.md

---------

Co-authored-by: 박찬혁 <[email protected]>

* fix: packlint ESLint error (#149)

* test: utils 기능들의 테스트 케이스를 개선합니다 (#151)

* test: hasBatchim 함수의 테스트 케이스를 추가합니다

* test: hasSingleBatchim의 테스트 케이스를 추가합니다

* fix: nextra theme asset 개선 (#152)

* chore: version packages (#153)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* fix: 패키지가 노출하는 인터페이스를 명확히 하기 위해 index.ts를 named export로 수정합니다 (#157)

* fix: exposing public apis strictly

* Create wild-cows-juggle.md

* chore: version packages (#160)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* docs: CONTRIBUTING.md 파일에 메서드 컨벤션을 작성합니다. (#132)

* Update CONTRIBUTING.md

* fix

* write contribution.md

Co-authored-by: Jonghyeon Ko <[email protected]>
Co-authored-by: Dongkyu Kim <[email protected]>

* Update .github/CONTRIBUTING.md

Co-authored-by: Jonghyeon Ko <[email protected]>

* Update .github/CONTRIBUTING.md

Co-authored-by: Jonghyeon Ko <[email protected]>

* Update .github/CONTRIBUTING.md

Co-authored-by: Jonghyeon Ko <[email protected]>

---------

Co-authored-by: Jonghyeon Ko <[email protected]>
Co-authored-by: Dongkyu Kim <[email protected]>
Co-authored-by: Jonghyeon Ko <[email protected]>

* test: amountToHangul 테스트 추가 (#135)

* test: amountToHangul 테스트 추가

* test: amountToHangul 테스트 코드 수정

* test: amountToHangul 테스트 코드 스타일 변경

* test: amountToHangul test 개선

* fix: assert.throws대신 vitest toThrow로 메서드 변경

* fix: vitest toThrowError 메서드로 변경

---------

Co-authored-by: kinndohyun <[email protected]>
Co-authored-by: 박찬혁 <[email protected]>

* fix: 소수점 추가 후 발생한 '영'읽기 버그 수정 (#159)

* fix: 소수점 추가 후 발생한 '영'읽기 버그 수정

* Create big-cups-call.md

---------

Co-authored-by: 박찬혁 <[email protected]>

* docs: acronymizeHangul 리턴 타입 표기 수정 (#161)

* chore: version packages (#163)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* fix: 일관된 toThrowError 메서드 사용 (#166)

Co-authored-by: kinndohyun <[email protected]>

* chore(eslint): 의도치 않은 naming을 제거하기 위해 cspell 추가 (#164)

* chore(eslint): add cspell to check bad naming

* chore: update

* Create grumpy-singers-love.md

---------

Co-authored-by: 박찬혁 <[email protected]>
Co-authored-by: Dongkyu Kim <[email protected]>
Co-authored-by: Jaemin Kim <[email protected]>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: seunghee <[email protected]>
Co-authored-by: taehyun <[email protected]>
Co-authored-by: SeongMin Kim <[email protected]>
Co-authored-by: Jonghyeon Ko <[email protected]>
Co-authored-by: Jonghyeon Ko <[email protected]>
Co-authored-by: Dongkyu Kim <[email protected]>
Co-authored-by: 김도현 <[email protected]>
Co-authored-by: kinndohyun <[email protected]>
Co-authored-by: Song Hyo Jin <[email protected]>
Co-authored-by: wnhlee <[email protected]>
okinawaa added a commit that referenced this pull request Jul 13, 2024
* fix. 겹모음과 관련된 이상 현상들 수정

* fix. fix index

* fix. 오타 수정

Co-authored-by: 박찬혁 <[email protected]>

* fix. 오타 수정

Co-authored-by: 박찬혁 <[email protected]>

* fix. 업데이트 로직 반영

* test: internal 테스트 코드를 작성합니다 (#137)

* test: internal 테스트 코드를 작성합니다

* test: vitest에서 제공해주는 toThrowError로 변경

---------

Co-authored-by: 박찬혁 <[email protected]>

* docs: josa에 관련된 문서에 잘못된 부분을 수정합니다

- '이에/에' 삭제

Co-authored-by: 박찬혁 <[email protected]>

* chore: version packages (#143)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* feat: 한글 문자열에 대한 검증, assert, parsing 함수를 구현합니다. (#136)

* feat: 한글 문자열인지 boolean 반환 함수

* feat: 한글 문자열인지 assert 함수

* feat: stringify

* test: isHangulString, assertHangulString 테스트 코드

* feat: parse 함수

* test: parse 함수 테스트

* refactor: naming 통일

* feat : 문장의 각 단어 중 첫 문자만 뽑는 함수추가 ( #128 이슈에 대한 ) (#133)

* feat : 문장의 각 단어 중 첫 문자만 뽑는 함수추가

* test 및 함수 추가

* add : 한글 문장인지 여부 판별 함수 추가

* fix : 한글 문장인지 여부 판별 기저 및 오류 추가 / arg 이름 변경

test 추가

* fix: src/_internal/hangul.ts

Co-authored-by: 박찬혁 <[email protected]>

* fix : rename function

getFirstHangulLetters -> getHangulAcronym

* fix : rename function

export function isHangulOnly로 변경

* fix : lint error

* fix : index에 추가

* chore : doc 추가

* fix : 문서화 한글 영어 바뀐거 바로 변경

* fix : isHangul로 대체 #136 으로

* chore : doc수정

* Update docs/src/pages/docs/api/getHangulAcronym.en.mdx

Co-authored-by: 박찬혁 <[email protected]>

* fix : Update hangul.ts

안쓰는 메소드 삭제

* Update getHangulAcronym.ko.mdx

* Update getHangulAcronym.en.mdx

* Update src/getHangulAcronym.ts

Co-authored-by: 박찬혁 <[email protected]>

* Update src/getHangulAcronym.ts

Co-authored-by: 박찬혁 <[email protected]>

* Update getHangulAcronym.ts

* Update getHangulAcronym.spec.ts

* Create fair-brooms-drive.md

---------

Co-authored-by: 박찬혁 <[email protected]>

* chore: version packages (#145)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* feat: 문자열에서 한글만 반환하는 extractHangul을 구현합니다. (#130)

* feat: parseHangul

* fix: parseHangul의 이름을 extractHangul로 수정 및 테스트 코드 보완

* test: 일관된 테스트 코드 작성이 될 수 있도록 describe 설명 수정

* test: 테스트 코드 수정

* docs: extractHangul의 문서 작성

* test: 테스트 문구 수정

* fix: index.ts에 export 추가

* Create fresh-students-sit.md

---------

Co-authored-by: 박찬혁 <[email protected]>

* chore: version packages (#146)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* fix : getHangulacronym함수를 acronymizeHangul 메서드로 대체합니다. (#148)

* Update and rename getHangulAcronym.ts to acronymizeHangul.ts

* Update and rename getHangulAcronym.spec.ts to acronymizeHangul.spec.ts

* Update index.ts

* Update and rename getHangulAcronym.en.mdx to acronymizeHangul.en.mdx

* Update and rename getHangulAcronym.ko.mdx to acronymizeHangul.ko.mdx

* Create odd-squids-sin.md

---------

Co-authored-by: 박찬혁 <[email protected]>

* chore: version packages (#150)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* fix: amountToHangul이 소수점, 숫자도 대응할 수 있도록 수정 (#144)

* fix: amountToHangul이 소수점, 숫자도 대응할 수 있도록 수정

* docs: amountToHangul의 영어 문서 작성

* Create famous-cheetahs-sneeze.md

* Update famous-cheetahs-sneeze.md

---------

Co-authored-by: 박찬혁 <[email protected]>

* fix: packlint ESLint error (#149)

* test: utils 기능들의 테스트 케이스를 개선합니다 (#151)

* test: hasBatchim 함수의 테스트 케이스를 추가합니다

* test: hasSingleBatchim의 테스트 케이스를 추가합니다

* fix: nextra theme asset 개선 (#152)

* chore: version packages (#153)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* fix: 패키지가 노출하는 인터페이스를 명확히 하기 위해 index.ts를 named export로 수정합니다 (#157)

* fix: exposing public apis strictly

* Create wild-cows-juggle.md

* chore: version packages (#160)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* docs: CONTRIBUTING.md 파일에 메서드 컨벤션을 작성합니다. (#132)

* Update CONTRIBUTING.md

* fix

* write contribution.md

Co-authored-by: Jonghyeon Ko <[email protected]>
Co-authored-by: Dongkyu Kim <[email protected]>

* Update .github/CONTRIBUTING.md

Co-authored-by: Jonghyeon Ko <[email protected]>

* Update .github/CONTRIBUTING.md

Co-authored-by: Jonghyeon Ko <[email protected]>

* Update .github/CONTRIBUTING.md

Co-authored-by: Jonghyeon Ko <[email protected]>

---------

Co-authored-by: Jonghyeon Ko <[email protected]>
Co-authored-by: Dongkyu Kim <[email protected]>
Co-authored-by: Jonghyeon Ko <[email protected]>

* test: amountToHangul 테스트 추가 (#135)

* test: amountToHangul 테스트 추가

* test: amountToHangul 테스트 코드 수정

* test: amountToHangul 테스트 코드 스타일 변경

* test: amountToHangul test 개선

* fix: assert.throws대신 vitest toThrow로 메서드 변경

* fix: vitest toThrowError 메서드로 변경

---------

Co-authored-by: kinndohyun <[email protected]>
Co-authored-by: 박찬혁 <[email protected]>

* fix: 소수점 추가 후 발생한 '영'읽기 버그 수정 (#159)

* fix: 소수점 추가 후 발생한 '영'읽기 버그 수정

* Create big-cups-call.md

---------

Co-authored-by: 박찬혁 <[email protected]>

* docs: acronymizeHangul 리턴 타입 표기 수정 (#161)

* chore: version packages (#163)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* fix: 일관된 toThrowError 메서드 사용 (#166)

Co-authored-by: kinndohyun <[email protected]>

* chore(eslint): 의도치 않은 naming을 제거하기 위해 cspell 추가 (#164)

* chore(eslint): add cspell to check bad naming

* chore: update

* Create grumpy-singers-love.md

---------

Co-authored-by: 박찬혁 <[email protected]>
Co-authored-by: Dongkyu Kim <[email protected]>
Co-authored-by: Jaemin Kim <[email protected]>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: seunghee <[email protected]>
Co-authored-by: taehyun <[email protected]>
Co-authored-by: SeongMin Kim <[email protected]>
Co-authored-by: Jonghyeon Ko <[email protected]>
Co-authored-by: Jonghyeon Ko <[email protected]>
Co-authored-by: Dongkyu Kim <[email protected]>
Co-authored-by: 김도현 <[email protected]>
Co-authored-by: kinndohyun <[email protected]>
Co-authored-by: Song Hyo Jin <[email protected]>
Co-authored-by: wnhlee <[email protected]>
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