오타 검사기를 만들었더니, 검사기가 먼저 틀렸습니다
안녕하세요, 가야태자 @talkit 입니다.
요전에 도메인을 산 이야기를 썼습니다. 오늘은 오타 이야기입니다.
제가 오타 검사기를 만드는 이유는 제 별명이 오타태자이기 때문입니다. ㅋㅋㅋ
가야태자가 오타태자입니다.
블로그 글은 초안을 제가 쓰고 에이아이가 다듬습니다. 그런데 다듬을 때마다 에이아이가 제 오타를 찾아냅니다. ㅠ.ㅠ
그러더니 오타 검사기를 ㅋㅋㅋ 만들더군요.
그런데 이 오타 검사기가 맞춤법 검사기는 아닙니다.
맞춤법 검사기 만들고 싶다. ㅠ.ㅠ
그래서 최근에 제가 오타를 두 개 내보냈습니다.
재밌는 건 이 둘이 제 손에서 나온 게 아니라는 것입니다. 에이아이가 다듬은 문장에 있었고, 제 이름으로 나갔습니다.
그 이야기를 해 보겠습니다.
이 둘입니다
원고에 이렇게 적혀 있었습니다.
sonar.qualitategate.wait → 맞는 것은 sonar.qualitygate.wait
"이번 주 term 380건" → term 이 왜 여기 있나
첫째는 설정 키를 한 글자 틀린 것입니다. 원래는 qualitygate 인데 qualitategate 라고 썼습니다.
둘째는 더 황당합니다. term 이 왜 여기 있는지 저도 모릅니다. 문장은 이랬습니다.
지난주 이슈 412건 → 이번 주
term380건
편집하다가 어딘가에서 낱말 하나가 끼어 들어간 것이죠.
눈으로는 안 걸립니다
이게 무서운 대목입니다. 다시 읽어도 안 보입니다.
qualitategate 를 보십시오. 그럴듯하게 생겼습니다. 영어 낱말이 두 개 붙어 있고 점으로 이어져 있고, 소나큐브 설정처럼 보입니다. 실제로 저는 그 문장을 세 번은 다시 읽었습니다.
term 도 그렇습니다. 한글 문장 사이에 영어 낱말이 하나 있는데, 원고에는 영어가 원래 많습니다. 그 줄만 따로 보면 이상한데 문단으로 읽으면 미끄러집니다.
그런데 이게 그냥 오타로 끝나지 않습니다.
설정 키는 한 글자만 틀리면, 읽는 분이 복사해서 붙였을 때 안 돕니다.
블로그에 명령어를 적을 때 이게 제일 무섭습니다. 그대로 따라 하는 분이 있으니까요.
그래서 검사기를 만들었습니다
파이썬으로 짧게 짰습니다. 네 가지를 봅니다.
| 무엇을 | |
|---|---|
| ① | 용어 표에 적어 둔 틀린 표기 |
| ② | 한글 사이에 낀 낯선 영어 낱말 |
| ③ | 낱말 반복 — 그리고 그리고 |
| ④ | 주소 안에 괄호가 들어가서 깨진 링크 |
제가 낸 오타 둘이 서로 다른 규칙에 걸립니다. qualitategate 는 ①번, term 은 ②번이요.
①번은 코드 블록까지 다 봅니다. 설정 키 오타는 거기 있으니까요. 반대로 ②③은 코드 블록을 보면 안 됩니다. 코드에는 영어가 당연히 많으니까요.
이 구분을 하는 데 시간을 좀 썼습니다.
처음 돌렸더니 검사기가 틀렸습니다
여기가 오늘의 진짜 이야기입니다.
돌려 보니 잔뜩 나왔습니다. 그런데 하나씩 열어 보니 대부분 제 잘못이 아니었습니다.
하나 — This is 가 오타로 잡혔습니다.
영어로 쓴 글에서 is is 라는 반복이 스무 건 넘게 나왔습니다. 그런데 원고에 is is 가 있을 리가 없죠.
This is
Th|is is|
This 의 뒷부분과 다음 is 를 붙여서 읽은 것이었습니다. 낱말 경계를 안 걸어 놨더니요.
둘 — Welcome 을 오타라고 했습니다.
제가 용어 표에 "Welcom 은 틀린 표기" 라고 적었습니다. 그런데 Welcom 은 Welcome 안에 들어 있습니다. 그래서 올바르게 쓴 것까지 잡았습니다.
셋 — 남의 주소를 고치라고 했습니다.
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 Actions | GitHub Actions |
첫째가 특히 아팠습니다. 소제목인데 e 가 빠져 있었습니다. 그리고 같은 글 다른 줄에는 제대로 적혀 있었고요. 한 군데만 틀린 것이라 눈으로는 절대 못 찾습니다.
셋째는 H 가 소문자였습니다.
원고는 다 고쳤습니다. 그런데 여기서 한 가지를 배웠습니다.
예약해 둔 글은 원고를 고쳐도 안 바뀝니다.
이미 블로그에 들어가 있으니까요. 관리자 화면에서 직접 고쳐야 합니다. 원고와 발행된 글이 따로 산다는 것을 이번에 실감했습니다.
안 만든 기능도 있습니다
서두에 적은 그것입니다. 한글 맞춤법 검사는 안 넣었습니다.
이유가 둘입니다.
하나, 쓸 만한 것이 대개 외부 서비스에 의존합니다. 그리고 그건 어느 날 조용히 죽습니다.
둘, 그건 제 도구가 할 일이 아니라고 봤습니다.
규칙이 잡는 것 Zookeepr (→ ZooKeeper), qualitategate, term
사람이 잡는 것 "이 문장이 좀 어색하다"
둘이 잡는 게 다릅니다.
term 같은 건 규칙이 확실하게 잡습니다. 사람은 미끄러지고요. 반대로 "문장이 길어서 읽기 힘들다" 는 규칙이 못 잡습니다.
그래서 하나로 하려고 하지 않았습니다. 잘 잡는 것만 잡게 뒀습니다.
정리하면
- 눈으로 다시 읽는 것으로는 안 됩니다. 틀린 것도 그럴듯하게 생겼습니다
- 특히 명령어와 설정 이름은 한 글자가 치명적입니다
- 검사기를 만들면 검사기가 먼저 틀립니다. 저는 네 번 고쳤습니다
- 잡히는 게 너무 많으면 재는 쪽을 보십시오
- 기준선을 깔아야 씁니다. 그리고 오타를 허용에 넣으면 영원히 안 걸립니다
- 예약해 둔 글은 원고를 고쳐도 안 바뀝니다
오늘 얻은 게 오타 셋을 잡은 것보다도, "내가 못 보는 종류의 오류가 있다" 는 걸 확인한 것이라고 생각합니다.
열여덟 해를 쓰면서 제목의 오타를 못 봤습니다. 앞으로도 못 볼 겁니다. 그건 사람이 잘 못하는 일이고요.
대신 이제 그걸 봐 주는 게 하나 있습니다.
읽어 주셔서 감사합니다.
흠... 모델이 좀 후진거 아닌지도 의심되네요.
요즘 모델은 별로 이러진 않을거 같은데요...
0.00 SBD,
7.88 STEEM,
7.88 SP
[booming-kr-auto]
보팅 완료했습니다 🙌
클로드 오푸스5 사용하고 있습니다. ^^
클로드에서는 일단 최신 모델입니다.
챗지피티는 요즘 사용하지 않고 있고요.
제미나이는 개발쪽으로는 제가 사용해보면 조금 바보인 것 같습니다.
그래서 클로드가 좀 더 나아 보입니다.
창과 방패인가요?
0.00 SBD,
1.53 STEEM,
1.53 SP
[booming-kr-auto]
보팅 완료했습니다 🙌
음 맞춤법 검사기가 필요할 것 같습니다
그리고 용어사전도 계속 글을 쓰면서, 저기 프로젝트와 함께 발전 시켜 가야 할 것 같습니다. ^^
넵, 창과 방패가 맞습니다.
일단 오타가 창이면 그 오타를 찾아서 돌리는게 방패겠네요
제가 워낙 다양한 오타를 내고 있어서 ㅎㅎㅎ
오타를 잡는 건... 역시 사람이나 ai에게나 쉽지 않은 일이인 것 같군요~
화이팅~입니다! ^^
0.00 SBD,
1.18 STEEM,
1.18 SP
[booming-kr-auto]
보팅 완료했습니다 🙌
넵 흑흑흑 제 별명이 오타태자라 ㅋㅋㅋ
Upvoted! Thank you for supporting witness @jswit.