본문 바로가기

DEV/Web 개발97

Web개발 :: 데이터 전처리, Django TestCode 작성 _TIL75 ■ JITHub 개발일지 75일차 □ TIL(Today I Learned) :: 데이터 전처리, Django TestCode 작성 - place 앱에 대한 테스트 코드를 작성하고 있다. - 테스트 코드는 사실 프로젝트를 진행하면서 동시에 작성하여 하나하나 테스트하고 넘어가야 하는 부분이지만 이번 프로젝트 때에는 그렇게 하지 못하여 중간 배포까지 진도를 빼고 팀원들과 하나하나 채워나가기로 했다. - 아래는 팀원이 작성한 Review 앱의 코드이다. 본 코드를 이해하고 place앱에 적용하려 하는데, 사실 1) 테스트해보아야 할 케이스에 대한 정의가 우선되어야 할 것 같고, 2) 사용자 로그인 상태에 따라 setUp이 달라져야 하는데 어떻게 해야 할지 감이 잘 오지 않았다. - 일단 지금은 코드를 뚫어져라 .. 2022. 12. 20.
Web 개발 :: 12월 셋째주 WIL16 ■ 개발일지 WIL #16 1. FACTS - 프로젝트 중간 발표회 완료 - 각 앱(User, Place, Review) 기능 구현 완료 - 프로젝트 배포 완료 (* 링크 : https://www.gaggamagga.shop/) 가까? 마까 | 로그인 www.gaggamagga.shop - 일부 오류 수정 및 테스트 코드 보완 필요 - DB 수정, 사용자 피드백 준비 2. FEELINGS - 중간 발표회가 끝났지만 끝난게 아니었다. - 보완할 것들은 잔뜩, 아직 미완인 부분들도 잔뜩 - 데이터를 손봐야 하는 부분들이 좀 있다. 중복된 부분들이나 최초 사용자 환경을 위한 더미데이터 등. 그런데 아직도 엑셀로 하고있다. 추후 데이터 관리에 익숙해지기 위해서라도 SQL을 사용해보아야 겠다. 3. FINDING.. 2022. 12. 19.
Web개발 :: BackData 전처리, Json 파일 변환 등 _TIL74 ■ JITHub 개발일지 74일차 □ TIL(Today I Learned) :: BackData 전처리, Json 파일 변환 등 - Back Data 전처리 작업에 시간을 많이 들였다. - Excel이 익숙했기에 데이터는 엑셀로 필요한 부분을 먼저 전처리 가공하였다. - 그 후 엑셀파일을 json 파일로 변경하기 위해 "Excel to Json" 이라는 키워드로 구글링하여 웹 사이트를 통해 파일을 변환하였다. - json 파일을 받았지만 DB에 업로드할 수 있는 형식이 아니다. (형식은 model을 지정하고, fields에 데이터를 넣으며, 필요시 pk도 들어간다.) 아래 파이썬 파일을 활용해 알맞은 형식의 DB를 생성할 수 있었다. import json with open('./data/place_raw.. 2022. 12. 19.
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.
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.
반응형