저번에 쓴 글에서는 오류가 있었던게 내가 직접 파일 시스템에 올렸었던게 적용이 되어있는 상태였다. 파일 시스템을 삭제 시킨 뒤에는 정상적으로 업로드 되지 않는 문제점이 있었다. tf model 로드 tf.model을 로드하는 방법으로 여러가지 방법이 있었다. 1. 로컬 저장소 const model = await tf.loadLayersModel('localstorage://my-model'); 2. indexedDB const model = await tf.loadLayersModel('indexeddb://my-model'); 3. HTTP const model = await tf.loadLayersModel('http://model-server.domain/download/model.json'); 4..
다음 사진은 tensorflowjs coverter로 변환한 후 저장된 모습이다. 모델을 웹상으로 업로드 하는 코드는 다음과 같다. Node.js로 실행할 때 파일 시스템에 직접 액세스 하는 방법으로 모델을 저장할 수 있다. await model.save('file:///path/to/my-model'); model을 로드하는 방법으로 tf.loadLayersModel api를 사용하였다. const model = await tf.loadLayersModel('localstorage://my-model-1'); 완성된 코드는 다음과 같다. await 문법을 사용하기 위해서는 async 예약어를 사용해주어야 한다고 한다. const express = require('express'); const tf = ..
pip install tensorflowjs 설치 중 cp949 에러가 발생하였다. UnicodeDecodeError: 'cp949' codec can't decode byte 0xed in position 23: illegal multibyte sequence 다른 블로그를 참고해보니 setup.py, site.py에 파일을 읽을 때 encoding=utf-8을 추가하면 된다고 했다. 나는 encoding=utf-8이 이미 추가 되어있는 상태였다. 제어판>>날짜,시간 또는 숫자 형식 변경>>관리자 옵션>>시스템 로컬 변경에서 Beta: 세계 언어 지원을 위해 Unicode UTF-8 사용을 체크해줬다. 이후 재부팅하니 정상적으로 설치되었다. tensorflowjs_converter --input_for..
express에서 mysql을 연동하기 위해 mysql을 설치하였다. mysql connection 생성 새로운 커넥션을 생성했다. - Connection Name : icelink - Username : hoyoung - password : 1234 하지만 비밀번호를 입력해도 Cannot Connect to Database Server, your connection attempt failed for user ~ 이라는 에러가 뜨며 접속되지 않았다. create user 'hoyoung'@localhost identified by '1234'; grant all privileges on *.* to hoyoung@'localhost'; 권한을 설정해줌으로서 해결되었다. express에서 database ..
URL 및 특정한 HTTP 메소드로 클라이언트의 요청에 앱이 응답하는 방법을 결정하는 것을 라우팅이라고 한다. app.METHOD(PATH, HANDLER) app은 express의 인스턴스이다. const express = require('express'); const app = express(); METHOD는 HTTP 메소드이며 GET, POST, PUT, DELETE 등이 있다. PATH는 서버에서의 경로를 말한다. HANDLER는 라우트가 일치할때 실행되는 함수이다. app.get("/", (req, res)=> { res.send("Got a GET request"); }); app.post('/', function (req, res) { res.send('Got a POST request')..
자바스크립트에서 html 요소를 가져와 사용하는 경우가 있는데 html 요소를 정리해보려고 한다. 1. tag 소스 코드에 주석을 삽입하는데 사용하며 주석은 표시되지 않는다. 2. 모든 html 파일은 선언으로 시작해야하며 문서 유형에 대한 브라우저의 정보를 나타낸다. 3. tag a 태그는 한페이지에서 다른 페이지로 연결하는데 사용되는 하이퍼링크를 정의하며 주요 속성으로 href 속성이 있다. 4. tag 약어를 정의할 때 사용하며 요소 위에 마우스를 가져갈때 약어의 대한 설명을 title 속성으로 표현한다. CSS is a language that describes the style of an HTML document. 5. tag 이미지 맵 내부의 area 영역을 정의하고 area 요소는 항상 ma..
자바스크립트에서 변수 선언은 var, let, const 키워드로 할 수 있다. 자바스크립트는 변수 선언이 런타임중에 일어나지 않고 함수, 변수 선언문을 먼저 실행하고 이를 호이스팅이라고 한다. 선언 단계를 통해 자바스크립트 엔진에 변수의 존재를 알린다. 암묵적으로 undefined을 할당해 초기화 한다. 초기화 단계를 통해 값을 저장하기 위한 메모리 공간을 확보한다. 재할당 var, let 키워드는 새로운 값을 재할당하는 것에 문제가 없다. const 키워드는 새로운 값을 재할당할 수 없다. var a = 10; a = 20; console.log("a is: ", a); // 20 let b = 10; b = 30; console.log("b is: ", b); // 30 const c = 10; /..
addEventListener()는 documnet 요소에 event를 부여할 때 사용. addEventListener(event, 실행할 함수) 로 정의한다. 총 3가지의 방법으로 정의할 수 있다. button.addEventListener('이벤트', 함수명) button.addEventListener('이벤트', 익명함수정의); button.addEventListener('이벤트', ()=>{}); 대부분 화살표 함수를 사용하여 정의한다. var button = document.getElementById('btn'); function clickButton() { alert("버튼을 클릭하였습니다."); } // case 1 button.addEventListener('click', clickButt..
웹 페이지가 로딩되었을 때 로딩된 이벤트에 맞춰 원하는 함수, 코드를 호출할 수 있도록 한다. 대표적으로 window.onload 콜백함수가 있다. window.onload window.onload = function() { alert("윈도우 창이 켜졌을 때 바로 실행됨"); } 실행화면 한번에 실행될 load 메서드가 1개보다 많을 시 마지막 onload 메서드만 실행된다. window.onload = function() { alert("윈도우 창이 켜졌을 때 바로 실행됨"); } window.onload = function() { alert("한번에 실행 될 onload 메소드가 1개보다 많을 시 제일 마지막만 실행."); } 실행화면 태그에서 onload 실행화면 특정객체에서 onload 0 실행..
prototype 프로퍼티 모든 함수는 객체로서 prototype 프로퍼티를 가지고 있다. prototype 프로퍼티는 함수가 생성될 때 만들어지며 constructor 프로퍼티 하나만 있는 객체를 가리킨다. constructor 프로퍼티는 prototype 프로퍼티를 참조하며 서로 참조하는 관계를 가진다. 함수의 다양한 형태 자바스크립트에서 함수 표현식에서 함수이름은 필수 사항이 아니다. 함수이름을 붙이지 않은 것을 익명함수라고 하고 대표적으로 콜백함수가 있다. 콜백함수 콜백 함수란 코드를 통해 명시적으로 호출되는 함수가 아닌 어떤 이벤트나 특정 시점에 도달했을때 시스템에서 호출되는 함수를 말한다. 이벤트 발생 -> 이벤트 핸들러가 함수 호출 -> 콜백함수 (개발자가 등록) window.onload 이..