타입스크립트는 자바스크립트로 변환되어 동작하므로 인터페이스를 비교할 방법은 없습니다. 자바스크립트에서 사용하는 꼼수를 그대로 사용해야 한다는 뜻입니다. 0. 테스트 환경 만들기 테스트를 위해 인터페이스 2개를 아래와 같이 만듭니다. export interface Test1Interface { Test1_string: string, Test1_int: number, } export interface Test2Interface { Test2_string: string, Test2_int: number, } 아래와 같이 인터페이스를 가지고 있는 변수를 만듭니다. (저는 클래스를 선호하기 때문에 클래스로 작성했습니다.) Test1Inf: Test1Interface = { Test1_int: 1 , Test1_s..
일반적인 언어에서 열거형(enum) 코드의 일관성과 가독성을 높이는 강력한 기능 중 하나입니다. (= 높은 생산성) 근데 타입스크립트 관련 글을 보다 보면 열거형을 쓰지 말라는 소리를 종종 볼 수 있습니다. 이것은 타입스크립트가 자바스크립트로 변환되는 과정에서 많은 비용이 드는 형식으로 바뀌기 때문입니다. 1. 타입스크립트(TypeScript)의 열거형이 자바스크립트로 변환될 때.... 타입스크립트가 자바스크립트로 변환될 때 열거형은 두 가지 문제가 발생합니다. 1) 역방향 접근을 위해 함수형으로 변환됩니다. 2) 이 문제 때문에 사용하지 않는 코드 정리(트리 쉐이킹, Tree Shaking)로 제거되지 않는 코드가 생성됩니다. 생성된 코드를 보면 아래와 같습니다. //타입스크립트 enum Test1 {..
1. 문제의 시작 웹팩 개발 서버(webpack dev server)를 'ngrok'로 외부에 노출 시켜서 접속했더니 'Invalid Host header' 에러가 납니다. 2. 'Invalid Host header'의 원인 웹팩 개발 서버에서는 호스트 검사를 해서 외부 접속을 차단하기 때문에 발생한다고 합니다. 3. 해결 방법 외부 접속도 허용하면 됩니다. 웹팩 개발 서버 설정에 다음을 추가합니다. allowedHosts: "all" 예전 버전(3 이전 버전)의 경우 disableHostCheck: true 를 추가해야 합니다. 이제 잘 접속됩니다. 마무리 웹팩 개발 서버로 운영하는 경우는 거의 없을 거 같은데 설정 하다보면 '그냥 운영해도 되지 않을까?' 라는 생각이 들게 합니다 ㅎㅎㅎ
비주얼 스튜디오를 업데이트(2023년 3월 기준 17.5.3 버전)했더니 잘되던 'JSDoc'주석을 자동 생성해주는 기능이 동작하지 않습니다??????? 원래는 '/**'를 입력하면 아래와 같이 'JSDoc'형식의 주석이 자동으로 생성됩니다. * 해결 방법을 알고 싶다면 '2. 특정 옵션이 원인이다.' 부터 보시면 됩니다. * 1. 삽질의 시작 결국 비주얼 스튜디오의 피드백 기능을 통해 문의했습니다. 근데 업데이트해 보라는 답변만 달아놓고 질문을 닫아버렸습니다;;;;;; 마침 17.5.3이 올라와 있어서 업데이트 했으나 마찬가지 ㅋㅋㅋㅋㅋㅋ 재설치 결국 재설치를 했더니 해결이 되었습니다. 백업된 옵션을 불러왔더니.... 근데 백업된 옵션을 불러오니 다시 같은 현상이 일어납니다???? 그냥 쓰자 결국 불편..
자바스크립트(Javascript)에서 'this'는 일반적인 언어에서의 'this'와 조금 다릅니다. 이것은 자바스크립 특성때문입니다. 0. 테스트 코드 작성 설명하기 전에 테스트에 사용할 코드를 작성해 봅시다. index.html 환영! 클릭!! 클릭2!! 클릭3!! 클릭4!! app.js export default class StartUp { A = "StartUp A"; B = "StartUp B"; constructor() { document.getElementById("btnClick").onclick = this.TestCilck; document.getElementById("btnClick2").onclick = this.TestCilck2; document.getElementById("bt..
.NET에서 별다른 옵션 없이 출력하면 파일이 여러 개가 생성됩니다. 참조가 많다면 더 많은 파일이 생성되죠. 단일 파일로 배포하는 방법을 알아봅시다. * 이 기능은 '.NET Core 3.0' 이상 버전에서만 사용할 수 있습니다. * 1. 게시 .NET에 있는 '게시' 기능이 있습니다. 이 기능을 이용하여 편하게 배포할 수 있죠. 프로젝트에서 오른쪽 클릭 > 게시 파일로 출력하면 릴리즈(Release) 폴더의 내용과 거의 같습니다. 그러니 파일로 배포하려는 경우 릴리즈 폴더만 압축해서 배포해도 상관없습니다. 2. 단일 파일 생성 파일로 배포하면 압축해서 하나의 파일만 배포해도 되니 신경을 안 쓰고 있었는데.... 아무래도 파일이 많다 보니 컴퓨터에 익숙하지 않은 사람들은 1) 실행파일을 찾지 못하거나 ..
언제부터인가.... 이미지를 클릭하면 무조건 레이어팝업으로 뜨는 것을 알게 됐습니다. 티스토리의 레이어 팝업 이미지는 확대축소가 안 돼서 안 쓰고 있던 건데 말이죠. 비활성화 하려고 플러그인을 확인했는데..... 없어서 찾아보니 플러그인이 삭제됐다고 합니다. 근데 기능은 왜 남아 있어???? 1. 레이어 팝업 제거 검색해보니 이미지를 감싸고 있는 'span'의 'data-lightbox'속성을 제거하면 동작하지 않는다고 합니다. 아래 코드 중 자신에게 맞는 코드를 선택해서 실행하면 됩니다. 실행 시점은 도큐먼트가 모두 바인딩 되고 나서입니다. 예> window.onload(), $(window).onload 등등 //Vanilla JS document.querySelectorAll("[data-light..
VS Code에 아두이노를 연결하여 개발하고 있는데..... 시리얼 모니터(Serial Monitor)에 입력이 안 됩니다??? 1. 아두이노 확장에서 입력하기 아두이노(Arduino) 확장에서 입력하는 정석인 방법은 1) 명령 팔레트(command palette)를 열고 2) 아래 명령어를 입력합니다. Arduino:Send Message To Serial Port 3) 전달할 명령을 입력합니다. ... 힘드네요 ㅋㅋㅋㅋㅋ 참고로 명령어 입력할 때마다 해야 합니다 ..... 마이크로소프트(Microsoft)에 분노하다. 그래서 그런지 시리얼 모니터에 입력 인터페이스 좀 만들어달라고 많은 개발자가 요청했습니다. 참고 : github - microsoft/vscode-arduino Issues : Feat..
비주얼 스튜디오(Visual Studio)에 훌륭한 아두이노 확장이 있긴한데.... 유료입니다. 그래서 그냥 'Arduino IDE'를 쓰고 있었습니다. 그런데 이번에 좀 덩치 큰 코드를 짜야 하는데 'Arduino IDE'는 너무 불편해서 'VS Code'에 세팅해서 써야 한다고 마음먹고 정리합니다. 이 포스팅에서는 가능하면 명령어가 아닌 UI로 작업합니다. 1. 확장 설치 VS Code의 확장에서 'Arduino'로 검색합니다. 'Microsoft'에서 만든 'Arduino'확장을 설치합니다. 설정(사용자) 확장 > Arduino > 확장 설정 을 선택하면 '사용자' 영역 설정이 나옵니다. '사용자'는 글로벌(전체) 설정을 말하는 것이고 '작업 영역'은 이 프로젝트의 영역의 설정을 말합니다. 같은 설..
EF(Entity Framework)에서 FK(foreign key)를 걸면 자동으로 List 타입을 관리해줍니다. FK가 개발 중에는 좋은데 서비스 중에는 좀 단점이 있고(특정 데이터를 수동으로 지우려면 연결된 FK를 순서대로 뒤에서부터 지워야 함.) 자동으로 바인딩 되다 보니 무분별하게 난발하게 돼서 속도를 다 까먹는 문제가 있습니다. (잘 관리하면 좋긴 합니다. ㅎㅎㅎ) EF는 FK로 묶인 데이터에 접근하면 인덱스로 전체 선택(select)해서 처리하기 때문입니다. ㅎㄷㄷ 그래서 저는 가급적 FK를 안 쓰고 수동으로 선택(select)해서 사용하는 방법을 사용합니다. 그러다 보니 EF에서 리스트형 데이터들은 어떻게 처리되는지 궁금해졌습니다. 1. 배열과 리스트 모델을 아래와 같이 선언하고 마이그레이..