본문 바로가기
🌔Developers

[케이쿠키 개발로그] R및 자바스크립트를 활용한 크리에이터 데이터 추출

by 키훈마스 2023. 2. 7.
반응형

 

 

이번 프로젝트의 소개

이번 프로젝트는 케이쿠키에서 다룬 프로젝트 일지일 뿐이다.

그렇지만 나는 이 프로젝트를 굉장히 열심히 할 것이며 팀원들도 그럴 수 있도록 만들 것이다.

이 블로그 내용은 총 6일에서 7일 정도에 걸쳐 완성될 것이며 

프로젝트의 진행과정과 협업과정 등을 상세히 적고자 한다.

 

 

 

 

R언어란?

R은 통계 컴퓨팅, 데이터 분석, 그래픽을 위한 프로그래밍 언어이자 자유 소프트웨어 환경이다. 뉴질랜드 오클랜드 대학교의 로스 이하카와 로버트 젠틀맨이 개발하였으며, 현재는 R 개발 코어 팀이 관리하고 있으며, 경희대학교 빅데이터응용학과와 한양대학교 정보시스템학과 등 MIS와 CS를 동시에 다루는 학과에서 배울 수 있는 언어이기도 하다.

R은 통계 컴퓨팅, 빅데이터 엔지니어링 분성 및 기계 학습에 널리 사용된다. 데이터 시각화, 데이터 조작, 통계 모델링, 기계 학습 등과 같은 광범위한 작업을 위한 기능을 제공하는 14,000개 이상의 패키지를 포함하여 풍부한 라이브러리 컬렉션을 가지고 있다.

R은 S 프로그래밍 언어와 유사한 구문을 가지고 있으며, 그 기능은 S 언어에서 영감을 받았다. R은 데이터를 저장하고 조작하기 위한 구조인 벡터, 행렬, 데이터 프레임의 사용을 기반으로 하는 데이터 분석에 고유한 접근 방식을 사용한다. 이 방법을 사용하면 복잡한 데이터 분석 및 모델링을 쉽게 수행할 수 있습니다.

R의 핵심 강점 중 하나는 고품질 그래픽을 생산할 수 있는 능력이다. R은 막대 차트, 선형 차트, 산점도, 히스토그램 등 다양한 그래프와 차트를 생성하기 위한 광범위한 기능을 제공합니다. R은 또한 복잡한 시각화를 만드는 데 널리 사용되는 ggplot2와 같은 대화형 시각화를 만드는 다양한 라이브러리를 가지고 있다.

R의 또 다른 강점은 빅 데이터를 포함한 대규모 데이터 세트로 작업할 수 있는 능력이다. R은 대용량 데이터 세트를 효율적으로 읽고 쓰기 위한 기능을 제공하며, 현대 컴퓨터의 병렬 처리 기능을 사용하여 대용량 데이터 세트를 병렬로 처리하는 기능도 제공한다.

R은 오픈 소스 소프트웨어로, 누구나 무료로 사용, 수정, 배포할 수 있다. 이로 인해 패키지를 제공하고 튜토리얼을 작성하며 다른 사용자에게 지원을 제공하는 사용자 커뮤니티가 크게 활성화되었습니다. R 커뮤니티는 데이터 과학자와 연구자의 진화하는 요구를 충족하기 위해 새로운 패키지와 도구를 지속적으로 개발하고 있다.

요약하자면, R은 데이터 분석, 통계 컴퓨팅 및 기계 학습을 위한 강력하고 다목적인 프로그래밍 언어 및 소프트웨어 환경이다. 고품질 그래픽을 생성하고 대규모 데이터 세트를 처리하는 능력과 광범위한 라이브러리로 인해 데이터 과학자와 연구자에게 필수적인 도구이다.

 

웹 페이지의 작동에 자바스크립트가 필요한 이유

자바스크립트는 웹 페이지에 대화형, 동적 콘텐츠 및 기타 고급 기능을 추가하는 데 사용되는 클라이언트 측 스크립팅 언어입니다. 그것은 매우 상호작용적이고 매력적인 웹사이트를 만들 수 있기 때문에 웹페이지 운영에 필요하다.

웹 초기에는 웹 페이지가 정적이었고 텍스트와 이미지만 표시할 수 있었다. 그러나 자바스크립트의 등장으로 웹 개발자들은 이제 웹 페이지에 상호작용성과 동적 콘텐츠를 추가할 수 있게 되어 웹을 훨씬 더 매력적이고 상호작용적인 경험으로 만들 수 있게 되었다.

웹 페이지 운영에 자바스크립트가 필요한 주요 이유 중 하나는 동적 콘텐츠를 만들 수 있기 때문이다. 예를 들어, 자바스크립트를 사용하여 개발자는 마우스 클릭, 양식 제출 등과 같은 사용자 상호 작용을 기반으로 웹 페이지의 내용을 변경할 수 있습니다. 이를 통해 사용자 작업에 실시간으로 응답하는 웹 페이지를 만들 수 있어 사용자에게 훨씬 더 상호 작용적인 경험을 제공한다.

