일반적인 프로젝트 빌드는 진입점을 기준으로 빌드가 되므로 별다른 설정 없이도 최적화(or 트리 쉐이킹), 빌드, 파일 합치기, 난독화, 최소화 같은 과정들이 이루어 집니다. 문제는 진입점이 없는 라이브러리인 경우 여러 가지 제한이 많다는 것입니다. 0. 타입스크립트 라이브러리의 배포 타입스크립트로 만든 라이브러리를 수동으로 배포하려면 그냥 타입스크립트 채로 배포해도 큰 문제는 없습니다. 배포된 라이브러리를 사용하는 개발자도 타입스크립트를 쓴다면 같이 빌드하면 그만이니까요. 타입스크립트를 안 쓰는 경우나 난독화가 필요하거나 일관성 유지를 원한다면 빌드한 다음 배포하는 것이 좋습니다. 이 포스팅에서는 빌드 결과물을 출력하고 같이 사용할 설명파일(.d.ts)파일을 같이 생성합니다. 난독화나 미니마이즈 같은 것..
비주얼 스튜디오 버전별로 프론트엔드 프로젝트 구성이 조금씩 다릅니다. 이 포스팅은 비주얼 스튜디오 커뮤니티 2022(버전 17.8.3) 기준입니다. 이 버전에서는 '.esproj(자바스크립트 프로젝트 시스템)'로 프론트엔드 프로젝트를 구성하는 것이 권장 사항입니다. 이 포스팅에서는 타임스크립트가 포함된 프로젝트를 예제로 사용하고 있습니다. 이 포스팅에서는 편의상 웹팩(webpack)를 사용했지만, 구성은 마음대로 해도 됩니다. 1. 프로젝트 생성 새 프로젝트 추가 > Blank TypeScript Project 를 선택합니다. 타입스크립트를 사용하지 않으려면 'Blank JavaScript Project'를 선택합니다. 수동으로 타입스크립트를 구성할 생각이어도 'Blank JavaScript Projec..
검색해서 나오는 방법을 사용하여 유니코드 폰트(나눔 고딕)를 설치하고 TMP(TextMeshPro)로 변환했는데 한글이 계속 깨집니다. 레거시(Legacy text)는 잘만 나옵니다.폰트 자체가 잘못된 게 아니라 생성이 잘못됐다는 거죠. 1. 유니코드 범위 지정하기유니코드 폰트의 경우 폰트 범위를 지정하면 되는 경우가 있으니 해봅시다. 'Character Set'를 'Unicode Range (Hex)'로 설정합니다.그러면 'Character Sequence (Hex)'칸이 생기는데 이 칸에 아래와 같이 범위를 설정합니다. 가-힣, 초성, 중성, 종성의 범위는 다음과 같습니다.AC00-D7AF,1100-1112,1161-1175,11A8-11FF 아니면AC00-D7AF, 1100-11FF 이제 완성..
이 포스팅은 가능한 원론에 가깝게 설명하는 데 목표가 있는 포스팅입니다. (이전 포스팅에서 이걸 안 지켜서.....) 이런 디자인 패턴을 도입하는 건 처리와 UI를 분리하기 위한 목적입니다. 이렇게 되면 처리 부분의 재사용성이 높아지기 때문입니다. MVC 디자인 패턴은 뷰/컨트롤러/모델로 나뉩니다. - 뷰 : UI/UX에 대한 사용자 입출력을 관리합니다. 모델의 상태를 표시하기 위해 모델과 연결됩니다. - 컨트롤러 : 사용자로부터 받은 입력을 가공하고 모델로 전달합니다. 이 과정에서 모델과 뷰가 연결됩니다. - 모델 : 전달받은 입력을 처리합니다. 뷰와 연결되었다면 모델이 뷰에 바로 업데이트를 요청할 수 있습니다. 아래와 같은 형태가 된다고 설명합니다. 위 이미지에서는 모델과 뷰가 연결된 것처럼 보이지만..
예전버전용 'OpenCvSharp' 캡쳐는 포스팅한적이 있습니다. (참고 : [C#.NET, OpenCVSharp] 웹캠(Web Cam) 이미지 사용하기 ) 'OpenCvSharp4'용 포스팅을 다시 합니다. 0. 필수 구성요소 설치 누겟에서 다음 패키지를 설치합니다. - OpenCvSharp4 - OpenCvSharp4.Extensions 사용하려는 운영체제나 플랫폼에 따라 ' OpenCvSharp4.runtime.[대상] ' 패키지를 설치합니다. 예> 윈도우 : OpenCvSharp4.runtime.win UWP : OpenCvSharp4.runtime.uwp 우분투 : OpenCvSharp4.runtime.ubuntu.18.04-x64 사용하려는 프래임웤에 따라 추가로 확장이 필요 할 수 있습니다...
언제부터인가(아주 오래전부터) 윈도우를 설치하고 나면 버전에 따라 테두리가 보이지 않는 현상이 있습니다. 이유는 모르겠는데 어느날부터 활성화된 창만 테두리가 보이지 않도록 변경되었습니다. 예전에는 외곽선이 있었는데 언제부터 이렇게 됐는지 모르겠습니다. 1. 윈도우10 이상에서는.... 윈도우10 이상에서는 개인 설정 바탕 화면 우클릭 개인 설정 > 색 이나 설정 > 개인 설정 > 색 으로 들어가서 '제목 표시줄 및 테두리'를 체크해주시면 됩니다. 대신 이 방법은 테두리 뿐만 아니라 '제목 표시줄'의 색도 바꾼다는 단점이 있습니다. 2. 그림자를 추가하는 방법 위 방법이 안 된다면 폴더 밑에 그림자는 표시하는 방법뿐이 없습니다. 1) 시작 버튼을 누르고 '고급 시스템 설정 보기'를 검색합니다. 혹은 설정 ..
이전 포스팅에서 여러 종류의 DB를 한 프로젝트에서 사용하기 위한 설명을 했습니다. 이 포스팅에서는 여러 DB를 관리하기 위해 제가 정리한 코드를 설명합니다. 연관글 영역 0. 테이블로 사용할 모델 테이블로 사용할 모델을 만들어 줍니다. 이 포스팅에서는 테스트 용도로 아래 모델을 선언했습니다. //Test1Model.cs /// /// 테스트용 모델 /// public class Test1Model { /// /// 고유키 /// [Key] public long idTest1Model { get; set; } /// /// 숫자형 /// public int Int { get; set; } /// /// 문자형 /// public string Str { get; set; } = string.Empty; /..
몇 가지 관리 이슈 때문에 저는 FK(ForeingKey)를 잘 활용을 하지 않았는데... 원래는 적극적으로 FK를 사용하는 것이 좋습니다. 일단 검색 속도가 빨라지는 큰 장점이 있기 때문입니다. 그리고 테이블 간 관계성이 명확해집니다. 0. 테스트 준비하기 이 포스트팅에 사용하는 모델 정보는 다음과 같습니다. (참고 : dang-gun/EntityFrameworkSample/ForeignKeyTest/ModelsDB ) ForeignKeyTest1_Blog.cs namespace ModelsDB; /// /// 테스트용 테이블 /// public class ForeignKeyTest1_Blog { /// /// 고유키 /// [Key] public long idTest1Blog { get; set; }..
로거의 특성상 자신에게 편한 설정이 끝나면 어떤 프로젝트든 거의 손대지 않고 그대로 갔다 쓰기 마련입니다. 매번 이런 코드를 복사 & 붙여 넣기 한다는 건 너무 번거로운 일이므로 유틸리티 클래스를 만들어서 관리하면 편합니다. 이 포스팅에서는 'NReco.Logging.File'를 이용하여 파일 출력을 하고 있습니다. 연관글 영역 1. 개요 이 유틸은 범용이라기보다는 프로젝트 전용 유틸입니다. 단지 특수한 경우가 아니라면 설정의 거의 동일할 것이라는 가정이라 이 클래스만 복사하여 프로젝트에 세팅하면 됩니다. (복사용 원본 : github - dang-gun/DotNetSamples/LoggingNReco_DotNetLogging/DotNetLogging_Copy.cs ) 기본 로거를 위한 유틸을 만들려면 ..
프론트엔드 단독 프로젝트를 구성하고 처음 실행하면 디버거가 잘 연결되어 중단점도 잘 잡힙니다. 그런데 포트만 변경하면 디버거를 연결하지 못하는 현상을 발견하였습니다. 접속도 되고 실행도 되지만 디버거가 연결되지 않아 중단점이 잡히지 않고 배포도 끝나지 않습니다. 1. 원인 전형적인 디버거가 연결되지 않는 현상입니다. 비주얼 스튜디오에서 자바스크립트를 디버깅하려면 디버깅 포트를 서비스 포트와 일치시켜줘야 합니다. ASP.NET Core 프로젝트와 같이 브라우저를 사용하는 프로젝트는 브라우저를 설정할 수 있는 인터페이스가 제공됩니다. (참고 : MS Learn - Visual Studio에서 JavaScript 또는 TypeScript 앱 디버그 - 디버그할 브라우저 준비 ) 수동으로 인수를 넣어 디버거에 ..