오타 검사기를 만들었더니, 검사기가 먼저 틀렸습니다

in #kryesterday

안녕하세요, 가야태자 @talkit 입니다.

요전에 도메인을 산 이야기를 썼습니다. 오늘은 오타 이야기입니다.

제가 오타 검사기를 만드는 이유는 제 별명이 오타태자이기 때문입니다. ㅋㅋㅋ
가야태자가 오타태자입니다.

블로그 글은 초안을 제가 쓰고 에이아이가 다듬습니다. 그런데 다듬을 때마다 에이아이가 제 오타를 찾아냅니다. ㅠ.ㅠ

그러더니 오타 검사기를 ㅋㅋㅋ 만들더군요.

그런데 이 오타 검사기가 맞춤법 검사기는 아닙니다.

맞춤법 검사기 만들고 싶다. ㅠ.ㅠ

그래서 최근에 제가 오타를 두 개 내보냈습니다.

재밌는 건 이 둘이 제 손에서 나온 게 아니라는 것입니다. 에이아이가 다듬은 문장에 있었고, 제 이름으로 나갔습니다.

그 이야기를 해 보겠습니다.


이 둘입니다

원고에 이렇게 적혀 있었습니다.

sonar.qualitategate.wait      →  맞는 것은 sonar.qualitygate.wait
"이번 주 term 380건"           →  term 이 왜 여기 있나

첫째는 설정 키를 한 글자 틀린 것입니다. 원래는 qualitygate 인데 qualitategate 라고 썼습니다.

둘째는 더 황당합니다. term 이 왜 여기 있는지 저도 모릅니다. 문장은 이랬습니다.

지난주 이슈 412건 → 이번 주 term 380건

편집하다가 어딘가에서 낱말 하나가 끼어 들어간 것이죠.


눈으로는 안 걸립니다

이게 무서운 대목입니다. 다시 읽어도 안 보입니다.

qualitategate 를 보십시오. 그럴듯하게 생겼습니다. 영어 낱말이 두 개 붙어 있고 점으로 이어져 있고, 소나큐브 설정처럼 보입니다. 실제로 저는 그 문장을 세 번은 다시 읽었습니다.

term 도 그렇습니다. 한글 문장 사이에 영어 낱말이 하나 있는데, 원고에는 영어가 원래 많습니다. 그 줄만 따로 보면 이상한데 문단으로 읽으면 미끄러집니다.

그런데 이게 그냥 오타로 끝나지 않습니다.

설정 키는 한 글자만 틀리면, 읽는 분이 복사해서 붙였을 때 안 돕니다.

블로그에 명령어를 적을 때 이게 제일 무섭습니다. 그대로 따라 하는 분이 있으니까요.


그래서 검사기를 만들었습니다

파이썬으로 짧게 짰습니다. 네 가지를 봅니다.

무엇을
용어 표에 적어 둔 틀린 표기
한글 사이에 낀 낯선 영어 낱말
낱말 반복 — 그리고 그리고
주소 안에 괄호가 들어가서 깨진 링크

제가 낸 오타 둘이 서로 다른 규칙에 걸립니다. qualitategate 는 ①번, term 은 ②번이요.

①번은 코드 블록까지 다 봅니다. 설정 키 오타는 거기 있으니까요. 반대로 ②③은 코드 블록을 보면 안 됩니다. 코드에는 영어가 당연히 많으니까요.

이 구분을 하는 데 시간을 좀 썼습니다.


처음 돌렸더니 검사기가 틀렸습니다

여기가 오늘의 진짜 이야기입니다.

돌려 보니 잔뜩 나왔습니다. 그런데 하나씩 열어 보니 대부분 제 잘못이 아니었습니다.

하나 — This is 가 오타로 잡혔습니다.

영어로 쓴 글에서 is is 라는 반복이 스무 건 넘게 나왔습니다. 그런데 원고에 is is 가 있을 리가 없죠.

This is
  Th|is is|

This 의 뒷부분과 다음 is 를 붙여서 읽은 것이었습니다. 낱말 경계를 안 걸어 놨더니요.