자바스크립트가 웹 페이지 운영에 필요한 또 다른 이유는 매우 상호작용적인 사용자 인터페이스를 만들 수 있기 때문이다. 자바스크립트는 슬라이더, 드롭다운 메뉴, 팝업 등과 같은 광범위한 대화형 요소를 만드는 데 사용될 수 있다. 이러한 요소를 사용하여 보다 매력적인 사용자 환경을 만들고 사용자가 웹 페이지와 더 쉽게 상호 작용할 수 있다.

자바스크립트는 사용자 입력을 검증하는 데 사용될 수 있기 때문에 웹 페이지 운영에도 필요하다. 예를 들어, JavaScript를 사용하여 사용자가 전자 메일 주소 및 전화 번호와 같은 양식에 유효한 정보를 입력하도록 할 수 있습니다. 이렇게 하면 잘못된 데이터가 제출되고 처리되는 것을 방지하여 전반적인 사용자 환경을 개선할 수 있다.

웹페이지 운영을 위해 자바스크립트가 필요한 또 다른 이유는 애니메이션과 특수효과를 만드는 데 사용될 수 있기 때문이다. 예를 들어, 자바스크립트를 사용하여 개발자들은 호버 효과와 슬라이딩 메뉴와 같은 사용자 상호작용에 반응하는 애니메이션을 만들 수 있다. 이것은 사용자에게 시각적으로 더 매력적이고 매력적인 웹 페이지를 만드는 것을 가능하게 한다.

마지막으로 자바스크립트는 구글 크롬, 모질라 파이어폭스, 인터넷 익스플로러 등을 포함한 모든 주요 브라우저에서 지원되기 때문에 웹페이지 운영에 필요하다. 이것은 웹 개발자들이 다양한 장치와 플랫폼에서 작동할 상호작용적이고 매력적인 웹 페이지를 만들 수 있다는 것을 의미한다.

결론적으로 자바스크립트는 현대 웹 개발의 중요한 구성 요소이며 웹 페이지의 운영에 필요하다. 동적 콘텐츠, 대화형 사용자 인터페이스, 사용자 입력 검증, 애니메이션 제작, 주요 브라우저 지원 등의 기능으로 웹 개발자에게 필수적인 도구이다.

 

 

크리에이터 데이터 수집 과정

우리 팀의 역할 분담이 정해지기 전, 나를 제외한 모든 팀원들은은 각각 자신이 관심 대상으로 정한 카테고리별의 크리에이터 데이터를 수집했다. 크리에이터 데이터는 주로 influencer.com에서 가져왔으며, 영과 륜이는 이 데이터들을 엑셀에 저장했다.

그들이 데이터를 수집하는 동안, 나는 쿠버네티스와 R을 연동하는 테스트를 진행하고 있었다.

 

먼저 우리는 여러 데이터 사이트에서 유튜버들의 조회수, 댓글 수, 카테고리별 조회수 순위를 수집하였다.

그런 다음 조회수의 단위를 모두 숫자로 통일하고, 나중에 Rstudio가 엑셀 파일을 잘 불러오고 읽어들일 수 있도록

크리에이터들의 이름을 정렬한 뒤 각각 알맞는 위치에 배치하였다.

수집된 데이터를 엑셀에 저장하였다.

 

 

 

소프트웨어 개발에서 협업의 중요성

협업은 소프트웨어 개발의 중요한 측면으로, 서로 다른 기술과 관점을 가진 개인들로 구성된 팀을 하나로 모아 공동의 목표를 향해 작업하기 때문이다. 소프트웨어 개발에서 효과적인 협업은 최종 제품의 품질을 향상시키고, 생산성을 향상시키며, 더 성공적인 프로젝트로 이어질 수 있다.

소프트웨어 개발에서 협업의 주요 이점 중 하나는 개발자가 아이디어, 지식 및 전문 지식을 공유할 수 있다는 것입니다. 함께 작업할 때, 개발자들은 그들의 독특한 관점과 경험을 테이블로 가져올 수 있고, 그 결과 문제에 대한 더 나은 이해와 더 창의적인 해결책의 개발을 할 수 있다. 이를 통해 사용자의 요구를 충족하는 혁신적이고 효과적인 소프트웨어를 만들 수 있다.

소프트웨어 개발에서 협업의 또 다른 중요한 측면은 오류의 위험을 줄이고 최종 제품의 전반적인 품질을 향상시키는 데 도움이 된다는 것이다. 개발자들이 함께 작업할 경우 개발 프로세스 초기에 실수를 발견할 수 있으므로 향후 더 중요한 문제가 되는 것을 방지할 수 있습니다. 또한 코드를 공유하고 서로의 작업을 검토함으로써 개발자는 버그나 문제가 큰 문제가 되기 전에 식별하고 해결할 수 있다.

