본문 바로가기

프로그래밍/Web

(17)
[JavaScript] Promise, async/await Promise 비동기 작업을 처리할 Promise 리턴 함수 작성function doAsyncFunction() {return new Promise( (resolve, reject) => {시간이 걸리는 작업 작업 완료 후 resolve() 를 호출해 준다.resolve( outData ); 작업이 실패한 경우 reject() 를 호출해 준다.reject( errData );});} then() 을 사용해 처리 결과 받는 두가지 방법 1. then() 호출시 두인자( resolve(), reject() ) 를 전달doAsyncFuntion().then( (outData) => {resovle() 결과 처리}, (errData) => {reject() 결과 처리}); 2. reject()는 catch() ..
WebXR + three.js XR navigator.xr 지원여부 검토 if( navigator.xr && XRSession.prototype.requestHitTest ) { // XRDevice 얻기 } else { // 미지원 브라우저 } XRDevice // XRDevice 얻기 this.device = await navigator.xr.requestDevice(); // canvas 생성하고, 출력을 위한 xr 컨텍스트를 얻는다. var outputCanvas = document.createElement('canvas'); var ctx = outputCanvas.getContext('xrpresent'); XRSession // XRSession 얻기 const session = await this.device.reque..
javascript 모듈화 패턴 prototype 을 이용한 패턴일반적인 방식으로 동일하게 사용되는 내용을 prototype에 정의해 불필요한 메모리 할당을 막게 된다. MyPackage.MyClass = function() {// 멤버 어트리뷰트this.object1 = something;this.object2 = {key1: value,key2: value,} }; MyPackage.MyClass.prototype = {constructor: MyPackage.MyClass, // 공통 멤버 정의memeber: function() {}}; 즉시실행 함수를 이용한 패턴크게 prototype 방식을 즉시실행 함수로 한번더 감싼 형태로 this를 붙이지 않은 객체들과 내부 기능처리 함수들을 캡슐화 하는 효과가 있다. MyPackage.M..
VSCode 웹 디버깅 Live ServerDebugger for Chrome Live Server 기본포트 : 5500 launch.json { // IntelliSense를 사용하여 가능한 특성에 대해 알아보세요. // 기존 특성에 대한 설명을 보려면 가리킵니다. // 자세한 내용을 보려면 https://go.microsoft.com/fwlink/?linkid=830387을(를) 방문하세요. "version": "0.2.0", "configurations": [ { "type": "chrome", "request": "launch", "name": "localhost에 대해 Chrome 시작", "url": "http://localhost:5500", "webRoot": "${workspaceFolder}", "source..
openssl * openssl.cnf 경고 발생하는 경우 해당 위치 지정set OPENSSL_CONF=c:\apache\conf\openssl.cnf 개인키 생성 : 일단 -des3 옵션없이 생성한다.> openssl genrsa -out server.key 2048 csr : 원하는 알고리즘으로 csr 생성기본(sha1)> openssl req -new -key server.key -out server.csr sha256> openssl req -new -sha256 -key server.key -out server.csr Common Name : 도메인 or ip 주소 입력 자체서명 인증서 생성> openssl x509 -req -days 365 -in server.csr -signkey server_rsa.ke..
Windows 레드마인 설치(Bitnami) bitnami redmine 3.4.2 on Widows 명령어 실행 : 설치폴더\use.redmine.bat 실행 필요한 번들설치 bundle install --without development test --no-deployment 플러그인 설치 InstallPath/apps/redmine/htdocs/plugins 전체설치 bundle exec rake redmine:plugins RAILS_ENV=production 특정 플러그인 bundle exec rake redmine:plugins NAME=name RAILS_ENV=production 플러그인 삭제 bundle exec rake redmine:plugins:migrate NAME=plugin_name VERSION=0 RAILS_ENV=p..
Gradle Wrapper 현재 gradle 버전에 해당하는 wrapper 생성$ gradle wrapper 현재 디렉토리에 gradlew , gradlew.bat 파일과 gradle 디렉토리가 생성된다. 특정 버전의 gradle wrapper$ gradle wrapper --gradle-version 2.0 build.gradle wrapper tasktask wrapper(type : Wrapper) {gradleVersion = '2.0'}$ gradle wrapper
스프링 요청/응답 컨트롤러 선언 : 스프링 4.0 부터 @RestController 어노테이션을 사용하면 RESTful 컨트롤러로 인식되어, 요청과 응답이 간소화된다. @RestController 는 @Controller, @ResponseBody가 합쳐진 것으로 자동으로 모든 메쏘드에 @ResponseBody가 포함되도록 한다. 뷰를 혼합해 사용하는 경우는 @Controller 로 선언후에 필요한 메쏘드에 @ResponseBody 를 선언해준다. @RestController @RequestMapping(value="/root) @RequestMapping(value="/hello",method=RequestMethod.GET) @RequestMapping(method=RequestMethod.POST) @RequestP..