F.R.I.D.A.Y.

[개발일기] XdobeFix에 넣을 프리셋 한/영 전환 본문

DEV/.Net

[개발일기] XdobeFix에 넣을 프리셋 한/영 전환

F.R.I.D.A.Y. 2019. 3. 1. 11:13
반응형

 https://pang2h.tistory.com/137?category=703003


 현재 만들어서 배포중인 프로그램인데, 기존 GUI 프로그램으로 전환하면서 사실 한글 이름으로 된 프리셋 파일명을 수정하는 기능 외에 하나를 더 추가하려고 했다. 그게 바로 프리셋 이름의 한글/영어 이름을 상호 전환하는 것. 사실 6개월마다 업데이트를 진행하려고 했는데, 올해는 일들이 많을 예정이라서 미리서 업데이트를 진행하려고 했다.


이런 삶은 바라지 않아요... (원출처 아시는 분 계신가요?)


 그래서 일단 한글/영어 이름 매칭 데이터를 어떻게 얻어낼것인가 생각했다. 수백 개 짜리를 수작업으로 매칭시키는 것은 굉장히 비효율적이므로 무식하게 체크하기보다, 내부 데이터를 검사하자고 생각했다. 파일 이름이 달라도 내부 데이터에는 영향을 주지 않는다는 이유다.

 결국 여차저차 시행착오를 거쳐 매칭 데이터는 만들었다.


 그런데 두번째 문제가 발생했다. 일단 매칭 데이터를 구했으니 내 컴퓨터에서 프리셋 이름을 수정하는것 자체는 쉬울테지만, 다른 사람들 컴퓨터에서는 프리셋 이름이 어떻게 저장되어있는지 확인할 방법이 없다. 경우의 수도 너무 많다. 그래서 프리셋 파일 자체를 프로그램에 넣어서 바이트 비교를 해버릴까? 생각도 했으나 크게 다음의 이유로 포기했다.


 1. TISTORY의 파일 첨부는 최대 10MB까지다.

 2. 저작권 문제


 첫번째 문제는 다른 드라이브를 운영하면 되겠지만, 관리하는 입장에서 여러군데로 나누어놓는것은 귀찮고 번거롭기 때문이다.

 두번째 문제는 프리셋 파일 자체를 집어넣는것이기 때문에 혹시모를 저작권문제를 일으킬 수 있어서 포기했다.


 그래서 페이스북에 질문을 하려고 진짜 아래 사진까지 작성했을 때 훅 하고 한 아이디어가 떠올랐다.


페이스북 그룹 [생활코딩]


 인터넷 상에서 파일을 내려받으면 파일이 잘 보내졌는지 무결성 체크를 위해 CRC 검사를 하라고 해시 값을 공개한다. 광케이블을 사용하는 요즘 우리나라의 네트워크 환경은 과거 구리선을 사용할 때와 달리 주변 환경으로 인한 잡음이 발생할 확률이 극에 가까워서 굳이 CRC를 체크하지 않고 또 제대로 전송되지 않아서 재전송하더라도 많은 시간이 들지 않기 때문에 하지 않는게 대부분이지만 아직도 CRC 체크를 위한 문자열을 제공하고 있는 경우도 있다.



JetBrains 사의 DotPeek 다운로드 화면. SHA256으로 체크섬을 지원한다.[각주:1]


 즉, 파일의 실제 데이터를 검사하는게 아니라 해시함수로 파일을 비교하자! 인것이다. 그렇게 생각이 미치고, 바로 돌입하여 만들었다.


체크섬 데이터 txt파일. 크래시 없이 잘 만들어졌다.


 이제 데이터는 다 만들어졌으니, 이 데이터를 기반으로 프로그램만 만들면 되겠다 ㅎ


++

 공교롭게도 내가 만든 프리셋 파일의 체크섬도 SHA256을 이용했다.


 이렇게 만들어진 데이터를 기반으로 만든 프로그램 XdobeFixSwitch

  1. 체크섬 지원하는 곳을 찾다가 갑자기 닷넷으로 만든 프로그램 뜯어볼게 있어서 미리 다운받자 했는데 얼결에 지원하고 있었다. [본문으로]
728x90
반응형
Comments