google sheet api를 아주 잘 사용하고 있다. 문제는 api key를 그냥 json 하드코딩으로 하는데, 크롬에서 f12를 눌러보니, api key 소스가 아주 투명하게 공개가 된다.
구글링을 해보니, 역시... 이런 보안 관련 사항을 챙겨야하는지에 대해 나만 모르고 있다.
무슨 프로그램 언어인지 모르겠지만, api key를 감추는 여러 방법을 구글에서 어렵지 않게 찾을 수 있었다. 하지만 flutter에 바로 긁어다가 쓸 수 있는 방법이 나온 글을 찾다가 귀찮아서 못찾았다.
아무거나 보고 따라해 볼 수 밖에 없다. 그나마 만만한 방법을 찾은 건 .env 파일을 사용하는 방법이었다. 보안적으로 얼마나 나은지는 알 방법이 없다. 일단 flutter에 .env 관련한 패키지가 있다. dot_env 패키지를 설치해주고 테스트를 해보려고 하니..
단일 value는 불러오겠는데, json을 통째로 불러오기가 참 애매했다. 해결책이 제시된 여러 글이 있지만, 짧은 실력으로 혼란만 가중된다.
그냥 단일 값들을 호출해서 map으로 만든 다음, json 파일로 encode하는게 나을 것 같다는 생각이 들었다.
[.dart 파일]
단일 값들을 map으로 차근히 정리해본다. 그런데 역시 또 하나의 추가적인 문제에 직면하는데는 오래 걸리지 않았다. google api key 중에 \n으로 줄바꿈을 해줘야하는 private_key 항목이 있다.
뭘 해줘야 줄바꿈을 인식시킬까...다시 구글창을 켤 수 밖에 없었고, 정말... 한참 찾았다.
허무하게도 해결책은 간단했다.
쌍따옴표(" ")로 묶어주면 줄바꿈(\n)이 인식된다. .env 파일에 대한 이해도가 떨어지다보니.. 예상된 참사다.
그래도 이제는 js파일에서 내 api key 정보는 사라지게 됐다.
[.env 파일]
일단 되니까 끝.