터칭 데이터
4주차 - 3 [프로젝트] 간단하지만 중요한 것들 본문
이번주 바쁘다는 핑계로 TIL 작성을 너무 소홀히 했다.
이번에 팀원들 덕분에 알게된 기술들 중 간단한 것들만 몇개 뽑아 기록해본다.
dotenv
url1에 남들과는 공유해서는 안되는 APIKEY를 넣어 Open API를 이용하려 한다. 다른 팀원들에게 노출되어서는 안되고 설령 믿을 수 있는 팀원이더라도 Git은 대부분의 repository가 public 상태로 모두에게 공개되기 때문에 이를 하드코딩 방식으로 적어 넣어서는 안된다.
문제는 반드시 협업을 위해 Git을 사용해야 한다는 점인데 이를 어떻게 해결할 수 있을까?
이 때 사용하는 것이 바로 dotenv다.
아주 간단하게 설명하면 .env형식의 파일을 하나 생성해 민감한 정보들을 담고 이를 코드에서 참조해 사용한다. 로컬상에 보관하고 Git과 같은 버전 컨트롤 시스템에 공유되지 않도록 해준다.
APScheduler
영어가 짧지만 그럼에도 가장 라이브러리에 대해 가장 잘 되어있는 설명이라 아래에 첨부한다.
APScheduler (Advanced Python Scheduler) is a Python library that lets you schedule your Python code to be executed later, either just once or periodically. You can use it in a standalone script or in a larger system, like a web application.
In your code, APScheduler is being used to create a BackgroundScheduler, which is a scheduler that runs in the background as a separate thread. This allows your application to continue running while the scheduler periodically executes tasks.
The line @sched.scheduled_job('cron', minute ='*/5',name = 'schedulerName') is using APScheduler's cron-style scheduling to schedule the data_to_db function to be executed every 5 minutes. Cron is a time-based job scheduling system in Unix-like operating systems, and APScheduler's cron-style scheduling uses a similar syntax.
간단히 요약하면 작성한 프로그램의 일부분 혹은 전체를 특정 패턴으로 혹은 특정 시간대에 작동할 수 있도록 도와주는 라이브러리다.
이번 프로젝트의 관건은 크롤링과 Open API로 데이터들 가져오는 것이다.
문제는 대부분의 공공 무료 Open_API가 그렇듯 많은 이들이 좋은 의미로든 나쁜 의미로든 열심히(...) 사용하기 때문에 서버 상태가 좋지않다. 거기에 더해 특정 시간대에 트래픽이 치솟아 서비스에 지장을 주는 것 까지 고려해야 한다.
상단의 데코레이터는 내가 남긴 주석을 팀원분이 체크하시고 추가 해주신 scheduler다. 추가된 코드는 단 한 줄로 간단하고 주어진 attribute도 매우 직관적이라 여러 사람이 협력하는 프로젝트 특성상 긴 설명과 코드체킹 없이 매우 큰 도움이 되었다. 서비스 개선은 말할 것도 없고!
코드 자체의 기능에 더해 협업에서의 태도와 매너 역시 간접적으로 배울 수 있는 유익한 경험이었다.
GitHub Copilot
흔히 코딩에 특화된 ChatGPT로 알려진 Copilot을 이번 프로젝트에서 활용해봤다.
결과는 다른 모든 개발자들이 얘기하듯 대만족이다. 특히 질의응답과 자동완성 기능은 익히 들었지만 기대 이상이었다.
다만 진행되는 프로젝트와 사용되는 프레임워크에 대한 대략적인 이해와 큰 흐름은 알고 있어야 개발 생산성이 극대화되는 것 같다.
코파일럿에 대한 얘기는 따로 시간과 지면을 할애해 작성해야 할 것 같다.
'데브코스 TIL' 카테고리의 다른 글
4주차 - 5 [특강] 좋은 코드란? (0) | 2023.11.10 |
---|---|
4주차 - 4 [프로젝트] 간단하지만 치명적인 것들 (0) | 2023.11.09 |
4주차 - 2 [프로젝트] (0) | 2023.11.07 |
4주차 - 1 [프로젝트] (0) | 2023.11.06 |
3주차 - 5 [특강] Git/GitHub (0) | 2023.11.03 |