Skip to content

Conversation

@youknowone
Copy link
Contributor

외에도 \t\n 으로도 단어를 자릅니다

@changeset-bot
Copy link

changeset-bot bot commented Jun 12, 2025

⚠️ No Changeset found

Latest commit: a9f469c

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

@youknowone
Copy link
Contributor Author

\n으로는 자르면 안되는군요

@youknowone youknowone closed this Jun 12, 2025
@owjs3901
Copy link
Contributor

맞습니다, 이전에 잘랐다가.. ㅎㅎ 다시 원복되었습니다

@youknowone
Copy link
Contributor Author

Skip count가 스페이스로는 초기화되지만 리턴으로는 초기화가 안될텐데 의도하신걸까 싶네요

@owjs3901
Copy link
Contributor

아마 new line 의 경우 이후에 추가되어서 예외처리가 안되어 있는 것일 겁니다 (실제로 배포 직전에 급히 255번에 new line 을 추가했습니다 ㅠㅠ) 관련해서 테스트 코드를 작성해서 개선해보겠습니다
해당건은 좀 급해보이네요

@youknowone
Copy link
Contributor Author

skip count 같은것을 잘 처리하려면 split() 을 안쓰는게 더 좋을 수도 있습니다.

지금 split된 정보가 필요한건 뒤에 두 단어를 더 내다보기 위한건데, 이걸 split해서 하지 말고 처리할 방법이 두가지 있습니다.

방법1: 입력 미리 내다보기 버퍼를 추가합니다. 단어를 미리 봐야할 상황이 되면 필요한 정보만 찾는 미리 내다보기 버퍼로 다음 단어 2개까지의 정보를 얻어와서 처리합니다. 말이 버퍼이지 지금은 단어 두개만 내다보면 되기 때문에, 다음 단어가 영어인지 아닌지만 보는 변수 두개와 어디까지 읽었는지 저장하는 커서 하나만 있어도 됩니다. 다음 단어가 필요해지면 미리보기 커서가 현재 커서보다 앞인지 뒤인지를 판정해서 새 정보를 가져오면 됩니다.
이 방법의 장점은 기존 코드와 흐름이 거의 같다는 것입니다. 단점은 기존 코드가 인풋 스트림이 쪼개진 것을 거의 고려하지 않고 있어서 쪼개져서 들어오는 다음 스트림을 처리하려면 입력 버퍼 추상화가 필요하고 미리 보기 버퍼 관련 작업이 조금 복잡해질수 있습니다. 입력이 최대 3단어 지연됩니다.

방법2: 출력 버퍼를 추가합니다. 잠재적으로 앞부분에 출력을 추가해야할 수 있는 (trible english) 경우가 보이면, 바로 result에 출력하는 대신 그 자리부터는 바로 출력하지 않고 내부의 출력 버퍼에 출력합니다. 더 변환을 진행하면서 앞부분에 출력을 추가해야하는 것으로 판정되면 추가출력을 출력하고 출력버퍼도 출력합니다. 앞부분에 출력을 추가하는게 불필요한 것으로 판정되면 그대로 출력버퍼만 출력합니다.
이 방법의 장점은 입력은 건드리지 않고 출력은 비교적 단순하기 때문에 코드가 더 쉬워진다는 것입니다. 이렇게 구현하면 입력은 언제나 즉시 처리되고 출력이 최대 3단어 지연됩니다.

@owjs3901
Copy link
Contributor

현재를 유보하고 이후에 추가할 것인지, 미래를 내다보고 현재를 결정할 것인지의 차이인것 으로 이해했습니다
코드의 복잡성을 제외하고 생각해 봤을 때 AI 같은 것과 같이 실시간으로 큰 코스트가 드는 것이 아니므로 벤치를 돌리고 성능 비교를 통하여 결정을 해야할 것 같은데 어떻게 생각하시나요?
관련하여 성능 이슈나 측정을 해본 경험이 없어서 질의드립니다

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.

2 participants