전체 글 126

구글 플레이 스토어 - 리뷰 데이터 크롤링하기

스타듀밸리 어플 리뷰 크롤링 인디 게임인 스타듀밸리에 대한 리뷰를 크롤링 해보았습니다. 저도 구매해서 플레이 해봤는데 굉장히 재미있습니다. 다들 큰 기대 없이 시작하지만 한 번 빠지면 몇 시간 뚝딱입니다. Golden Joystick 혁신상을 비롯해 여러 곳에서 상을 받은 게임답습니다. play.google.com/store/apps/details?id=com.chucklefish.stardewvalley&hl=ko&gl=US 스타듀 밸리 Stardew Valley - Google Play 앱 ConcernedApe의 대인기 농장 RPG가 모바일 버전으로 찾아옵니다! 각종 수상 경력에 빛나는 농장 RPG에서 농촌으로 떠나 새로운 삶을 경험해 보세요! 50시간 이상의 즐길거리를 제공합니다. 새로운 엔 pl..

인텔리제이 다운로드 - 스프링부트 실행하기

인텔리제이 사용하기 지금까지는 자바를 사용할 때 이클립스만 사용했습니다. 그런데 인텔리제이라는 에디터가 평가가 너무 좋아서 사용해보려고 합니다. 실제로 굉장히 편리한 기능들이 많이 있는 것 같습니다. 1. 인텔리제이 다운로드 인텔리제이를 홈페이지에 접속합니다. 지금보니 파이참을 만든 회사인 JetBrains에서 만들었네요. 👍👍 www.jetbrains.com/ko-kr/idea/download/#section=windows 다운로드 IntelliJ IDEA: 우수성과 인체 공학이 담긴 JetBrains Java IDE 최신 버전 다운로드: IntelliJ IDEA (Windows, macOS, Linux) www.jetbrains.com 다운로드를 클릭해 줍니다. 그럼 다음과 같은 화면이 나옵니다. J..

Web/Spring 2021.01.13

외모지상주의 - 베스트 댓글 크롤링하기

제가 즐겨 보는 네이버 웹툰인 외모지상주의 베스트 댓글을 수집하고 살펴보았습니다. 인기작가 '박태준'님의 신작으로 논란도 많았지만 그만큼 핫했던 작품입니다. 사람들은 어떤 베스트 댓글을 좋아했고, 어떤 내용의 회차였는지 궁금해서 크롤링을 해보았습니다. 1. 댓글 수집하기 1.1 셀레니움을 활용한 데이터 수집 크롤링을 위해 셀레니움을 사용했습니다. BeautifulSoup은 사용해 봤는데, 셀레니움을 요즘은 많이 사용하는 것 같더군요. 사용해보니 굉장히 강력한 툴이라는 생각이 들었습니다. 셀레니움을 사용하기 위해서는 Chromedriver를 먼저 설치해야 합니다. chromedriver.chromium.org/downloads Downloads - ChromeDriver - WebDriver for Chr..

Pandas - 데이터프레임 생성/병합/추출하기

파이썬은 원래 데이터 분석에 특화된 언어가 아닙니다. R로 분석하던 것을 파이썬으로 하고 싶은 개발자들이 만든 도구가 Numpy와 Pandas입니다. 데이터분석을 위한 파이썬의 기본 자료구조 딕셔너리, 리스트만으로는 부족했기 때문에, Pandas에는 데이터프레임, 시리즈라는 자료구조가 추가되었습니다. 1. 데이터 프레임 생성 데이터 프레임을 만드는 방법은 여러 가지가 있습니다. 일반적으로 배열, 리스트, 딕셔너리로 만들 수 있습니다. 1.1. 배열로 생성하기 첫 번째는 배열(array)을 이용해서 만드는 방법입니다. 우선 배열 자료구조를 사용하기 위해 numpy를 불러오고, pandas도 import 합니다. import pandas as pd import numpy as np sample_array =..

협업 필터링 - 최근접 이웃 협업 필터링이란? (CF)

1. 협업 필터링이란? Collaborative Filtering에서의 협업이란 다른 유저의 정보를 사용하겠다는 것입니다. 서로 평가한 내용들이 영향을 주고 받기 때문에 붙여진 이름이 아닐까 생각이 드네요. 협업 필터링은 최근접 이웃 협업 필터링(KNN)과 잠재 요인 협업 필터링 두 가지가 있습니다. 협업 필터링의 장점은 다른 유저들의 정보를 이용할 수 있다는 것입니다. 하지만 이전 포스팅에서 언급했던 Cold Start, Sparsity, First rater등의 단점도 존재합니다. western-sky.tistory.com/43 추천 시스템 - 컨텐츠 기반 필터링이란? (CBF) 추천 시스템 유형 목차 코로나로 인해 오프라인보다는 온라인 구매가 더 많아지고 있습니다. 온라인 마켓의 장점은 '시간과 공..