둘 — Welcome 을 오타라고 했습니다.

제가 용어 표에 "Welcom 은 틀린 표기" 라고 적었습니다. 그런데 WelcomWelcome 안에 들어 있습니다. 그래서 올바르게 쓴 것까지 잡았습니다.

셋 — 남의 주소를 고치라고 했습니다.

github.com/scouter-project/scouter

"제품명은 대문자 Scouter" 라고 적어 뒀더니, 주소 안의 소문자까지 고치라고 했습니다. 주소는 그게 맞는 것인데요.

넷 — 없는 반복을 만들어 냈습니다.

원고에 이렇게 쓴 자리가 있습니다.

util 인지 utils 인지 헷갈립니다

코드 표시 부분을 공백으로 바꿔서 검사하는데, 그러면 이렇게 남습니다.

인지         인지

반복처럼 보입니다. 제가 만든 처리가 만들어 낸 모양이었습니다.


재는 쪽을 네 번 고쳤습니다

이 대목에서 좀 웃었습니다.

며칠 전에 티스토리에 쓸 글을 하나 썼는데, 제목이 「재는 도구가 틀리면 고치는 건 전부 헛수고입니다」 였습니다. 서로 다른 프로젝트 넷에서 측정하는 도구가 먼저 틀려 있던 기록을 모은 글입니다.

그 글을 쓴 다음에, 검사기를 만들면서 또 같은 데 빠졌습니다.

잡힌 것을 보고 원고를 고칠 게 아니라, 검사기를 고쳐야 하는 상황이었습니다. 네 번요.

교훈이 하나 생겼습니다.

잡히는 게 너무 많으면, 재는 쪽을 먼저 보십시오.


조용하게 만드는 데 한 번 더

고치고 나서도 문제가 있었습니다. 낯선 영어 낱말 후보가 602개 나왔습니다.

당연합니다. 원고에 영어가 원래 많으니까요. Security Hotspot, New Code 같은 것들이 다 후보로 잡힙니다.

이래서는 쓸 수가 없습니다. 매번 602개를 확인할 사람은 없습니다.

그래서 기준선을 깔았습니다.

지금 원고에 있는 낱말 601개를 "쓰던 것" 으로 등록
   ↓
앞으로는 새로 들어온 낱말만 물어본다

한 번만 하면 됩니다. 이제 전체 원고 115편에 걸리는 게 0편입니다.

다만 위험한 게 하나 있어서 파일 맨 위에 적어 뒀습니다.

오타를 허용 목록에 넣으면 영원히 안 걸립니다. 넣기 전에 한 번 보십시오.


그러고 나서 진짜가 나왔습니다

여기서 값을 했습니다. 이미 예약해 둔 글에서 셋이 나왔습니다.

이렇게 적혀 있었습니다맞는 표기
9월 16일Zookeepr소제목입니다ZooKeeper
9월 15일Welcom 화면이 그대로Welcome
10월 2일Github ActionsGitHub Actions

첫째가 특히 아팠습니다. 소제목인데 e 가 빠져 있었습니다. 그리고 같은 글 다른 줄에는 제대로 적혀 있었고요. 한 군데만 틀린 것이라 눈으로는 절대 못 찾습니다.

셋째는 H 가 소문자였습니다.

원고는 다 고쳤습니다. 그런데 여기서 한 가지를 배웠습니다.

예약해 둔 글은 원고를 고쳐도 안 바뀝니다.

이미 블로그에 들어가 있으니까요. 관리자 화면에서 직접 고쳐야 합니다. 원고와 발행된 글이 따로 산다는 것을 이번에 실감했습니다.


안 만든 기능도 있습니다

서두에 적은 그것입니다. 한글 맞춤법 검사는 안 넣었습니다.

이유가 둘입니다.

하나, 쓸 만한 것이 대개 외부 서비스에 의존합니다. 그리고 그건 어느 날 조용히 죽습니다.

둘, 그건 제 도구가 할 일이 아니라고 봤습니다.

규칙이 잡는 것    Zookeepr (→ ZooKeeper),  qualitategate,  term
사람이 잡는 것    "이 문장이 좀 어색하다"