협업을 통해 소프트웨어 개발 팀의 생산성도 향상시킬 수 있습니다. 함께 작업할 때 개발자는 워크로드를 나누고 가장 적합한 작업에 집중할 수 있으므로 프로젝트를 완료하는 데 걸리는 시간을 줄일 수 있습니다. 또한 개발자는 정보를 전달하고 공유함으로써 중복 작업을 방지할 수 있으므로 불필요한 작업에 소요되는 시간을 줄일 수 있다.

소프트웨어 개발에서 협업의 또 다른 중요한 측면은 더 나은 의사 결정으로 이어질 수 있다는 것이다. 함께 작업할 때 개발자들은 문제에 대한 다양한 접근 방식과 해결책을 논의할 수 있어 가능한 최선의 해결책을 개발할 수 있다. 이것은 또한 팀원들 간의 의사소통과 이해를 향상시켜 오해와 잘못된 의사소통의 가능성을 줄일 수 있으며, 이는 앞으로 문제를 일으킬 수 있다.

소프트웨어 개발에서 효과적인 협업은 긍정적이고 지원적인 팀 환경을 조성하는 데도 도움이 됩니다. 함께 작업할 때 개발자들은 서로를 지원하고 피드백을 제공할 수 있어 보다 긍정적이고 생산적인 작업 환경으로 이어진다. 또한, 공동의 목표를 위해 함께 노력함으로써, 개발자들은 강한 관계를 형성하고 팀워크를 발전시킬 수 있고, 이것은 가능한 최고의 결과를 성취하려는 동기 부여와 열망으로 이어질 수 있다.

마지막으로, 소프트웨어 개발에서의 협업은 더 나은 프로젝트 관리로 이어질 수 있다. 함께 작업할 때 개발자는 작업 상태에 대한 정보를 공유하여 프로젝트 관리자가 진행 상황을 추적하고 프로젝트가 예정대로 진행되는지 확인할 수 있습니다. 또한 프로젝트 관리자는 정기적으로 의사소통을 함으로써 문제가 중대한 문제가 되기 전에 문제를 파악하고 해결하여 보다 성공적인 프로젝트 결과를 도출할 수 있다.

결론적으로, 협업은 소프트웨어 개발의 중요한 측면으로, 서로 다른 기술과 관점을 가진 개인들로 구성된 팀이 공동의 목표를 향해 노력하는 것이다. 소프트웨어 개발에서 효과적인 협업은 최종 제품의 품질을 향상시키고, 생산성을 향상시키며, 더 나은 의사 결정으로 이어지며, 긍정적이고 지원적인 팀 환경을 조성하고, 프로젝트 관리를 개선할 수 있습니다. 개발자는 함께 작업함으로써 사용자의 요구를 충족하는 혁신적이고 효과적인 소프트웨어를 만들 수 있을 것이다. 또한, 개발에서 협업은 절대로 피할 수 없을 것이다.

 

 

협업 과정

왼쪽부터 영, 나, 륜, 그리고 뒤에 준의 컴퓨터가 보인다.

우리 팀의 협업 과정은, 먼저 교수님이 프로젝트를 예고하신 뒤부터 팀의 구성이 이루어졌다. 가장 첫번째로는 나와 영, 그리고 륜이로 시작했으며 프로젝트 마감 기한을 2주일 남긴 뒤, 준이가 합류했다.

 

우리 팀은 협업 과정에서 가장 먼저 디스코드를 사용했다. 그 이유로는 디스코드는 통화 부분에서 강력한 기능을 제공했기 때문이다.

그러나 우리 팀은 협업 과정에서 디스코드가 렉이 많이 걸리고 실시간 코드 연동이 안된다는 이유로, 협업 툴로 슬랙(Slack)을 도입하였다.

슬랙을 사용하여 소통과 역할 소통을 진행하였고, 거기에 깃허브(Github)를 도입하니 팀원들은 코드를 다 작성한 뒤, 카카오톡이나 메일로 일일히 돌리지 않고도 커밋(Commit)과 푸시(Push)를 통해 실시간으로 같이 작업할 수 있었다. 깃허브는 협업 과정에서 반드시 필요한 툴이 아닐 수 없으며 이를 도입함으로 개발 협업에 소요되는 시간을 굉장히 많이 줄일 수 있었다.

 

일단, Rstudio에서 깃허브를 사용하기 위해서는 Git이 반드시 설치되어 있어야 하며, 맥북에서 진행할 경우 상당히 복잡할 수 있다는 점을 알아두기를 바란다.

 

 

 

 

완성된 결과물

완성된 결과물은 웹 페이지로 표시될 수 있게 하였으며,

웹 페이지에 있는 크리에이터의 버튼을 클릭하면 해당 크리에이터에 대한 분석 결과를 모두 볼 수 있도록 하였다.

 

 

또한, 이 프로젝트는 발표된 이후 현재 이 프로젝트에 대한 리소스와 내용은 깃허브에 업로드되어 있으니 학습 목적으로 필요하다면 한번 둘러보도록 하자. 위의 이미지를 클릭하여 이동할 수 있다.

 

 

 

 

 

 

 

 

 

 

 

반응형