내일배움캠프 AI - 34일차 TIL, 2022.06.07

Dongwoo Kim·2022년 6월 7일
0

TIL / WIL

목록 보기
35/112

스파르타 코딩클럽

내일배움캠프 AI 웹개발자양성과정 2회차

2022.06.07. 34일차- TIL

1. 이미지 수집 & 맥주 추천 시스템 수정

09:00-12:00

연휴를 끝내고 본격적인 팀프로젝트 개발에 들어갔다. 먼저 오늘은 UI구성을 목표로하고 오전에는 77종류의 맥주들의 이미지 파일을 수집하는 작업을 진행했다. 남은 시간에는 자유롭게 연휴동안 까먹었을 추천시스템을 복습하고 프로젝트에 관한 내용들을 체크했다. 나는 실제로 우리 팀 프로젝트에서 사용할 맥주 추천 알고리즘 체크하고 수정하는 작업을 진행했다.

먼저 기존의 작성한 맥주 데이터는 데이터들이 모두 문자열로 되어있었다. 따라서 데이터기반 협업 필터링으로 맥주 간의 유사도를 측정할 때 두 문자열간의 유사도를 측정하는 SequenceMatcher 라는 라이브러리를 이용하였는데 맥주의 여러 특성들을 단순 문자열로 판단하고 유사도를 정하는 것이 부정확할 수 있다고 생각했다.

따라서 문자열의 특성을 파싱해서 실재 특성값으로 가져올 수 있도록 함수를 만들었고 해당 함수를 거친 특성 리스트를 기준으로 유사도를 측정할 수 있도록 했다. 이때 사용한 유사도 알고리즘은 자카드 유사도(jaccard similarity)를 이용하여 두 리스트의 합집합과 교집합의 비율로 유사도를 측정하도록 했다.

그리고 맥주 이미지는 일단 지난 팀프로젝트처럼 local로 저장해두고 다른 핵심기능들이 모두 구현되면 image sever를 만들어보는 방식으로 진행할 예정이다.

  • 기존의 맥주의 특성을 가지고있던 문자열 형태와 이를 파싱하는 함수

  • 자카드 유사도를 이용한 유사도 측정

  • 수집한 종류별 맥주 이미지

2. UI 작성을 위한 django template 이용하기

12:00-13:00 점심시간
13:00-18:00 django template

오후 부터는 본격적인 UI 개발을 시작했는데 한가지 고려해야할 사항이 있었다. 로그인과 회원가입 페이지를 제외한 여러 페이지(추천페이지, 맥주페이지, 히스토리페이지)에서 헤더와 메인 바디, 풋터와 같은 공통된 UI를 사용하는 것인데 이를 중복으로 작성해야하는 것이었다. 찾아보니 django template 문법 중 extends와 block 태그를 이용하면 이를 해결 할 수 있었다.

다만 처음에는 사용방법이나 개념에 대해 익숙하지 않아서 공통되는 헤더부분 html을 따로 만들고 이를 각자의 html 파일에서 불러와 사용하면 될 것이라 생각하고 작업을 진행했었다. 하지만 extends, block의 개념은 이것과 반대된 상속의 개념으로 base.html과 같은 공통된 부분의 html에 각자의 html부분을 넣는 것이었다. 때문에 이를 이해하고 작업을 수정하느라 시간이 오래 걸렸다.

  • 대부분의 페이지들이 공통적으로 가지는 base.html 부분, 가운데 맥주 사진이 들어가는 부분만 페이지에 따라 보여주는 내용이 달라진다.

3. 자료

profile
kimphysicsman

0개의 댓글