둘이 잡는 게 다릅니다.

term 같은 건 규칙이 확실하게 잡습니다. 사람은 미끄러지고요. 반대로 "문장이 길어서 읽기 힘들다" 는 규칙이 못 잡습니다.

그래서 하나로 하려고 하지 않았습니다. 잘 잡는 것만 잡게 뒀습니다.


정리하면

  • 눈으로 다시 읽는 것으로는 안 됩니다. 틀린 것도 그럴듯하게 생겼습니다
  • 특히 명령어와 설정 이름은 한 글자가 치명적입니다
  • 검사기를 만들면 검사기가 먼저 틀립니다. 저는 네 번 고쳤습니다
  • 잡히는 게 너무 많으면 재는 쪽을 보십시오
  • 기준선을 깔아야 씁니다. 그리고 오타를 허용에 넣으면 영원히 안 걸립니다
  • 예약해 둔 글은 원고를 고쳐도 안 바뀝니다

오늘 얻은 게 오타 셋을 잡은 것보다도, "내가 못 보는 종류의 오류가 있다" 는 걸 확인한 것이라고 생각합니다.

열여덟 해를 쓰면서 제목의 오타를 못 봤습니다. 앞으로도 못 볼 겁니다. 그건 사람이 잘 못하는 일이고요.

대신 이제 그걸 봐 주는 게 하나 있습니다.

읽어 주셔서 감사합니다.

Sort:  

흠... 모델이 좀 후진거 아닌지도 의심되네요.
요즘 모델은 별로 이러진 않을거 같은데요...

[booming-kr-auto]
보팅 완료했습니다 🙌

  • 여러분이 작성한 댓글: @talkit/d522h2
  • 여러분이 보팅한 수치: 100.00% / rshares=653,057,103,101
  • @support-kr이 여러분의 댓글에 드리는 보팅: 총 448,063.61SP 중 49.04%
    IMG_9947.jpeg
  • 여러분의 임대와 보팅이 kr 커뮤니티를 활성화 하는데 큰 힘이 됩니다

클로드 오푸스5 사용하고 있습니다. ^^

클로드에서는 일단 최신 모델입니다.

챗지피티는 요즘 사용하지 않고 있고요.

제미나이는 개발쪽으로는 제가 사용해보면 조금 바보인 것 같습니다.

그래서 클로드가 좀 더 나아 보입니다.

창과 방패인가요?

[booming-kr-auto]
보팅 완료했습니다 🙌

  • 여러분이 작성한 댓글: @talkit/d522h2
  • 여러분이 보팅한 수치: 43.00% / rshares=188,898,832,512
  • @support-kr이 여러분의 댓글에 드리는 보팅: 총 448,063.61SP 중 12.09%
    IMG_9947.jpeg
  • 여러분의 임대와 보팅이 kr 커뮤니티를 활성화 하는데 큰 힘이 됩니다

음 맞춤법 검사기가 필요할 것 같습니다
그리고 용어사전도 계속 글을 쓰면서, 저기 프로젝트와 함께 발전 시켜 가야 할 것 같습니다. ^^

넵, 창과 방패가 맞습니다.

일단 오타가 창이면 그 오타를 찾아서 돌리는게 방패겠네요

제가 워낙 다양한 오타를 내고 있어서 ㅎㅎㅎ

오타를 잡는 건... 역시 사람이나 ai에게나 쉽지 않은 일이인 것 같군요~
화이팅~입니다! ^^

[booming-kr-auto]
보팅 완료했습니다 🙌

  • 여러분이 작성한 댓글: @talkit/d522h2
  • 여러분이 보팅한 수치: 30.00% / rshares=208,019,428,282
  • @support-kr이 여러분의 댓글에 드리는 보팅: 총 448,063.61SP 중 11.14%
    IMG_9947.jpeg
  • 여러분의 임대와 보팅이 kr 커뮤니티를 활성화 하는데 큰 힘이 됩니다

넵 흑흑흑 제 별명이 오타태자라 ㅋㅋㅋ

Upvoted! Thank you for supporting witness @jswit.