• 영국 주 4일 노동 긍정적 결과

    우리나라에서는 노동 시간을 줄이니 회사들이 곤란에 처했다고 매일경제가 2018년 7월 27일 보도했다. 프랑스 등의 나라들에서는 노동 시간을 줄여서 오히려 일자리들이 줄었다고 한국경제는 같은 해 같은 달 14일 보도했다. 그러나 고용노동부가 확인한 바에 따르면 한 주에 52시간만 노동을 하게 한 뒤로 이러한 의무가 적용되는 대상 기업들 3,627개 가운데 22.4%의 회사들이 3만 명 조금 모자라는 사람들을 추가로…

  • c# System.Timers.Timer로 비주얼 컨트롤 제어하기

    멀티뜨레드로 인한 크로스-뜨레드 예외 발생 메인 뜨레드로부터 분리된 뜨레드에서 비주얼 컨트롤을 제어하려 하면 원칙적으로 크로스-뜨레드 오류가 발생한다. 이러한 오류는 디버그 빌드에서는 예외로 처리되지만 릴리스 빌드에서는 그냥 오류가 생긴 대로 출력하고 넘어간다. 릴리스 모드에서 예외로 처리가 되지 않는다고 괜찮은 게 아니라 오류를 무시하는 것이므로 엉뚱한 결과가 나타날 수 있다. 따라서 디버그 빌드에서 분명하게 조치를 취해야 한다….

  • 대장동 사건 곽상도 1심 무죄 판결에 대한 검찰과 법원의 책임

    사건의 개요 이재명이 경기도 성남시장을 하던 2015년부터 성남시 분당구 대장동에 아파트 단지가 들어섰다. 당연히 큰 돈이 벌리는 사업이었다. 이 사업은 성남도시개발공사와 화천대유자산관리 등이 함께 진행했는데 후자의 회사는 4억 원 정도를 투자하여 4천억 원 정도를 챙겼다. 개발 도중 해당 지역에서는 문화재가 발굴되었으며 당시 곽상도는 국회의원으로서 문화재청을 관리하는 교육문화체육관광위원회현재는 문화체육관광위원회 소속이었고 그의 아들 곽병채는 화천대유자산관리에서 문화재 담당…

  • [c#] 멀티뜨레드 동기와 비동기

    동기는 하나의 뜨레드에서 순차적으로 처리되는 걸 말하고 비동기는 여러 뜨레드들에서 동시에 처리되는 걸 뜻한다. 동기를 synchronous라 하고 비동기는 부정 접두사 ‘a~’를 붙여서 asynchronous라 한다. 각각 줄여서 sync와 async라고도 하며 async는 ‘에이씽크’라고 읽는다. ‘아씽크’라고 읽는 거 아니다. synchronous를 네이버 영어사전에서 찾아보면 제일 먼저 ‘동시 발생하는’이라는 뜻이 나온다. 여기에서 혼란이 시작된다. 프로그래밍에서 이해하는 것은 사전적 의미와 완전 반대다….

  • c# is 연산자로 비주얼 컨트롤 검색하기

    아래 예제는 폼에 있는 비주얼 컨트롤들 가운데 TextBox들만 처리하는 거다. is는 형 변환을 할 수 있는지 확인하는 연산자다. Controls는 Control의 컬렉션이다. 즉 Control을 TextBox로 타입캐스트할 수 있느냐를 묻는 거다. 아래의 코드는 오류로 처리된다. Controls에 담겨 있는 건 인스턴스이고 TextBox는 클래스 자체이기 때문이다. 이렇게는 가능하다.

  • c# String 잔기술들 1

    String과 string의 차이 String은 클래스이고 string은 변수형이다. 그러나 아래 예제를 보면 이들 사이에 차이가 없다는 걸 알 수 있다. string은 변수형인데 new로 만들 수 있고 String은 클래스인데 new 없이 그냥 쓸 수 있다. 이들은 이렇게 변수형과 클래스 모두의 기능을 한다. 더 정확하게는 string이 String의 껍데기다. string is an alias for System.String in .NET.– Built-in reference…

  • c# ComboBox 잔기술들

    dictionary 바인드하기 딕셔너리 자체를 바인드하는 게 아니라 키나, 밸류의 필드를 해야 하는 거에 유의한다. wpf DataColumn 바인드하기 wpf의 콤보박스는 ComboBox.DisplayMember가 아니고 ComboBox.DisplayMemberPath를 이용한다.

  • c# RichTextBox 줄 간격 설정하기

    좀 복잡하다. RichTextBox는 윈도우즈 차원에서 제공되는 컨트롤인데 델파이와 달리 .네트는 win32 api를 제대로 랩wrap하지 않아서 아래와 같이 win32 api를 직접 제어해야 한다. SendMessage의 아규먼트로는 아래와 같이 IntPtr을 넣는 게 원칙이긴 한데 조금 더 복잡하다.

  • c# RichTextBox 출력 빠르게 하기

    RichTextBox.AppendText는 느리다. 수십 줄 출력하는 데에도 그려지는 게 보일 정도다. 아래의 방법들을 쓰면 빠르게 출력된다. RichTextBox.BeginUpdate/EndUpdate 만들기 일반적인 비주얼 컨트롤들의 경우 BeginUpdate/EndUpdate가 있다면 이걸 쓰는 게 빠르다. AppendText로 추가되는 내용을 바로바로 출력하는 게 아니라 출력을 멈췄다가 추가할 것들을 다 추가한 뒤 한꺼번에 출력하는 거다. 하지만 RichTextBox에는 BeginUpdate/EndUpdate가 없다. 아래와 같이 상속해서 써야 한다. String.Join 이용하기…