본문 바로가기

Til80

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개발 :: 머신러닝_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.
Web 개발 :: 프로젝트 코드 및 정리_TIL64 ■ JITHub 개발일지 64일차 □ TIL(Today I Learned) :: 웹 크롤링을 통한 네이버 맛집 데이터 크롤링 1. API - Application Programming Interface, 프로그램과 프로그램 사이를 연결해주는 매개체 - API를 이용해서 데이터를 불러오는 경우에는 데이터가 동적으로 변화하여 실시간으로 값을 불러오는 경우가 많다. - 크롭 개발자 도구의 Network 탭에서 웹사이트가 데이터를 요청하는 API를 확인할 수 있는데 이 API의 URL에 GET요청을 보냄을 통해 Json데이터를 얻을 수 있다. request.get() 2. 웹 크롤링 - 웹사이트에 Request를 통해 Html 데이터를 가져오고, Response를 통해 받은 Html데이터를 parsing, 즉 .. 2022. 12. 2.
Web 개발 :: 프로젝트 SA_TIL63 ■ JITHub 개발일지 63일차 □ TIL(Today I Learned) :: 신규 프로젝트 SA 📌 프로젝트 핵심 목적 Django Rest Framework를 활용한 맛집, 카페 추천 웹 서비스를 구축한다. 사용자에게 특정 지역 내 맛집과 카페를 추천해주고, 맛집/카페 방문 후기를 유저끼리 서로 공유할 수 있는 플랫폼을 제공한다. 📄 기능 명세서 사용자 환경(회원가입, 로그인, 회원정보 관리, 팔로우, 회원 비활성화, 아이디찾기, 비밀번호 찾기 등) 맛집 / 카페의 후기 작성, 수정, 삭제, 조회수, 좋아요, 검색 후기 댓글 작성, 수정, 삭제 후기 댓글의 대댓글 작성, 수정, 삭제 유저간의 댓글, 후기의 좋아요하면 알림 HTML/CSS/Javascript를 활용한 모바일 프론트엔드 페이지 구성 📘.. 2022. 12. 2.
반응형