콘텐츠로 건너뛰기

알라딘 중고책 작업 (5) superset

알라딘 중고책 작업 (5) superset

알라딘 API를 사용해 프로젝트를 진행하는데 CORS 에러가 생겼습니다. 개발 할 당시에는 CORS 확대 프로그램을 사용하여서 문제가 안생겼는데 배포를 하려니 꽤나 거슬려서 어떻게하면 해결할 수 있는지 찾아봤음. 직접 API를 호출하면 제약이 발생하고, EXPRESS 서버를 도입하여 백엔드 서버를 거친 후 요청응답이 이루어지도록 했다. CORS 미들웨어 첫째 테스트로 만든 곳에서 동작하는것은 확인했습니다.


슈퍼셋 사용하기
슈퍼셋 사용하기

슈퍼셋 사용하기

처음에 슈퍼셋을 사용하는데 조금 애를 먹었었다. 사실 제대로 무엇을 시각화하고자 하는지 정하지도 않았고, 사용할 수 있는 그래픽 툴들도 굉장히 다양해서 어떠한 방안으로 대시보드를 구성해야 할 지 감이 안왔었다.

여기서 슈퍼셋 차트 만드는 법에 대하여 하나하나 설명하지는 않을 것입니다. 대신 자기가 처음 접근하였던 과정을 통해 조금이나마 초보자에게 방법을 제시해보려 합니다.

전자책은 대여구매만 가능
전자책은 대여구매만 가능

전자책은 대여구매만 가능

알라딘은 2021년 말을 기준으로 아직 전자책 무제한 정기구독 시스템이 없습니다. 무제한 전자책을 서비스 하지 않는 고유한 인터넷서점 같은데요. 다른 플랫폼이 먼저든 후발이든 이 시장에 뛰어든 것과 다른 행보입니다. 특히 크레마 기기를 같이 내세우는 등 제 인식 상 한 쌍으로 엮인 예스24와 왜 다른 길을 걷는지가 궁금하죠. 예스24는 2018년 말부터 북클럽을 시작했습니다. 저는 밀리의 서재를 예로 들며 전자책 무제한을 권장하고, 교보문고를 예로 들 때는 교보문고 sam2처럼 한정된 권수의 전자책 서비스를 권장합니다.

두 가지 모두 혜택이 있는 플랜이기 때문이죠. 알라딘이 아직이든 추후에도 전자책 정기구독 시장에 뛰어들지 않는 건 나름의 생각이 있어서 일 듯합니다. 어떤 것이든 결과로 평가받게 되겠죠. 첫째 알라딘에서는 현재 전자책을 렌트 아니면 구매 형식으로 이용하실 수 있습니다.

슈퍼셋 접속
슈퍼셋 접속

슈퍼셋 접속

인바운드 규칙을 추가했다면 이제 슈퍼셋에 접속을 해보자 ec2에서 접속하려면 원래 쳐야하는 명령에 호스트 IP를 추가한 명령어를 쳐야합니다. superset run h 0.0.0.0 p 8088 withthreads reload debugger여기서 h 0.0.0.0의 의미가 어떠한 것인지 궁금하여 조금 찾아보았습니다. 슈퍼셋은 flask 기반으로 웹 UI가 제공되는데 flask와 연관된 인자였다. 이와 관련해선 아래의 링크가 잘 나와있으니 참고하면 될 거 같다간결하게 정리해보시면 호스트 매개 변수h는 개발 서버가 수신할 주소를 제어하는 것으로, 디폴트로 localhost를 가리키고 있고, 0.0.0.0을 입력하면 모든 IP 주소에서 동작할 있습니다.

하여튼 위의 명령어를 입력하고 URL창에 httpec2 퍼블릭 IPv4 주소8088을 치면 정상적으로 슈퍼셋에 접속할 수 있는 것을 볼 있습니다.

sql은 처음에 postgresql을 다운받을 때 같이 다운받은 SQL Shellpsql을 이용할 수도 있고, 따로 커맨트 창에서 이용할 수도 있습니다. 나는 Git Bash를 이용하여 psql을 이용하였습니다. 참조하여 처음에 bash psql command not found 과 같은 에러가 뜰 수도 있는데자기가 그랬다. 이는 환경변수에 psql이 등록되어 있지 않아서 그런 것이니 아래와 같이 꼭 postgresql 환경변수를 등록하자 그러면 다음과 같이 정상적으로 psql을 사용할 수 있게 됩니다.

이제 본격적인 psql을 사용해보기에. 앞서 AWS에서 필요한 처리를 하나 해주어야 합니다. RDS를 설립하고 우리는외부와의 통신을 위해 퍼블릭 엑세스를 열어주었다. 여기에 RDS가 가지고 있는 보안그룹에서 외부와의 연결을 위한 포트를 열어주어야 합니다.

Crontab 사용

로컬에서 이 모든 생태계를 구축할 수도 있었지만 EC2를 구축한 가장 큰 이유는 만들었던 코드를 24시간 내내 희망하는 시간에 돌게하고 싶어서입니다. 로컬로 구축하면 PC를 끄면 데이터를 추출해서 적재하는 처리를 할 수 없으니 말입니다. 나는 6시간에 한 번씩 API를 통해 데이터를 적재할 예정인데, 이를 위해서는 Crontab이 필요합니다. Crontab은 희망하는 시간에 하고자 하는 처리를 자동으로 수행해주는 프로그램입니다.

Airflow를 사용하고 싶었지만 이 태스크에서는 오버스펙이라. 나중에는 꼭 사용해봐야지사용방법은 아주아주 간단합니다. 첫째 아래의 명령으로 크론탭을 설치해줍니다. apt-get update apt-get install cron

그리고 crontab -e 명령어를 통해 주기적으로 실행하고자 하는 처리를 지정해주면 됩니다. 나는 작성한 코드를 6시간 간격으로 실행하도록 아래와 같이 작성하였습니다.

자주 묻는 질문

슈퍼셋 사용하기

처음에 슈퍼셋을 사용하는데 조금 애를 먹었었다. 좀 더 구체적인 사항은 본문을 참고해 주세요.

전자책은 대여구매만 가능

알라딘은 2021년 말을 기준으로 아직 전자책 무제한 정기구독 시스템이 없습니다. 궁금한 내용은 본문을 참고하시기 바랍니다.

슈퍼셋 접속

인바운드 규칙을 추가했다면 이제 슈퍼셋에 접속을 해보자 ec2에서 접속하려면 원래 쳐야하는 명령에 호스트 IP를 추가한 명령어를 쳐야합니다. 구체적인 내용은 본문을 참고 해주시기 바랍니다.