programming

  • 마이크로소프트가 제공하는 아이콘들 – visual studio image library

    애플리캐이션을 개발할 때 아이콘을 구하려고 검색을 해 보면 flaticon이 바로 검색된다. 많은 아이콘들을 제공하지만 난잡하여 원하는 걸 고르기 힘들다. 마이크로소프트 제공하는 깔끔한 벡터 아이콘들이 있다. 크게 단색과 컬러로 나뉘는데 대부분 전자다. 후자로는 Visual Studio Image Library가 있다. 이름을 봐 알 수 있듯이 개발에 쓰기 좋다. 위의 라이브러리를 다운로드하여 보면 각 아이콘이 png, svg, xaml로 구현된…

  • 추상 클래스와 override

    추상 클래스는 완전하지 않은 뼈대라서 이 자체를 이용할 수는 없다. 예를 들어 비주얼 스투디오 api에는 ToolWindow라는 추상 클래스가 있다. 이걸 이용하여 solution explorer 같은 창을 만들 수 있다. 비주얼 스투디오 안의 여러 창들은 기능에 따라 모양들이 모두 다르다. 다양한 모양들을 비주얼 스투디오가 일일이 클래스로 구현해 놓고 사용자들에게 쓰라고 할 수는 없다. 꼭 지켜야 하는 형태만…

  • 주식 api를 멀티 뜨레드로 이용할 때 데드록이 생기는 경우

    멀티 뜨레드로 작동하지 않는 ls증권의 api를 이용하고 있다. 3천 개 정도 종목의 체결과 호가 대이터를 실시간으로 받는다. 수신되는 빈도와 대이터의 양이 너무 많아서 이들을 매인 뜨레드에서 모두 처리하면 하나의 코어에서만 부하가 커져서 멈추게 된다. 패킷을 받은 때 바로 새로운 객체를 만들어 새로운 뜨레드로 보내 연산하면 cpu의 모든 코어들로 부하를 나눌 수 있다. 연산을 한다는 건…

  • .net c# – 동기, 비동기

    synchronous와 asynchronous, 동기와 비동기는 각 단어가 서로 반대되는 의미를 동시에 갖고 있어서 이해하기 피곤하다. synchronous는 ‘동시에’라는 뜻이고 同期라고 번역한다. 1. At the same time, at the same frequency.wiktionary 그런데 이게 컴퓨터 프로그래밍을 할 때에는 반대의 뜻으로 쓰인다. 여러 작업들이 동시에 처리되는 게 아니라 중간에 오래 걸리는 작업이 있으면 기다렸다가 순서대로 처리한다는 의미다. 2. (computing, of…

  • 정수는 0으로 나눌 수 없지만 실수를 0으로 나누면 무한대다

    Infinity is something which is boundless, endless, or larger than any natural number.wikipedia 무한대는 수가 아니라 어떤 자연수보다도 큰 무언가이다. In mathematics, the natural numbers are the numbers 0, 1, 2, 3, and so on, possibly excluding 0.wikipedia 자연수는 양의 정수다. 따라서 정수에 있어 무한대를 생각할 여지는 없다. 이를 반대로 해석하면 實數에 있어서는 가능하다. ieee…

  • 캐리지 리턴과 라인 피드의 차이 – 줄 바꿈

    carriage return은 줄을 바꾸지 않고 커서나 타자기의 타점을 현재 줄의 맨 앞 즉 왼쪽 끝으로 옮기는 거고 line feed는 좌우로 움직임 없이 줄만 그대로 하나 내리는 거다. 우리가 일반적으로 줄 바꿈이라 하는 건 이들 둘을 합한, 한 줄 내리고 맨 왼쪽에서 출력을 대기하는 상태로 두는 거다. 메모장을 열어 보면 오른쪽 아래에 crlf라고 보이는데 이게 그…

  • [프로그래밍] 이름을 짓는 고충 – 2009 토요타 자동차 결함의 원인

    많은 프로그래머들은 코딩을 할 때 객체와 변수의 이름을 짓는 논리 외적인 문제로 힘들어 한다. 논리적인 문제는 똑똑하면 빨리 처리할 수 있지만 물리적인 문제를 해결하는 데에는 시간이 걸리게 마련이다. 프로그램을 만들다 보면 많은 객체와 변수들을 만들어야 하는데 나도 새로운 객체 선언을 하면서 멍하니 모니터만 보며 무념무상에 빠지는 경우들이 많다. 수준 낮은 프로그래머들은 순간의 고뇌에서 빨리 벗어나려고…