시그널R(SignalR)을 사용하는데 웹소켓(WebSocket)이 아닌 롱폴링(LongPolling)으로 연결되는 것을 확인했습니다.그래서 시그널R의 'transport'설정을 웹소켓(HttpTransportType.WebSockets)으로 설정하였더니 연결되지 않는 현상을 목격했습니다. 1. 증상 분석롱폴링(HttpTransportType.LongPolling)으로는 연결된다는 것은 프론트엔드(frontend)의 시그널R설정이 잘못됐을 가능성은 낮다는 것을 의미합니다. 이런 경우 제3의 서버에서는 되는지 확인해 보는 것이 가장 좋은 방법입니다.저의 경우 동일한 서버가 로컬에서 문제없이 동작하고 있어서 연결하면 정상적으로 동작했습니다.이것은 프로그램 문제가 아니라 IIS 설정 문제라는 의미입니다. ..
제목은 낚시입니다 ㅎㅎㅎㅎ 1. 문제의 발견AI를 사용하다 보면 가끔 한글 오타가 있는데....제미니(Gemini)를 사용중에 "건너뜀"이 "건너뜜"으로 나오는 현상을 목격했습니다. 코드를 기반으로 학습했다면 이런 오타는 나오지 않을텐데? 2. AI가 문자를 인식하는 방식AI가 문자를 인식하는 데에 코드와 이미지 둘 다 학습합니다.그래서 문자를 이미지처럼 사용하는 이모티콘도 인식하는 것이 가능합니다. 그러다 보니 위와 같은 문제가 발생하는 경우가 생깁니다. 마무리하지만 같이 생성한 코드에서, 그것도 같은 의미로 쓰면서 오타가 나는 건 뭔데 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ
0. 사건 개요저는 방어적으로 코드를 짜다 보니 널 체크(null check) 앵간해서 꼭하는데......널체크를 했는 널(null)이 발생합니다? 1. 사건의 진실사실 이건 훼이크입니다.'Newtonsoft.Json'같은 외부 라이브러리를 사용할 때 해당 라이브러리 안에서 매개변수를 'null'로 만들어버리는 경우가 있습니다. 2. 사건의 이해순간적으로 보면 이게 무슨 상황인지 이해할 수가 없죠 ㅎㅎㅎㅎ특히나 문자열의 경우 값 타입처럼 보이지만 실제론 참조 타입이라 더 햇갈릴 수 있습니다. 함수 안에서 매개변수를 수정하는 경우 은근히 보는 현상입니다.그래서 전달받은 값을 직접 컨트롤하는걸 자제하는 것이 좋습니다.특히 문자열일 때 조심해야 하고 필요하다면 매개변수를 복사하여 사용하는 것이 좋습니다. ..
어느 날 갑자기 'ESXi 6.7'에 접속이 안 되는 것입니다.재부팅하면 살아나지만 금방 또 같은 증상이 일어났습니다. 로그 상으로는 꺼지는 타이밍 언저리에 물리적 네트워크가 끊겼다는 로그만 있어서 당연히 네트워크 문제인 줄 알고허브, 랜카드, 랜선 싹 다 교체했지만..... 증상이 그대로라 공유기 고객센터와도 통화하면서 실랑이했습니다. 모든 방법이 통하지 않아서 결국 모니터를 연결했습니다. 1. 증상그랬더니 아래와 같은 오류가 표시됐습니다.PCPU {number} locked up. Failed to ack TLB invalidate (total of {count} locked up, PCPU(s) : {number} ) 완전히 헛짓거리 하고 있었네요 ㅎㅎㅎㅎㅎ오류 내용을 보면 CPU 3, 10번이..
별생각 없이 프리팹(Prefab)에 들어가는 코드에 들어가는 코드에 다음과 같이 개체를 검색했습니다.TextMeshProUGUI ItemText = GameObject.Find("ItemText").GetComponent();ItemText.text = "내용1"; 개체를 3개 생성했는데 첫 번째 개체에만 텍스트가 적용됩니다???? 1. 오류 확인제가 생각했던 개체에 접근되지 않을 때는 인스턴스 ID(Instance ID)를 확인해 봐야 합니다.Debug.Log(string.Format("ItemText : {0}, {1}" , ItemText.gameObject.GetInstanceID() //텍스트 개체 , this.gameObject.GetInstance..
랩 패널(Wrap Panel)은 가로(혹은 세로)로 아이템이 쌓이다가 한 줄이 꽉 차면 다음 줄로 넘어가는 패널을 말합니다. 랩 패널에 스크롤 뷰를 연결하여 아이템이 늘어나면 스크롤도 동작하도록 구현하도록 하겠습니다. 연관글 영역 1. UI에 스크롤 뷰 추가 1) 게임 오브젝트(GameObject) > UI > 스크롤 뷰(Scroll View)를 선택하여 UI 화면에 스크롤 뷰를 추가합니다.추가한 스크롤 뷰의 이름을 'WrapScroll'로 해줍니다. 2) 스크롤 활성/비활성 시키기스크롤 뷰를 추가하면 가로/세로 스크롤이 모두 자동(Auto)으로 되어 있습니다.이 프로젝트에서는 세로 스크롤만 사용하므로 가로는 끄고, 세로는 항상 표시되도록 수정해야 합니다. 'WrapScroll'를 선택합니다.인스팩터에..
1. 증상문자를 넣고 돌출이나 분해하면 다음과 같은 에러가 발생하는 경우가 있습니다."선택한 문자의 프로파일을 검색할 수 없습니다" 2. 원인 및 해결 방법TTF 타입이 아닌 폰트를 사용하는 경우 발생합니다. 윈도우의 경우 '글꼴'폴더에 TTF타입의 글꼴(폰트)를 추가해 주면 됩니다. 3. 테스트이제 퓨전360에서 문자열의 글꼴을 'TTF 타입'의 폰트로 바꾸고 하면 에러가 없이 정상적으로 동작합니다. 정상적으로 돌출이 됩니다. 마무리참고 : 오토데스크 서포트 - Fusion에서 사용자 글꼴의 문자를 분해하거나 돌출시킬 수 없음 테스트에 사용된 폰트는 여기어때 잘난체입니다.상단이 둥글둥글한 폰트입니다.
프로그램에서 UI 하면 많이 쓰이는 방식 중 하나가 스크롤이 달린 리스트입니다.스크롤 뷰(Scroll View)를 이용하면 간단하게 만들 수 있습니다. 연관글 영역 1. UI에 스크롤 뷰 추가 1) 게임 오브젝트(GameObject) > UI > 스크롤 뷰(Scroll View)를 선택하여 UI 화면에 스크롤 뷰를 추가합니다.추가한 스크롤 뷰의 이름을 'List View'로 해줍니다. 2) 스크롤 활성/비활성 시키기스크롤 뷰를 추가하면 가로/세로 스크롤이 모두 자동(Auto)로 되어 있습니다.이 프로젝트에서는 세로 스크롤만 사용하므로 가로는 끄고, 세로는 항상 표시되도록 수정해야 합니다. 'List View'를 선택합니다.인스팩터에서 'Scroll Rect' 항목을 봅니다.가로(Horizontal)..
스크롤 바(Scroll Bar)를 이용하여 구현한다는 것은 스크롤 뷰를 직접 구현하는 것입니다. 연관글 영역 1. 레이아웃 만들기 스크롤 바가 될 UI를 만들겠습니다. 1) 빈 오브젝트(Create Object)를 생성하고 이름을 'Scroll Bar'로 넣고 크기와 위치를 지정합니다. 2) 빈 오브젝트 안에 UI 패널(GameObject > UI > Panel)을 넣고 이름을 'PanelContent'로 넣습니다. 3) 'PanelContent'의 'Rect Transform'속성에 앵커 프리셋(Anchor Presets)을 선택하여 'middle center'로 선택해 줍니다. 4) 'PanelContent'에 이미지(GameObject > UI > Image)를 넣습니다. 5) 'PanelCont..
유니티(Unity) UI에서 스크롤을 쓰는 방법은 크게 스크롤 뷰(Scroll View)를 쓰는 방법과 패널에 스크롤 바(Scroll bar)를 연결하는 방법이 있습니다.빠르고 편하게 쓸 생각이면 스크롤 뷰를 쓰는 것이 좋고 직접 커스텀하게 만들 생각이면 스크롤 바를 연결하는 것이 좋습니다. 이 포스팅에서는 스크롤 뷰(Scroll View)를 다룹니다. 연관글 영역 1. UI에 추가 게임 오브젝트(GameObject) > UI > 스크롤뷰(Scroll View)를 선택하여 U I화면에 스크롤 뷰를 추가합니다. 스크롤 할 내용은 콘텐츠(Content) 안에 넣어야 합니다. 2. 내용 넣기 스크롤 될 영역의 크기는 '콘텐츠(Content)' 영역의 크기를 따라갑니다.콘텐츠 영역을 적절히 늘려야 스크롤이..