간담회 정리

·2024년 3월 18일

프로젝트

목록 보기
30/57

켜놔야 하는 것

  • 네이버지도
  • 피그마
  • db

1. 플젝 주제

  • 카페탐색
  • 탐색 지역은 대전
  • 처음엔 전국으로 할까 하다가, 일단 대전으로 좁게 잡았고 추후에 프로젝트 진행상황에 따라 지역을 확대 시키고싶은 마음도 있음

2. 플젝 주제 선정 이유

  • 원하는 분위기나 시설의 카페를 찾고싶은데,
  • 네이버지도에서 검색된 카페들을 일일히 들어가서 분위기를 사진으로 봐야하고 시설이 어떤지 봐야하는 번거로움이 있음.
  • 그래서 원하는 지역/분위기/시설을 검색필터 버튼으로 클릭하면 필터링해서 보여지는 기능을 구현하고 싶었음.

3. 플젝 메인 기능 (플젝으로 직접 보여주기)

🔹 '메인' 페이지 (피그마도 보여주기)

  • 날씨에 따라 카페 추천검색어를 표시해주고, 카페를 추천해줌
  • 기온에 따라 사진과 문구도 바뀜 (피그마)
  • 면담때 카페탐색을 프로젝트로 하고싶고 기능을 이렇게 넣고싶다고 말씀드리니, F인척 하는 T를 구현하면 좋을 것 같다고하신부분이 공감이 많이 됐음
  • 카페 추천은, 설문조사를 통해 150분의 참여 결과를 토대로 특정 날씨에 방문하고싶은 카페를 선정하여 추천해줌

🔹 '카페찾기' 페이지

  • 카페 전체보기
  • 사이드바로 검색필터버튼
  • 필터링

🔹 '나의 찜' 페이지

  • 좋아요(찜)을 통해 스크랩

🔹 대부분의 기능들을 구현 하기전 해야 했던 '크롤링' (62일차)

  • 위의 기능들을 구현하기 위해서는 크롤링으로 네이버지도에서 검색되는 카페들의 데이터를 긁어오는게 우선이었음
    • 셀레늄을 사용해서 크롤링

      • 제이숲 : 정적인 웹페이지 크롤링에 좋음
      • 셀레늄 : 동적인 웹페이지 크롤리에 좋음
      • 네이버지도 동적웹페이지 -> 셀레늄 선택
  • 처음에 다른 사이트완 다르게 네이버지도 크롤링이 쉽지않아서 카카오지도를 해와야하나 잠시 고민도 했지만 카카오지도엔 사진이 영업시간 정보같은게 안나와있는 업체도 많았다. 무조건 어떻게해서든 네이버지도를 해결했어야했고 1주일정도 걸렸다.
  • 네이버지도 켜서 보여주기

    • 네이버 지도 -> 동적 페이지 -> 많은 프레임들이 존재
    • 카페 리스트가 나오는 부분 / 카페 정보가 나오는 프레임이 다름
    • click() 함수

      • 네이버 지도에서 동적으로 클릭하는 이벤트를 발생시켜 프레임을 띄워서 html을 가져와야함
      • 영업시간 프레임 내에서 영업시간'도' click 함수 사용해야했음

4. 기능 구현 중 문제상황

🧡 이미지크롤링 (63일차)

  • 카페 이미지url 크롤링 로직 구현
    • 카페의 데이터를 갑자기 크롤링해오지 못함
  • NoSuchElementException
    • 해당 요소를 찾지 못함
    • 왜?
    • 추측 1 : 프레임간 이동이 제대로 이루어지지 않나?
    • 프레임간 이동할 수 있는 함수 다시
    • 아니였음
  • 분석
  • img src가 아니라 style 속성에 IMG URL 들어가있었음!
  • style 속성가져오는 함수
  • 그걸 파싱 하여 url만 뽑아내는 메서드 -> 해결

🧡 10개씩만 크롤링해오는 문제 (62-63일차)

  • 자바스크립트를 사용하여 동적으로 스크롤링
    • 네이버에서 제한
    • 아직 해결 못했음
    • 크롤링을 여러번

🧡 db에 이미지 url 5개를 _담지 못하고 에러 발생 (64일차)

  • 어떤 카페는 대표 이미지가 5개가 안돼서 안됨
  • switch 문 사용하여 해결

🧡 여러번 크롤링 시 카페가 DB에 중복으로 담기는 문제 (64일차)

  • INSERT하기 전에, 중복여부를 체크하는 함수
    • 없으면 INSERT
    • 있으면 INSERT 하지마

🧡 결국 원하는 데이터들을 모두 db에 담을 수 있게 됨 (64일차)

🧡 크롤링시점 ? (65일차)

  • beforeActionInterceptor

  • 접속이 1분

  • 셀레늄의 단점 -> 속도

  • 데이터를 미리 크롤링

    • 정기업데이트 -> 특정시간마다
    • 스프링에 있는 schedule 어노테이션 (예정)
      • 테스트 메서드만 구현해놓은 상황

🧡 크롤링 할때마다 크롤링 브라우저가 뜨는 문제 (보여주기)

  • 드라이버 옵션 중에 headless 옵션 X
    • 네이버 지도는 프레임간 이동
  • 해결을 못했지만 좀 더 연구해볼 예정

🧡 크롤링 보여주고 -> db 담긴거 확인시켜주고 -> 카페 검색 페이지 보여주고

5. 구현 예정인 기능들

  • 크롤링하느라 아직 구현 못한 것들이 많음
  • 크롤링 해왔으니, 기능 구현은 이제 본격적으로 시작이라고 보면 됨
    • 필터버튼
    • 메인페이지 카페 추천기능
    • 날씨에 따라 바뀌는 사진/문구/추천검색어

6. 발표 마무리 하기 전 질문

profile
hello world

0개의 댓글