IT/[개발]코인자동매매

3. 업비트 Secret Key/Access Key 분리하는법(Mac 환경변수 추가 bash_profile)

haemni 2022. 2. 19. 20:21
728x90
반응형
SMALL

안녕하세요~

이번에는 업비트API에 접근하기 위한 Secret Key/Access Key 를 분리보관하는 방법에 대해 적어보겠습니다.

Secret Key 와 Access Key가 공개되면 , 누구든지 업비트 API에 접근하여 제 계좌정보 등을 알 수 있기때문에 보안에 유의해야 하는데요,

이를 위한 방법으로는 두 가지 가 있습니다.

◆  JSON, XML 등의 파일에 Key를 저장해두고 파싱하여 사용하는 방법

◆ os 환경변수에 저장해둔 후, 호출하여 사용

저는 개인적으로 두 번째 방법을 선호하여, 해당 방법으로 구현했습니다.

첫번째 방법은, 제 로컬 코드 전체가 실수로 공유되었을 때 제 key전체가 공개될 수도 있고.. 

혹시라도 제가 git 에 배포할때 ignore 없이 다 올려버릴수도 있기때문입니다..

 

저는 MAC OS를 사용하기에 , mac OS 기준으로 설명드리겠습니다.

 

우선 터미널을 켜서, 루트 디렉토리로 이동한 뒤, ~/.bash_profile 명령어 사용하여 파일 열어줍니다. 

bash_profile 은 시스템이 로드될 떄마다  구동되는 쉘로, 필요한 변수들을 저장해두면 용이합니다.

 

해당 파일을 vi editor 로 연 뒤 

 

i 를 누르고 export 변수명 = "비밀번호"  작성 후 esc+:wq! 작성 후 빠져나옵니다.

export UPBIT_OPEN_API_ACCESS_KEY="발급받은 secret code"

 

wq 는 vi editor 를 빠져나올 떄 저장하고 나오겠다는 명령어입니다.

그냥 q로 빠져나오게 되면 저장하지 않고 나오겠다는 뜻이 됩니다.

 

해당 변경사항을 적용해주기 위해 , 

source ~/.bash_profile  명령어를 입력합니다.

해당 명령어가 error 없이 잘 수행되었다면

 

echo $UPBIT_OPEN_API_ACCESS_KEY

명령어를 입력해봅니다.

변수값이 제대로 출력된다면 , 환경변수가 제대로 저장된 것입니다.

 

아직 끝이아닙니다!

 

bash_profile은 로그인 시 구동되는 쉘이고, 터미널이 시작될때는 zsh쉘이 구동되므로,

터미널이 재구동 될 때마다 bash_profile에 적용된 내용이 날라갑니다.

 

따라서 zsh쉘에도 if 문을 작성하여 bash_profile 내용이 적용되도록 해주어야합니다.

 

vi ~/.zshrc 명령어를 입력 후 

 

if [ -f ~/.bash_profile ]; then

  . ~/.bash_profile

fi

~   

 

해당내용을 붙여넣고 마찬가지로 esc + :wq! 로 나오면 끝입니다. 

 

 

이후에 소스에는 secret key나 access key를 입력하지않아도 

 

os.environ 을 이용하여 환경변수를 가져와서 사용하면 됩니다.

 

(해당 소스는 upbit 개발자 사이트의 잔액정보 가져오기 api입니다)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

반응형
LIST