주어진 문제 현재는 퍼펫티어를 사용하여 뉴스를 크롤링 해왔지만 해당 뉴스에서 문맥을 파악하지못해 실제 사건사고가 아님에도 인식이 되는 문제가 발생. 자연어 처리와 기계학습을 통하여 최대한 문맥을 파악할수 있도록 하려면 파이썬을 사용해야 했기 때문에 파이썬의 셀리니움과 뷰티풀숲을 사용하여 크롤링으로 전환하게 됨. selenium, BeautifulSoup 사용이유 selenium도 크롤링 가능, BuautifulSoup도 크롤링 가능 근데 왜 같이써? 조금더 효과적으로 사용하기 위해 함께 사용하게 되었다. selenium은 동적인 웹페이지에서 데이터를 수집하는것에 유용하다. 페이지를 옮겨 다닌다거나, javascript를 사용하는것에 있어서 브라우저를 제어하면서 스크랩을 할수가 있다. 하지만 정적페이지를 ..
AOP - 관점(관심) 지향 프로그래밍 ■ Aspect Oriented Programming의 축약어이다. ■ 핵심 로직과 부가 기능을 분리하여 애플리케이션 전체에 걸쳐 사용되는 부가 기능을 모듈화 하여 재사용 할수 있도록 지원. ■ OOP에서 바라보던 관점을 다르게 하여 부가기능적인 측면에서 보았을때 공통된 요소를 추출. ■ 가로(횡단)영역의 공통된 부분을 잘라냈다고 하여, 크로스컷팅(Cross-Cutting)이라고도 부름. 역할 - 인프라, 부가기능의 모듈화 ° 모니터링, 로깅, 동기화, 오류검사 및 처리, 성능 최적화(캐싱)에 사용됨. ° 그 외의 각각 모듈들의 주 목적 외에 필요한 부가적인 기능에 사용. aop를 사용하는 이유 → oop에선 공통된 기능을 재사용하는 방법으로 상속이나 위임을 사용하..
공간데이터란? • 지구 표면에 위치와 관련된 정보를 포함하는 데이터( 객체와 사건, 현상 ) • 실세계에서 객체, 사건, 현상이 위치 정보(좌표, 주소 등)을 포함한 형태로 존재 • 지정된 기간 동안 위치 정보를 다른 비즈니스 데이터 세트의 특성 또는 속성과 결합한다. • 지리 정보 시스템(GIS)를 활용하면 공간 데이터를 표현하고 분석할 수 있다. • 공간 데이터를 사용하여 패턴을 식별하고, 새로운 추세를 평가하고, 잠재적인 위협과 위험을 식별하고, 데이터 기반 의사 결정을 내릴 수 있다. • 비상 대응과 환경 관리에 매우 중요 하다. 공간 데이터의 이점 - 위치 기반 서비스 • 공간데이터를 활용하여 위치 기반 서비스를 제공하여 사용자에게 해당위치에 대한 정보를 제공하고, 주변을 안내할 수 있다. - ..
watchPosition vs getCurrentPosition 실시간으로 현재 위치 정보를 받아 와야 하는가? 현재 위치 정보만 단한번 받아와야 하는가? 우리 프로젝트의 플로우를 다시한번 생각해 보았다. 이런 식인건데 유저는 어차피 도움 요청할때 유저는 버튼을 클릭하니까 그때 위치를 받으면 된다. Helper는 요청을 수락할때 해당 버튼을 누르면 그때 위치를 받으면 된다. 그러면 우리는 getCurrentPosition을 사용하면 된다! 라고 생각을 했다. 하지만 여기서 간과한것이 하나 있었다. 지금까지는 서버로 배포한 상태가 아니여서 로컬을 사용하고 로컬컴퓨터의 주소만 가져오고 그 외의 비교군 주소는 인섬니아로 테스트 했기 때문에 helper가 바로 수락을 할수 있었던거다. 왜냐하면 내가 보내고 내가..
주어진 상황 JavaScript로 유저의 위치를 구하였고 유저와 헬퍼의 최단거리까지 구하였다. 하지만 우리는 NestJs로 개발을 하여야 했고 또한 해당거리내에 있는 유저들을 찾아야 했다. 해야할 목록 1. JavaScript로 테스트 해보았던 기능들 NestJs로 구현 → javascript에서는 서버단과 연결하는 부분을 주로 하고 로직적인 부분을 최대한 서비스 로직으로 가져옴. 이유 : 두 지점간의 거리를 구하는 공식같은 부분은 여러 서비스에서 계속 사용하기 때문에 서비스 단에서 유지 보수및 재사용 하기 위해 서비스로직으로 분리하였다. 2. 유저 위치기반 주변 유저 찾기 → Spatial database 활용(MySQL, 벡터데이터 모델) 공간데이터를 사용하는 이유 지금 사용하려는 데이터 베이스에서 ..
주어진 상황 프로젝트에서 맡은일중 하나인 실시간 구조 요청이다. 유저 1, 유저 2, 유저 3이 존재한다고 가정한다. 유저 1이 도움이 필요한 상황이다. 당근에서 처럼 상황이 ~~한데 도와주세요 요청을 보낸다. 이 상황은 구급 • 긴급 상황은 아니지만 도움이 필요할때 사용하기 위한 기능이다. 즉, 119에 신고할만한 정도는 아니지만 혼자서는 해결할수 없는 정도의 일이라고 가정한다. 이때 유저 1이 sos버튼을 누르면 주변에 나를 도와줄 수 있는 유저를 찾아서 알려준다. 유저 2와 유저 3은 해당서비스에 등록된 사람이고 등록된 사람안에서 위치 기반서비스가 허용된 사람의 위치를 찾는다. 구현해야하는 기능 1. 개개인 유저들의 위치 정보를 저장 2. 구조 요청을 하는 유저의 위치를 기준으로 주변의 유저 탐색 ..
진행 상황 저번에는 크롤링의 모든 뉴스를 가져오는것을 진행했다. 하지만 이번 프로젝트에서 해결해야하는 부분은 가져온 게시글들 중에서 중복된것들을 최대한 정리를 해야했다. 1 "강동구 살인예고 10대 남성, 구속영장 기각" 2 "여고 칼부림 협박글 10대 男 구속영장 기각…“사유 불충분”" 3 '"여고서 칼부림 한다" 글 작성한 10대 남학생 구속영장 기각' 4 "'여중·여고 칼부림 예고' 글 작성한 10대 구속영장 '기각'" 5 "여고 칼부림 협박글 10대 구속영장 기각…'사유 불충분'" 6 "'강동구 여중·여고 칼부림 예고' 10대 구속영장 기각" 7 "'코인 싸게 판매'로 유인…돈 받고 폭행·도주한 간 큰 20대 10명 검거" 위 7개는 1번째부터 7번째의 뉴스의 타이틀이다. 뉴스는 한 미디어에서만 ..
Puppeteer | Puppeteer build pptr.dev GitHub - puppeteer/puppeteer: Node.js API for Chrome Node.js API for Chrome . Contribute to puppeteer/puppeteer development by creating an account on GitHub. github.com -- puppeteer 크롤링을 고르게된 이유 python에서는 selenium이 유명하다 selenium은 크롬에서 뿐만 아니라 다른브라우저에서 사용가능하다. node에서는 puppeteer라고 한다. puppeteer는상대적으로 빠른 속도를 자랑한다. 하지만 크롬에서만 사용이 가능하다. 나의 상황 뉴스의 정보를 끌어와야함. 네이버로 치면 ..