전체 글 248

18.5일차 / socket.io 적용

socket.io에 대해 내가 쓴 글 https://fullfish.tistory.com/115 socket.io socket.io를 이용해서 실시간 채팅 구현하기 서버 코드 //index.js var app = require('express')(); var server = require('http').createServer(app); // http server를 socket.io server로 upgrade한다 var io.. fullfish.tistory.com 사용예시 서버 코드 //index.js const hashtag_delete_schedule = require("./controllers/diary/hashtag_delete_schedule"); require("dotenv").config(..

socket.io

socket.io를 이용해서 실시간 채팅 구현하기 서버 코드 //index.js var app = require('express')(); var server = require('http').createServer(app); // http server를 socket.io server로 upgrade한다 var io = require('socket.io')(server); // localhost:3000으로 서버에 접속하면 클라이언트로 index.html을 전송한다 app.get('/', function(req, res) { res.sendFile(__dirname + '/index.html'); }); // connection event handler // connection이 수립되면 event hand..

18일차 / google map api

google map api에 대해 내가 쓴 글 https://fullfish.tistory.com/111 구글 맵 API https://console.cloud.google.com/google/maps-apis/start?hl=ko Google Cloud Platform 하나의 계정으로 모든 Google 서비스를 Google Cloud Platform을 사용하려면 로그인하세요. accounts.google.com 우선 해.. fullfish.tistory.com 위 게시물의 기본적인 코드는 지정된 경도 위도값만을 불러오는것인데 현재 프로젝트에서의 구글맵의 쓰임새는 가계부 작성시 자동으로 gps값이 db에 저장되며 나중에 해당 가계부 조회시 물건을 산 장소을 알 수 있게끔 하는것이다 그러므로 가계부 페이지..

17일차 / n-Gram구현 및 개선, 리벤슈타인 거리 시간,공간 복잡도 개선

n-Gram n-gram에 대해 내가 쓴 글들 https://fullfish.tistory.com/109 n-Gram n-Gram이란 문장의 유사도를 비교하는 방법중 하나로 문장을 쪼개서 비교한다 예를 들어 3-gram으로 '과자중에 제일 맛있는건 새우깡' '제일 맛있는 과자는 무엇일까' 이 두문장을 비교한다면 각 문 fullfish.tistory.com https://fullfish.tistory.com/110 n-Gram 개선 및 고찰 자음 모음단위로 n-Gram 저번에 구현한 n-gram https://fullfish.tistory.com/109 n-Gram n-Gram이란 문장의 유사도를 비교하는 방법중 하나로 문장을 쪼개서 비교한다 예를 들어 3-gram으로 '과자중에 제일 맛있.. fullfi..

구글 맵 API

https://console.cloud.google.com/google/maps-apis/start?hl=ko Google Cloud Platform 하나의 계정으로 모든 Google 서비스를 Google Cloud Platform을 사용하려면 로그인하세요. accounts.google.com 우선 해당 링크에 들어가서 로그인 및 다음 절차들을 완료해준다 구글 맵 api가 기본적으로는 유료지만 한달 200달러까지는 무료이며 api로 위치만 받아오는 행위는 1회에 0.007달러라서 사실상 공부목적으로 사용한다면 무료나 마찬가지이다 기본적인 코드 위도, 경도에다가 위도, 경도를 입력해준후에 API_KEY에 본인 key값을 입력해주면된다 zoom은 처음 떳을때의 확대정도인데 개인적으로 17정도가 적당해보인다 ..

n-Gram 개선 및 고찰

자음 모음단위로 n-Gram 저번에 구현한 n-gram https://fullfish.tistory.com/109 n-Gram n-Gram이란 문장의 유사도를 비교하는 방법중 하나로 문장을 쪼개서 비교한다 예를 들어 3-gram으로 '과자중에 제일 맛있는건 새우깡' '제일 맛있는 과자는 무엇일까' 이 두문장을 비교한다면 각 문 fullfish.tistory.com 에서는 글자를 음절 단위로 잘라서 썼었다 예를 들어 안녕하세요를 3-Gram으로 한다면 ['안녕하', '녕하세', '하세요']로 나눴는데 활용하기 나름이지만 이번에는 자음 모음단위로 나뉘어 봤다 ['ㅇㅏㄴ', 'ㅏㄴㄴ', 'ㄴㄴㅕ' ...] 해당 방법의 장점은 오타나 어미가 달라도 검색이 될 가능성이 높아지게끔 허들을 낮출 수 있다 우선은 문자..

n-Gram

n-Gram이란 문장의 유사도를 비교하는 방법중 하나로 문장을 쪼개서 비교한다 예를 들어 3-gram으로 '과자중에 제일 맛있는건 새우깡' '제일 맛있는 과자는 무엇일까' 이 두문장을 비교한다면 각 문장을 3글자씩 자른다. "과자중에 제일 맛있는건 새우깡" [ '과자중', '자중에', '중에 ', '에 제', ' 제일', '제일 ', '일 맛', ' 맛있', '맛있는', '있는건', '는건 ', '건 새', ' 새우', '새우깡' ] "제일 맛있는 과자는 무엇일까" [ '제일 ', '일 맛', ' 맛있', '맛있는', '있는 ', '는 과', ' 과자', '과자는', '자는 ', '는 무', ' 무엇', '무엇일', '엇일까' ] 그리고 각 요소를 비교해서 유사도를 측정한다 https://too-marc..

레벤슈타인 거리 시간복잡도와 공간복잡도 개선

이전 게시물 레벤슈타인 거리 (Levenshtein Distance) 레벤슈타인 거리란 문자열의 유사도를 검사하는 기본적인 알고리즘으로 편집 거리라고도 부름 a문자열에서 b문자열로 편집할때 몇번의 조작이 필요한지를 도출해낸다 예를들어 '가나다라'와 ' fullfish.tistory.com 기존 코드 //레벤슈타인 거리 코드 exports.levenshteinDistance = (str, search) => { if (search === undefined) return 0; if (str === search) return 0; let aLen = str.length; let bLen = search.length; if (aLen === 0) return bLen; if (bLen === 0) return ..

16일차 / axios 요청 작성, fuzzy검색 및 정렬, 리벤슈타인 거리

한것 axios 요청 작성 서버에서 퍼지검색을하고 프론트에서 정렬을 했었는데 검색과 정렬모두 서버에서로 변경 리벤슈타인거리 추가 (퍼지검색 -> 퍼지검색한거 유사도 정렬 -> 리벤슈타인 거리 적합한것 추가) 리벤슈타인거리에 해당하는것은 로직이 달라서 하이라이트 별개로줌 axios 요청 예시 export function diaryGet(trip_id, search) { let url = `${endpoint}/diary?trip_id=${trip_id}`; if (search) url += `&search=${search}`; return axios.get(url, { headers: tokenHeader(), 'Content-Type': 'application/json', }); } export defa..

카테고리 없음 2022.05.12