WebGL 결과물은 보통 PNG 이미지와 비교를 하는 방식으로 테스팅을 진행한다. canvas의 context가 2D 인 경우, context의 imageData를 추출하고 pixelmatch의 도움을 받아 다음과 같이 진행하면 된다(imageData 자체를 비교해도 무관하다). const width = targetCanvas.width; const height = targetCanvas.height; const refCanvas = document.createElement("canvas"); refCanvas.width = width; refCanvas.height = height; const refContext = refCanvas.getContext("2d"); refContext.drawImage..
JavaScript 에서도 getter, setter 를 지원한다. 사용하는 방법에 대한 설명은 어디에서나 찾을 수 있었는데, 언제 그리고 왜 사용해야하는지는 찾을 수 없어서 직접 케이스를 만들어 보았다. Use case: 자료구조형 클래스 선언 // 기본 클래스 선언 class Bounds { constructor(southWest, northEast) { this.south = southWest.south; this.west = southWest.west; this.north = northEast.north; this.east = northEast.east; } } southWest, northEast 값을 한 번에 얻고 싶다는 요구 사항이 들어온다면? class Bounds { constructor..
TIF: Today I Failed실패담입니다. 아직 해결하지 못한 문제입니다. - 설명 내부 로직에서만 공유되어야하는 값의 경우, private 변수 선언을 통해 외부에서 접근할 수 없도록 해야합니다. 하지만, JavaScript 에서는 private 변수를 지원하지 않습니다. 따라서, 기괴한? 방법을 사용해 이를 우회해 구현해야 합니다. - 시도_(언더바) 로 private 변수 구분 후, 난독화 처리(옛날 방식). 효과: 난독화되면 해당 값이 무엇을 의미하는지 알 수 없으므로, 의도적인 사용을 방지할 수 있다. 단점: 여전히 접근은 가능하다. 난독화 라이브러리와 babel 과의 호환문제로, ES6+ 에서는 사실상 사용이 불가하다. (참고: https://github.com/terser-js/ters..
- Total