이번 포스팅은 간단하게 스케치를 해보고 이를 통해 모델링을 해보는 포스팅입니다. '(주)이십일세기소프트'에서 제공하는 퓨전 360(Fusion 360) 교육을 따라 하는 목적의 포스팅입니다.* 버전 : Fusion 2.0.18961 x86_64, 한글 기준 * 연관글 영역 0. 목표 참고 : (주)이십일세기소프트 블로그 - [오토데스크] Fusion360 본격 기초 스케치&모델링을 직접해봅시다! 저는 원래 '기본 모델링 방향'을 'Y up'로 설정하는데 이 포스팅은 실수로 'Z up'로 설정하였습니다.참고하여 방향 잡으시길 바랍니다. 1. 스케치 작성 준비 1) '스케치 작성'을 선택합니다. 2) 바닥 면을 선택합니다.화면을 어떻게 보고 있느냐에 따라 캡처 화면과 다를 수 있습니다.자신이 보기 편한..
싱글톤(Singleton)이란 개체를 처음 사용하는 타이밍에 생성하고 이후로 생성된 개체를 재활용하는 패턴을 말합니다.여기서 중요한 건 ' 처음 사용하는 타이밍에 초기화'입니다. 대부분의 언어가 '싱글톤'하면 구현 원리는 비슷합니다.1) 비어있는 정적 인스턴스를 선언해 두고2) 사용하는 타이밍에 인스턴스를 생성하고 나서3) 다음 사용부터는 생성된 인스턴스를 리턴합니다. 이 포스팅은 이 싱글톤 구현을 C#에 맞게 구현한 포스팅입니다. 1. 일반적인 구현 일반적인 싱글톤 구현을 C#으로 구현하면 아래와 같습니다.(소스 코드 : dang-gun/DotNetSamples/SingletonTest/Singletons/Gamma95.cs )/// /// 《디자인 패턴》[Gamma95]에서 제시된 싱글톤을 C#에 ..
똑같은 사양에 똑같은 윈도우 이미지로 여러 대가 나갔는데 2대에서 이 경고가 나오면서 잠시 인터넷에 끊기는 현상이 있습니다. 1. 증상 확인이 경고는- 정확하게 주기적으로 날 수도 있고 아닐 수도 있고- 경고가 나올 때 네트워크가 일시적으로 끊기는 현상이 있기도 하고 아니기도 합니다.- 상황에 따라서 아이피(내부)가 변경되는 것으로 보아 완전한 네트워크 단절로 보입니다. 마이크로소프트의 공식 문서에는 '이벤트 ID 1014'는 IP6 관련 문제라고 안내하고 있습니다.(참고 : MS learn - Event ID 1014: Microsoft Windows DNS Client )하지만 이 현상이 일어나던 PC는 현장에 보내기 전에 테스트했을 때 해당 증상이 없었습니다. 제 프로그램의 로그에는 저 현상이 있..
경고가 표시된다. 언제부터인가 크롬(혹은 엣지) 개발자도구에 붙여넣기를 하려고 하면 다음과 같은 경고가 표시됩니다. Warning: Don’t paste code into the DevTools Console that you don’t understand or haven’t reviewed yourself. This could allow attackers to steal your identity or take control of your computer. Please type ‘붙여넣기 허용’ below and hit Enter to allow pasting. 경고에 나온 데로 직접 콘솔 창에 입력하면 이후로는 붙여넣기가 됩니다. 뭘 적어 넣으라는 거야? 그런데 개발하다 보면 써야 할 단어가 표시되지 않..
유니티에서 "Stack empty."에러가 발생하였습니다. 무조건 발생하는 건 아닌데 아주 가끔 에러가 납니다. 1. 원인을 찾자 처음에는 'enum'를 'switch'로 비교하는 곳에서 에러가 나서 아주 옛날에 있던 타입변환 버그를 의심했었습니다. 그런데 에러를 추적하다 보니 플레이메이커(Playmaker, FSM)의 함수를 호출하면 해당 에러가 나는 것을 발견하였습니다. 문제는 플레이메이커에서 나는 에러 잡는 방법을 몰라...... 검색을 해도 나오질 않는 겁니다. 2. 해결 방법 결국 여러 번의 삽질을 하다가 어떤 상황인지는 모르겠지만 스레드 에러가 나는 것을 확인했습니다. 이 에러가 "Stack empty."에러와 연관있는지는 모르겠지만 일단 예외 처리가 필요할 것으로 보여서 메인 스레드에서 실행..
FK(ForeingKey)를 설정하고 자식으로 대상을 추가하면 자식이 검색되지 않는 현상을 발견했습니다. 1. 증상 재연 부모를 아래와 같이 만듭니다. /// /// FK키가 자동으로 증가되는 오류 재연용1 /// public class AutoIncreases_Test1 { /// /// 고유키 /// [Key] public long idAutoIncreases_Test1 { get; set; } /// /// 표시 데이터 /// public string Name { get; set; } = string.Empty; /// /// 외래키에 연결된 리스트 /// [ForeignKey("idAutoIncreases_Test1")] public ICollection Test2 { get; set; } = n..
일반적인 프로젝트 빌드는 진입점을 기준으로 빌드가 되므로 별다른 설정 없이도 최적화(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에 대한 사용자 입출력을 관리합니다. 모델의 상태를 표시하기 위해 모델과 연결됩니다. - 컨트롤러 : 사용자로부터 받은 입력을 가공하고 모델로 전달합니다. 이 과정에서 모델과 뷰가 연결됩니다. - 모델 : 전달받은 입력을 처리합니다. 뷰와 연결되었다면 모델이 뷰에 바로 업데이트를 요청할 수 있습니다. 아래와 같은 형태가 된다고 설명합니다. 위 이미지에서는 모델과 뷰가 연결된 것처럼 보이지만..