본문 바로가기

분류 전체보기307

Web개발 :: 맛집 추천 서비스 가까마까(GaggaMagga) 프로젝트 중간 시연 _TIL73 ■ JITHub 개발일지 73일차 □ TIL(Today I Learned) :: B6팀(나이사)_가까?마까?(GaggaMagga) 프로젝트 중간 시연 ■ B6팀(나이사)_가까?마까?(GaggaMagga) 프로젝트 중간 시연 📌 프로젝트 개요 기획 의도 누구나 여행을 떠나서 음식점을 가거나, 점심 식사 메뉴를 정할 때 고민이 있었던 경험이 있을 것 입니다. 본 서비스는 '제주도' 라는 특정 지역에서 먹고자 하는 음식의 종류나 장소를 선택하면 사용자에게 맛집을 추천하고 있습니다. 추천 기능은 머신러닝 유저기반 추천 기능을 활용하여 사용자와 가장 유사한 경험을 갖고 있는 사용자의 데이터들를 통해 음식점을 추천합니다. 방문한 맛집은 다른 사용자와 후기를 공유하고, 후기에는 별점을 넣어 장소별 평가점수를 관리할 .. 2022. 12. 15.
Web개발 :: 데이터 처리, 변형, Pandas Dataframe, Pagenation _TIL72 ■ JITHub 개발일지 72일차 □ TIL(Today I Learned) :: 데이터 처리, 변형, Pandas Dataframe 1. 머신러닝 Dataframe 관련 오류 - 현재 진행하고 있는 프로젝트에서는 머신러닝시 각 조건에 따라 필요한 데이터를 아래와 같이 쿼리셋으로 가져온다. # 유사한 유저 정보 조회 및 추천(기존 사용이력이 없는 사용자) def rcm_place_new_user(place_id, category): places = pd.DataFrame(list(Place.objects.values())) ... # 유사한 유저 정보 조회 및 추천(기존 유저) def rcm_place_user(user_id, cate_id): places = pd.DataFrame(list(Place.o.. 2022. 12. 15.
Web개발 :: 페이지네이션, permission class, LocalStorage _TIL71 ■ JITHub 개발일지 71일차 □ TIL(Today I Learned) :: 페이지네이션, permission class, LocalStorage 1. 페이지네이션 적용 - 페이지네이션은 장소 추천 리스트에 적용했다. 페이지네이션은 rest framewokr에서 이미 제공해주고 있는 모듈을 사용하면 편리하게 구현할 수 있다. 아래와 같이 프로젝트 폴더에 페이지네이션을 구현할 모듈을 지정해둔다. # project_folder/pagination.py from rest_framework.pagination import PageNumberPagination class BasePagination(PageNumberPagination): # 페이지 사이즈를 지정할 query_param 문자열 지정 ex) /?.. 2022. 12. 14.
Web 개발 :: 12월 둘째주 WIL15 ■ 개발일지 WIL #15 1. FACTS - Django Rest Framework(DRF) 신규 프로젝트 착수 - 맛집 장소를 추천하는 어플리케이션 개발 - 그 중 머신러닝 추천기능 등 제반사항을 맡게 되었음 Place [x] 북마크 기능 [x] 크롤링 base [x] 위도 경도 데이터 뽑아오기 [x] 장소 상세페이지 조회 백엔드 [x] 장소 데이터 생성 백엔드 [x] 장소 데이터 삭제 백엔드 [x] 장소 데이터 수정 백엔드 [x] 장소 CRUD 접근시 관리자 계정만 접속권한 설정 [x] 장소 상세페이지 조회수 기능 [x] 장소 상세페이지 프론트엔드 [x] 장소 삭제 프론트엔드 Recommendation(M/L) [x] 유저 취향(장소) 정보 저장 기능 구현 [x] 인덱스 페이지 조건 선택(음식, 장.. 2022. 12. 14.
Web개발 :: 머신러닝_Header를 사용한 네이버 지도 웹 크롤링 _TIL70 ■ JITHub 개발일지 70일차 □ TIL(Today I Learned) :: Header를 사용한 네이버 지도 웹 크롤링 - 프로젝트를 진행하다 보니 하루에도 수많은 부분들을 배우고 채울 수 있었다. 1.크롤링 [*참고) 스타트 코딩 - 유튜브(링크), 블로그(링크), 인프런 강의(링크)] - 크롤링은 구글링을 해보면 selenium과 BeautifulSoup을 사용한 크롤링 방식이 많은 것 같다. - 하지만 이를 활용했을 때 실제로 크롬 브라우저를 열고 페이지를 넘기는 작업이 많을 땐 크롤링 속도가 많이 걸렸다. - 위 문제는 json을 활용하여 크롤링하면 어렵지 않게 해결할 수 있었다. 크롤링 방식은 header에 정보를 넣고 페이지에 request를 보내어 response를 받는 방식이다. 처음.. 2022. 12. 14.
Web개발 :: 네이버 지도 Web Dynamic map API 적용하기 _TIL69 ■ JITHub 개발일지 69일차 □ TIL(Today I Learned) :: 네이버 지도 Web Dynamic map API 적용하기 - 프로젝트를 진행하다 보니 하루에도 수많은 부분들을 배우고 채울 수 있었다. 1. 네이버 지도 API 적용 [*참고) 네이버 클라우드 플랫폼(링크)] - 네이버 지도 API를 적용하려면 우선 네이버 클라우드 플랫폼에 가입 후 결제정보를 등록하여야 한다. - 등록 완료 후 "Web Dynamic Map"이라는 API 상품을 선택하고, 사용하고자 하는 Web URL을 작성하여 등록한다. 현재는 로컬 페이지에서 동작이 되는지 확인하고있기 때문에 로컬 BASEURL로 적어두었다. - 지도 API를 가져오려면 ClientID를 확인하고 아래 링크에 따라 Map을 셋팅, 배치하.. 2022. 12. 13.
Web개발 :: 머신러닝_swagger, html 모달창, 드롭다운 생성, Javascript 조건문 _TIL68 ■ JITHub 개발일지 68일차 □ TIL(Today I Learned) :: swagger, html 모달창, 드롭다운 생성, Javascript 조건문 사용하기 - 프로젝트를 진행하다 보니 하루에도 수많은 부분들을 배우고 채울 수 있었다. 1. Python) 인라인 if문, 인라인 for문 - 인라인 if문 사용 a if a!=0 else b - 인라인 for문 사용 [i for i in v] 2. Backend) Swagger 사용하기 - Swagger는 기존에 사용하던 Postman이나 Insomnia와 유사하지만 코드 추가 하나로 간단하게 사용할 수 있고 다양한 기능이 있는 장점이 있다. 코드는 django views.py의 각 뷰의 내부 메서드 함수 위에 @데코레이터를 사용하여 달면 된다. .. 2022. 12. 9.
머신러닝 :: 머신러닝 추천 서비스 구현_데이터 필터링, 쿼리셋 다루기 _TIL67 ■ JITHub 개발일지 67일차 □ TIL(Today I Learned) :: 머신러닝 추천 서비스 구현_데이터 필터링, 쿼리셋 다루기 1. 데이터 필터링 - 특정 문자열과 일치 filter = df['col_name'] == 'check_data' result = df[filter] - 특정 문자열 포함 filter = df['col_name'].str.contains('str1|str2|str3') result = df[filter] - 특정 문자열을 제외 filter = df['col_name'].str.contains('str1|str2|str3') result = df[~filter] ※ 쿼리셋 안에서 특정 문자 포함여부 확인(__contains를 사용한다.) for i in range(0, .. 2022. 12. 8.
Web 개발 :: 프로젝트 조회수, Permission, Dataframe, 머신러닝_TIL66 ■ JITHub 개발일지 66일차 □ TIL(Today I Learned) :: 프로젝트 조회수, Permission, Dataframe, 머신러닝 1) 게시글 조회수 생성 조회수 생성은 아래와 같은 코드로 간단하게 적용할 수 있었다. class Place(models.Model): ... hit = models.PositiveIntegerField('조회수', default=0) ... @property def hit_count(self): self.hit +=1 self.save() - 실제 코드를 실행할 때에는 views.py의 함수에서 위의 hit_count를 호출해와야 동작이 되는데 이를 호출해오지 않아 hit count가 제대로 되지 않았던 문제가 있었다. - 아래 코드처럼 place.hit_.. 2022. 12. 7.
Web 개발 :: 프로젝트 CSV, JSON 데이터 다루기_TIL65 ■ JITHub 개발일지 65일차 □ TIL(Today I Learned) :: 프로젝트 CSV, JSON 데이터 다루기_TIL65 - 크롤링한 데이터를 DB(sqlite3)와 csv, json 사이에서 자유자재로 복사, 이동, 업로드해야 할 필요가 있었다. - 보통 준비되는 json 파일은 아래와 같이 model의 table 정보가 없다. [ { "score_taste": "5", "score_service": "1", "score_cleanliness": "3" } { "score_taste": "2", "score_service": "3", "score_cleanliness": "2" } ... ] - 아래 코드는 json파일을 DB 테이블에 업로드하기 위해 수정해주는 코드이다. {"model":".. 2022. 12. 7.
반응형