The four F’s (Facts, Feelings, Fidings, Futures)

새로운 챌린지의 연속

이번 프로젝트를 진행하면서 이전에 경험하지 못한 작업들을 많이 하게 되는 것 같다.

소셜 로그인 연동

우선은 소셜로그인 연동 이다. 하나 하나 API문서를 보면서 작성해볼까 라고 생각도 했지만, Django의 allauth 패키지를 사용하면 조금 더 쉽게 구현 되는 것 같아 그것을 통해 구현 해 보았다. 이 작업을 통해서 밑바닥부터 개발하는 능력도 필요하긴 하지만, 기존에 누군가 만들어 놓은 라이브러리를 잘 이용하여 개발하는 것도 꼭 필요한 능력인 것 같다. 그리고 그게 또 쉽지만은 않다. 내용을 잘 알고 있어야 내 입맛에 맞게 필요한 부분에 잘 가져다 쓸 수 있기 때문이다.

웹 크롤링

이전에 웹페이지에서 필요한 정보만 크롤링 하는 게 궁금해서 한 두어번 정도 해봤던 것 같지만, 지금 진행하는 프로젝트에 필요한 데이터셋을 모으기 위해 며칠간 제대로 씨름해서 어떻게 필요한 데이터를 가져와야 하는지 더 잘 알게 된 것 같다. 크롤링한 정보를 Pandas dataframe에 넣어 csv파일로 저장하는 것도 배울 수 있는 좋은 시간이었다.

추천시스템 모델

유저가 선택한 선호 영화 데이터를 보고 그 유저가 좋아할만 영화들을 추천해주는 기술이 필요했다. 튜터님께 배운 것 중 아이템 기반 협업 필터링잠재요인 협업 필터링 의 2가지 타입 추천 모델을 만들었다. 아이템 기반 협업 필터링 같은 경우에는 코사인 유사도 기법을 사용했는데, 가장 유사도가 높은 영화와의 관계 수치가 높게 나오지는 않아 조금 실망스러웠다. 잠재요인 협업 필터링의 경우 유저와 영화간 행렬데이터를 이용해 잠재요인을 찾고, 이것을 통하여 유저가 평가하지 않은 영화들의 평점을 예측하여 추천 해 준다. 데이터셋과 수학공식을 통해 유저가 좋아할만 것들을 추천해주다니, 신기했다. 그런데, 이론적으로는 더 공부가 필요할 것 같다. 정해진 기간 안에 완성을 해야 해서 완벽하게 이해를 못하고 있다. 공부하자 공부!!

총평

개인적으로 많은 챌린지를 겪은 한 주인 것 같다. 스스로는 이런것들을 내가 해냈다니 라는 뿌듯함이 있지만, 객관적으로 내가 잘 했는지에 대한 평가는 어떨지 궁금하다. 미흡함이 많지 않을까 반성 해 본다. 누군가 피드백을 주시면 좋을 것 같다는 생각이 문득 든다. 이제 3일 뒤면 이번 프로젝트가 종료된다. 팀원들과 협력하여 잘 완성하고 싶다. 가즈아!