안녕하세요. 첫 글이네요. :)
우선 3줄 요약 및 간단한 소개 및 Background 를 간략하게 설명하고 들어가겠습니다.
3줄요약
유료프로그램에 라이센스키를 구축해야 해서 GPT에 자문 → 복잡함을 느꼈지만 극복하고 단순한 방법 + 무료로 구축 가능한 방법(구글드라이브, 기타 등)으로 발전 —> 라이센스 키 구축. —> 다만 보안에 대한 우려 존재. (다음 글에 이어서…)
저는 비개발자이거 다룰 수 있는 프로그램은 파이썬입니다. 이번에 와이프를 돕기위해 프로그램을 몇개 만들었는데 그러면서 만든 프로그램을 조금 더 다듬어서 유료화 하기로 결정했습니다. 유료화를 하려면 해당 프로그램에 유료 USER들만 접근 가능하도록 하는 구조가 필요했고, 라이센스KEY (유저 Key)를 도입하기로 결정하고 구축방법을 GPT와 함께 해나가는 과정입니다.
1. 라이센스키를 설정하는 구조 상담
내용적으로 쉽지 않았으나, 과정을 거쳐서 조금 심플한 코드와 과정을 얻어냅니다.
이때는 구체적으로 어려운 부분을 물어보면서 step by step (명령어를 쓰진 않았지만 그 접근법이) 으로 계획을 구체화해나갔습니다.
그런데, 이걸 구축하려면 1) Data base 구축이 가능해야 하고, 2) 외부서버나 제 컴퓨터를 서버로 사용해야 하는데 이 경우에는 유료서비스를 사용하거나, 혹은 제 컴퓨터를 서버로 희생해야 하는 어려움이 있었습니다. 고민에 고민을 거듭하다, 1번과 2번을 모두 충족하는 무료방법을 생각해내고 아래처럼 접근해봅니다.
옳다구나! 무료로 구 글드라이브 시트를 Data base 이자 License key를 체크하는 서버로 쓰면 되겠다 싶어 chat GPT의 도움을 통해 (위의 코드에서 더 개발된 방식으로) 라이센스 시스템을 구축해 나가게 됩니다.
이렇게 단순한 시트로 제가 원하는 유료고객에 대한 License Key 설정을 마무리지었습니다. 끗!….이라고 생각했지요.
여기까지는 순조로(그 과정은 개인적으로 순조롭지 않았습니다만…)… 웠다는 생각도 잠시, 해당 프로그램으로 개발을 끝내고 Trial 을 해보다가 보안의 지대한 헛점이 있다는 것을 알게 되죠.
구글 Drive API를 접근하려면 Json 으로 구성이 된 API KEY (Credentials)을 이용하는데, 해당 파일이 프로그램 구성에 들어가야 한다는 겁니다. 그러면 이 파일의 본색을 아는 자는 언제든 제 API/Database로 접근이 가능한 보안적 리스크가 있는거죠.
그럼 그 보안적 헛점을 보완하기 위해 무엇을 했을지… 해당 글은 추가로 (2)번 글로 작성하도록 하겠습니다. 첫번째 글에서 ChatGPT 힘을 빌어 무료로 라이센스시스템을 구축했다는 것으로도 충분히 의미가 있다고 생각합니다. ;)