경향신문의 보도 문제 2

북한의 미사일과 지방자치단체장 해외 출장의 관계 경기도 고양특례시장은 2022년 11월 4일부터 해외로 출장했다. 경향신문은 2022년 11월 3일 북한이 미사일을 쏘고 이태원에서 많은 사람들이 죽었는데 출장을 해야 하냐고 물었다. 북한이 미사일을 쏘고 이태원에서 많은 사람들이 죽은 게 고양특례시장이 외국에서 공무를 보는 거와 무슨 관계라고. 노동쟁의와 손해 배상 의무 사이의 왜곡된 인과관계 파업을 하고 회사로부터 손해의 배상…

c# List 잔기술들 2

BindingList로 바꾸기 예를 들어 iEnumerable을 리스트로 만들려면 toList를 이용할 수 있는데 toBindingList는 없다. List로 만든 뒤 BindingList로 타입캐스트를 하려 해도 되질 않는다. 이런 경우를 위해 BindingList는 아래와 같은 컨스트럭터를 제공한다. Remove와 RemoveAt의 성능 비교 Remove는 인스턴스로 찾아서 지우고 RemoveAt은 인덱스 번호로 찾아서 지운다. 후자가 많이 더 빠르다. 지울 대상의 인덱스 번호를 안다면 당연히 후자를 써야 한다….

대한민국 군인의 베트남 민간인 학살과 소멸시효 완성의 항변

미국을 도와 베트남 전쟁에 참여했던 우리 국군들 가운데 일부가 전쟁 수행 중 베트남 민간인들을 집단적으로 죽였다. 이 살인으로 가족을 잃은 피해자가 우리 정부를 상대로 손해의 배상을 청구했고 우리 법원이 그 주장을 받아들였다. 이 사건에서 제일 중요한 쟁점은 우리 국군이 정말 베트남의 민간인들 여럿을 죽였는가 하는 거다. 이에 대해 우리 정부는 부끄럽게도 부정하고 있지만 그 동안…

인플래이션의 원인과 대책

재화의 가치가 다른 것의 그것에 비해 꾸준하게 오르는 걸 인플래이션이라 한다. 정상적이지 않은 물가의 상승이다. 크게 수요의 측면과 공급의 그것에서 원인을 찾을 수 있다. 예를 들어 우한 바이러스로 인한 생활 지원금처럼 어떠한 이유로든지 정부가 납세자들에게 돈을 주면 이를 받은 사람들은 쓰게 마련이다. 그러면 수요는 늘고 재화를 공급하는 사람들에게는 가격을 올릴 동기가 유발된다. 이렇게 수요의 증가로…

c# DataTable 잔기술들

열 감추기 DataTable을 건드릴 게 아니라 DataGridView를 제어해야 한다. 파일 입출력 클래스는 procotol buffers(protobuf)를 이용하여 쉽게 바이너리로 바꿀 수 있지만 데이터 테이블은 힘들다. 데이터 테이블도 바꿀 수 있게 프로토버프를 이용한 라이브러리가 나와 있긴 하지만 프로토버프 제작자가 만든 게 아니라서 써 보진 않았다. WriteXml는 데이터 테이블의 이름을 설정해야 작동한다. xml로 저장하고 읽는 건 저장에 많은 용량을…

c# DataTable의 뜨레드 안정성

아래의 코드는 디버그 모드에서 제대로 작동하지 않지만 크로스-뜨레드 예외로 처리되지도 않는다. 릴리스 모드에서는 정상으로 작동한다. 아래와 같이 하면 디버그 모드에서도 잘 된다. DataTable은 뜨레드에서 안전하지 않은데 다른 비주얼 컨트롤들과는 달리 크로스-뜨레드 예외로 처리되지 않고 상황에 따라 다르게 몇몇의 예외로 처리되거나 위의 예제에서처럼 아예 조용하다. 그럼에도 불구하고 이것은 크로스-뜨레드 문제이며 다른 예외 처리에 정신을 팔리거나 유의하지…

논리 프로세서와 멀티뜨레드

cpu를 만드는 기술은 연산 능력을 높이는 대신 크기를 줄이는 방향으로 발전하고 있다. 그게 더 쉽기 때문이다. 더 조그매진 cpu들 여러 개를 한데 묶어 하나의 칩으로 만든다. 이게 멀티-코어 프로세서다. 하나의 부속이지만 그 안에는 물리적으로 구분되는 여러 cpu들이 코어라는 이름으로 들어 있다. 하나의 작업을 여럿으로 나눠 처리하는 것을 멀티뜨레딩이라 한다. 흔히들 알고 있는 것과는 달리 멀티뜨레딩이 꼭 동시concurrent, parallel 처리를 의미하는 것은 아니다. 하나의 순서로 처리되는 작업을 두 개 이상의 cpu, 코어, 뜨레드로 나누어 시분할serial time slice 처리를 할 수도 있다. cpu에 크게 부하를 주는 연산을 실행하면 비록 싱글 뜨레드로 작성된 거라 해도 윈도우즈는 여러 뜨레드로…

c# List 잔기술들 1

TextBox로 한꺼번에 출력하기 리스트의 아이템들을 TextBox에 출력할 때 한 줄씩 하면 느리다. 아래와 같이 한꺼번에 하면 빠르다. Environment.NewLine은 “\r\n”이라고 해도 된다. 전자는 후자를 호출하므로 후자가 더 빠르다. 아이템 순서 바꾸기 List에는 move 메떠드가 없다. ObservableCollection에는 move가 있지만 바인딩을 할 게 아니라면 List가 더 빠르므로 굳이 ObservableCollection를 쓸 필요는 없다. 어차피 move도 아래와 같은 방법으로 작동한다….

경향신문의 보도 문제 1

고위 공직자 아들 군 배치에 대한 편향적 주관 경향신문은 2022년 11월 17일 높은 공직에 있는 사람들의 아들들이 더 편하게 군 생활을 한다며 공정하지 않은 배치를 막기 위한 법 정비가 필요하다는 취지의 기사를 냈다. 높은 공직에 있는 사람들은 상대적으로 자식들 교육에 더 공을 들일 형편이 된다. 군대에도 나가서 싸우는 보직이 있는가 하면 머리를 써야 하는 일…