파이썬 - 입/출력, 자료구조 빠르게 정리하기

1. 파이썬 기초 문법 1.1. 입력받고, 출력하기 파이썬에서는 간단하게 input()함수로 입력을 받을 수 있습니다. 출력은 print() 함수를 이용하면 쉽게 사용할 수 있습니다. 사용자로부터 input() 함수를 이용해 입력을 받겠습니다. input()은 구분 문자가 없이 한 줄을 읽어옵니다. input().split()으로 사용하면 공백을 기준으로 입력을 받을 수 있습니다. var = input().split() print(var) input().split(';')이라고 입력하면 ';' 문자를 기준으로 입력을 받습니다. var = input().split(';') print(var) 1.2. 문자열 덧셈, 곱셈 파이썬의 장점 중 하나는 문자열 처리가 간편하다는 것입니다. 2 + 3 = 5 를 계산..

추천 시스템 - 컨텐츠 기반 필터링이란? (CBF)

코로나로 인해 오프라인보다는 온라인 구매가 더 많아지고 있습니다. 온라인 마켓의 장점은 '시간과 공간'에 제한되지 않는다는 것 같습니다. 문을 열고 닫는 시간도, 물건을 진열한 매장도 필요 없으니까요. 또한 사용자에게 구매할 가능성이 높은 제품을 '추천'해 줄 수도 있습니다. 이번 포스팅에서는 추천 시스템을 구현하는 방법 중 하나인 컨텐츠 기반 필터링에 대해 정리해보려고 합니다. 1. 컨텐츠 기반 필터링 추천시스템은 Utility Matrix에 기반하고 있습니다. Utility Matrix는 어떤 유저가 어떤 아이템들을 구매했는지를 나타낸 행렬입니다. 컨텐츠 기반 필터링은 '내용(Content)'에 알맞는 아이템을 추천해주는 것입니다. 유저 X가 아이템 Y를 구매했다면, Y와 비슷한 아이템을 추천해주는 ..

NBA 농구 강팀이 연승하는 이유는?

🛒데이터 수집 및 전처리 데이터는 캐글에 있는 NBA Regular Season Data를 사용하였습니다. https://www.kaggle.com/michaelmcfarlane/20172018-nba-regular-season-game-data 사용할 라이브러리와 파일을 불러오겠습니다. import pandas as pd import numpy as np import plotly.express as px import plotly.graph_objects as go import matplotlib.pyplot as plt import seaborn as sns from sklearn.cluster import KMeans from sklearn.preprocessing import MinMaxScaler..

전략 패턴, 템플릿 콜백 패턴

1. 전략 패턴 1.1. 전략 패턴이란? 전략 패턴은 프로그램 수행 중에 알고리즘을 선택할 수 있도록 만든 패턴입니다. 선택할 알고리즘이 바로 '전략(Strategy)'이 되는것이죠. 👏 그리고 이 전략을 선택하는 주체인 '컨텍스트(Context)'가 필요합니다. Context는 문맥이란 뜻인데요. 아마도 맥락에 따라 서로 다른 전략을 선택하기 때문에 붙은 이름이 아닐까 싶습니다. 👀 Context는 전략을 수행하는 객체라고 봐도 무방할 것 같네요. 마지막으로 Context에 Strategy를 주입해주는 '클라이언트(Client)'가 필요합니다. Context가 직접 전략을 선택하지 못하기 때문이죠. 따라서 클라이언트가 Context에게 문맥에 맞는 Strategy를 '주입(DI:Dependancy In..

팩토리 메서드, 템플릿 메서드 패턴

1. 팩토리 메서드 패턴 팩토리 메서드 패턴(Factory Method Pattern)이란 객체 생성을 하는 클래스를 따로 두는 것입니다. 그래서 공장(Factory)이라는 표현을 쓰나봅니다. 🙂 실질적인 클래스의 구현은 하위 클래스에서 이루어지는데요. 이렇게 되면 상위 클래스는 하위 클래스의 구현내용을 모르더라도 사용이 가능합니다. 어려운 말로 객체간 결합도가 낮아진다고 하는데요. 결합도란 모듈이 어떤 작업을 수행할 때, 다른 모듈에게 얼마나 의존하느냐입니다. 결합도가 낮아지면 유지보수 하기가 쉬워집니다. 예시를 먼저 보는게 빠를 것 같습니다. 현대자동차에서 차를 만든다고 가정해보겠습니다. 그럼 자동차 공장에 팩토리 메서드를 두고, 공장에서 승용차, 버스, 스쿠터 등을 생성하도록 두는 것이죠. 😊 UM..