본문 바로가기

분류 전체보기539

Blazor의 작은 아이콘 - 파비콘(Favicon) 변경하기 파비콘이란? 웹사이트 또는 웹 페이지를 대표하기 위해 웹 브라우저에서 사용되는 16x16 픽셀의 작은 이미지를 말한다. 즐겨찾기 아이콘(favorite icon)의 줄임말로 주로 웹 브라우저 상단에 있는 탭에 표시되는데 그 외에도 브라우저의 북마크바나 방문 기록, 검색 결과에서 페이지 url과 함께 표시되기도 한다. Blazor Server App의 파비콘을 변경해 보자! 우선 파비콘을 생성해 줄 꿀 같은 사이트로 접속해 보자 Favicon Generator for perfect icons on all browsers The ultimate favicon generator. Design your icons platform per platform and make them look great everywhe.. 2023. 5. 24.
C# 컬렉션 - System.Collections.Hashtable Hashtable 컬렉션은 값(value)뿐만 아니라 해시에 사용되는 키(Key)가 추가되어 빠른 검색 속도를 자랑한다. 따라서 검색 속도의 중요도에 따라 ArrayList 또는 Hashtable을 선택할지 결정한다. Hashtable의 검색속도가 ArrayList에 비해 어떻게 빨라질 수 있는지 2개의 컬렉션에서 함께 제공하는 Remove 메서드를 예로 들어보자. ArrayList.Remove의 경우 0번째 요소의 값과 Remove 인자의 값을 비교한다. 같으면 삭제하고 return 문을 수행한다. 1번째 단계에서 값을 찾기 못하면 그다음 요소의 값과 비교한다. 값이 같으면 삭제하고 return 문을 수행한다. 값을 찾을 때까지 위의 동작을 반복한다. 값이 ArrayList에 존재하지 않는 경우 전체 .. 2023. 5. 23.
우매함의 봉우리. 더닝 크루거 효과(Dunning-Kruger Effect) 더닝 크루거 효과(Dunning-Kruger Effect)란? 더닝 크루거 효과(Dunning-Kruger Effect)는 인지 편향(認知偏向, Cognitive bias )의 하나로, 능력이 없는 사람은 자신이 잘못된 결정을 내리고도 능력 부족으로 인해 자신의 실수를 알아차리지 못하는 현상을 말한다. '서울 안 가본 사람이 가본 사람을 이긴다'는 말과도 일맥상통한다. 위의 그래프에서 보듯이 능력이 없는 사람은 환영적 우월감에 사로잡혀 자신의 실력을 실제보다 턱없이 높게 평가하는 반면, 능력이 있는 사람은 오히려 자신의 실력을 과소 평가하여 환영적 열등감을 갖게 된다는 것이다. 더닝 크루거 효과는 1999년 코넬 대학교의 사회심리학 교수인 데이비드 더닝(David Dunning)과 당시 대학원생이던 저스.. 2023. 5. 23.
스트레스를 받았다면 우선 방청소를 해라 우리는 쉽게 스트레스 상황에 노출된다 회사에서 바쁜 업무와 동료들과의 관계로 인해서 스트레스를 받고 퇴근해서 집으로 돌아온 상황이라면 보통은 무기력하게 침대에 누워서 유튜브를 보거나 배달음식을 잔뜩 시켜서 술 한 잔 하고 싶다는 강한 욕망을 느낄 것이다. 보통 대부분의 사람들은 스트레스를 받으면 해당 상황에서 도피하려고 한다. 그렇다면 스트레스를 생산적으로 해소할 방법은 없는 것일까? 통제 가능한 영역 통제하기 보통 우리가 스트레스를 받는 이유는 일이 생각한 대로 진행되지 않기 때문이다. 내 생각과 현실의 간극만큼 스트레스를 받는다. 통제 불가능한 영역 회사 프로젝트 상사, 동료, 후배들과의 관계 경제 상황 그렇다면 내가 통제 가능한 영역을 통제한다면 스트레스를 줄이는데 도움이 될 것이다. 통제 가능한 .. 2023. 5. 22.
C# 컬렉션 - System.Collections.ArrayList ArrayList에 대해서 ArrayList는 object 타입 및 그와 형변환할 수 있는 모든 타입을 인자로 받아 컬렉션에 추가/삭제/변경/조회할 수 있는 기능을 구현한 타입이다. 간단하게 생각해서 크기가 자유롭게 변할 수 있는 배열이라고 보면 된다. ArrayList는 object를 인자로 갖기 때문에 닷넷의 모든 타입을 담을 수 있다는 장점이 있지만 반대로 이로 인해 박싱이 발생한다는 단점이 있다. 따라서 System.ValueType을 상속받는 값 형식을 위한 컬렉션으로는 적당하지 않다. 이를 해결하기 위해서는 닷넷 2.0부터 지원되는 제네릭(Generic)이 적용된 List 타입을 사용하는 것이 권장된다. (ArrayList는 deprecated되었다. 특수한 경우가 아니라면 List를 사용하도.. 2023. 5. 22.
P/Invoke란 무엇인가? P/Invoke란? C# / ,NET에서 Native DLL (Unmanaged DLL)에 있는 함수를 호출하는 것을 Plaform Invoke 혹은 줄여서 P/Invoke라고 부른다. 예를 들어, C#에서 윈도우즈 운영체제의 Win32 API를 호출한다던가, C/C++로 작성된 Native DLL의 함수를 호출할 필요가 있을때, P/Invoke 방식을 사용한다. P/Invoke를 사용하기 위해서는 System.Runtime.InteropServices 네임스페이스에 있는 DllImport를 사용하여 어떤 DLL에서 함수를 가져올지를 지정한다. 해당 함수의 원형을 C# 메서드 원형으로 정의해 준다. 이때 C# 메서드는 static extern으로 지정한다. 예제 코드 using System; using .. 2023. 5. 19.