본문 바로가기

WEB/JavaScript

(3)
[JS] Fuse.js 지난 포스트에서 손글씨를 텍스트로 추출하는 과정을 보였다.최대한 높은 정확도로 손글씨를 텍스트화 하였지만, 여전히 남은 오차를 줄일 방법이 필요했다.다른 라이브러리나 api 혹은 전처리나 후처리 등이 많이 있겠지만, 일단 서비스의 환경에 포인트를 맞추기로 하였다. 다행히도 해당 서비스에는 이미 작성된 유저 리스트가 존재한다.그 말은 즉, 유사한 텍스트로만 추출해도 비교를 통해 유추해낼 수 있다는 뜻이다.덕분에 어려운 길로 가지 않고 간단히 처리해볼 수 있었다. 흔히 검색 등에 사용되는 fuzzy-search 라이브러리인 Fuse.js를 여기에 적용해 볼 것이다.fuzzy-search란 간단히 말하면 입력받은 문자(패턴)과 유사한 문자열을 검색하는 '유사 검색'기술이다. 일단 설치부터 한다.npm i fu..
[JS] Promise Promisepromise는 자바스크립트에서 이전 코드의 처리가 완료되기 전에 다음 코드를 실행하는 '비동기 처리'를 위한 객체이다. 이 비동기 처리의 특성에 의한 문제 중 하나가 이전 코드의 작업의 결과가 준비되지 않아 다음 코드 실행 시에 발생하는 에러이다.이를 해결하기 위한 단순한 방법은 콜백 헬이 발생하는 방법인데, 간단히 소개하자면db.query(query, param, (err, result) => { if (err) //에러 처리 db.query(query2, result.data, (err, result2) => { if (err) //에러 처리 db.query(query3, result2.data, (err, result3) => { if (e..
[JS] 옵셔널 체이닝: "?." 웹을 만들다 보면, 특히 데이터를 다룰때 흔히 볼 수 있는 " TypeError: "로 시작하는 에러가 있다.이 에러는 많은 경우에서 어떤 데이터를 가져올 때 그 값이 ' undefined '이거나 ' null '인 경우에 발생한다. 물론 데이터가 없으면 표현되어서는 안되는 것도 있지만, 종종 데이터가 존재하지 않으면 존재하지 않는 대로 랜더링은 지속해야하는 경우가 있다.그럴때 사용하는 문법이 옵셔널 체이닝, ' ?. ' 이다. const users = [{ name: "홍길동", age: 20 }, { name: "김철수", age: 26 }];const userPh = users[0].ph; //TypeError: Cannot read property 'ph' of undefinedconst use..