[TIL 16일자] 데브코스 데이터엔지니어링

·2023년 5월 1일
0

데브코스

목록 보기
15/55
post-thumbnail

📚 오늘 공부한 내용

👊 팀 프로젝트의 시작

1. 주제 선정

  • 팀 프로젝트 주제를 선정했다. 주제는 카테고리별 유튜브의 파급력 (조회 수, 좋아요 수, 구독자 수) 데이터 크롤링 및 시각화로 정해졌다.
  • 오늘은 프로젝트의 첫날이라 주제 선정과 어떻게 Youtube API 데이터를 크롤링할지 직접 코드를 짜면서 시각화할 수 있을 정도로 데이터를 추출해 보기로 했다.

2. 형상 관리 및 프로젝트 관리 툴 설정

  • 또한 git organization을 통해 서로 앞으로 코드를 형상 관리 할 수 있는 환경을 만들었다.
  • 원래 프로젝트를 하면서 눈으로 팀원들이 서로 맡고 있는 업무와 서로 겪고 있는 트러블 슈팅, 그리고 앞으로 하게 될 업무를 관리하면 좋겠다 생각하였고, 5 일 진행되는 프로젝트였기 때문에 한기용 강사님이 추천해 주신 Trello를 사용해 보기로 하였다. JIRA와 달리 하나의 보드에서 깔끔하게 관리가 가능해 장기 프로젝트가 아닌 단기 프로젝트에 매우 유용하다고 생각했다. Trello는 다음과 같이 구상했다.

  • Project Resources: 각 Label의 의미와 리스트 사용 등 앞으로 Trello를 어떻게 사용해야 할지 가이드 라인의 개념으로 두었다.
  • Upcoming: 예정된 업무(카드)를 할당해 둔다.
  • In Progress: 예정된 일을 진행하기 시작했다면 카드의 위치를 이 리스트로 바꾸어 진행 중이라는 것을 공유되도록 하였다.
  • Done: 완료가 된 업무는 이곳에 종료하도록 한다.
  • Trouble Shooting: 특정 업무(카드) 진행 중 문제가 발생한다면 해당 문제에 대한 카드를 생성해 이곳에 두기로 하였다. 또한 해당 업무는 지금 진행 중인 업무이므로 In Progress의 상태로 유지하되 help라는 Label을 붙이도록 하였다.

3. YOUTUBE API 키 발급 및 데이터 크롤링 환경 설정

📚 [유튜브 데이터 크롤링 및 시각화 프로젝트] 1. YOUTUBE API 사용 환경 설정

  • 개인적으로 모듈 설치에서 많은 시간을 사용했고 어려움을 겪었는데 이 부분은 TIL 어려웠던 내용에 따로 써 두었다.

4. Python으로 YOUTUBE API 데이터 추출해 보기

  • 하나의 카테고리를 정해 그 카테고리의 인기 유튜버를 추리고, YouTube API의 JSON 파일이 어떤 형식으로 되어 있는지 추출 및 분석해 보기로 하였다.
  • 나는 음악이라는 카테고리를 정했고, 처음 음악이라는 카테고리의 데이터를 추출 및 분석할 유튜버들을 정할 때는 나름의 기준을 두었다. 가수라는 직업과는 별개로 두고 유튜버 중에서만 선출한다. 최대한 다양한 콘텐츠의 음악 유튜버들로 분석한다.
  • 그렇게 선별한 유튜버는 다음과 같았다.

❗ YouTube API 분석을 위한 음악 카테고리의 유튜버 선정

  • 때잉: 곡 해석 및 추천 유튜버
  • 쏘플: 팝송 해석 및 추천 유튜버
  • 때껄룩: playlist 유튜버
  • 네고막을책임져도될까: playlist 유튜버
  • 임팝TV: C-pop 해석 및 추천 유튜버
  • Mellowbeat Seeker: 힙합, LoFi 추천 유튜버

🔎 어려웠던 내용 & 새로 알게 된 내용

1. googleapiclientoauth2client 모듈 설치 오류

  • 개인적으로 이 문제를 해결하느라 한 시간 반 이상은 걸렸던 것 같다.
  • 문제는 이 두 모듈은 YouTube API를 활용하기 위해 꼭 필요한 모듈인데 두 모듈을 pip 명령어를 통해 설치해도 막상 프로젝트 파일에 들어가 호출하면 ModuleNotFoundError: No module named ‘googleapiclient’이라는 오류가 뜨는 것이었다.
  • 첫 번째로 이 문제가 발생한 원인은 googleapiclient를 설치하기 위해서는 pip install google-api-python-client 명령어를 사용해야 한다. 보통 우리는 모듈을 설치할 때 pip module-name을 사용한다. 예를 들어, 같이 설치해야 하는 oauth2client 역시 마찬가지로 pip oauth2client 명령어를 통해 설치하지만 googleapiclient는 그럴 경우 모듈을 찾지 못한다.
  • 그럼에도 불구하고 계속 같은 오류가 발생하였다. 결정적으로는 파이썬은 C 드라이브에 있는데 D 드라이브에 프로젝트 파일을 생성하고 활용하고 싶어 명령창에서 D 드라이브에 맞춰 두고 설치하여 문제였다. 설치가 되는 과정에서는 아무런 문제가 없어 설치가 되었다 생각했는데 막상 파일에 들어가면 파이썬은 C 드라이브에 있기 때문에 D에 설치해 놓은 모듈을 찾지 못하는 것이다. 결국 cmd 창에서 cd (파이썬의 실제 위치)에 맞춰 둔 후 다시 모듈을 설치하고 실행하니 제대로 모듈이 읽히는 것을 확인할 수 있었다.
  • 사실 제일 간편한 방법은 jupyter lab을 사용하는 것이었다. jupyter lab을 통해 해당 명령어를 입력하면 호출에 오류가 나지 않았고 바로 사용 가능했다.
%pip install google-api-python-client
%pip install oauth2client

✍ 회고

개인적으로 흥미 있는 주제를 선정하고 그 주제로 프로젝트를 진행한다는 게 재미있게 느껴진다. 처음 해 보는 데이터 엔지니어링과 관련된 프로젝트라 더 기대가 되는 것 같다. 그리고 드디어 git bash를 사용해 git push까지 순조롭게 가능해졌다. 다만 이제 팀원들과 같이 협업하다 보면 충돌이 날 수도 있는데 그 부분에서 발생하는 문제들은 다 Trouble Shooting으로 기록해 둘 예정이다. 또한 내일은 각자 분석한 데이터를 토대로 시각화를 어떻게 진행할 것인지 구체화하고 Upcoming에 필요한 카드들을 추가 후 역할 분담할 예정이다. 그 과정에서 코드 컨벤션도 정하면 좋겠다고 생각했다.

profile
송의 개발 LOG

0개의 댓글