programming

  • .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 토요타 자동차 결함의 원인

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

  • [프로그래밍] 빅 O의 아규먼트가 크다고 꼭 느린 건 아니다 – O(n)

    컴퓨터 프로그래밍을 하다 보면 컬렉션을 다룰 때 O(1)이나 O(n)이라는 표기를 흔히 접하게 된다. 이를 흔히 Big O라 하며 Big-O, Big O Notation, 빅 오 표기법, 점근표기법 등으로 부르기도 한다. big은 o를 대문자로 표기한다는 뜻이고 o는 순서라는 뜻의 독일어 Ordnung을 뜻한다. 독일 사람들은 명사의 첫 글자를 대문자로 표기한다. 쉽게 설명하면 괄호 안의 수는 작을수록 좋다. 이…

  • ls증권의 api에 쓰이는 애스키 dc 문자

    애스키 17부터 20까지는 dc1부터 dc4이다. device control의 약자이다. 예전에 원격 제어 장비 이용에 쓰였던 것들이다. ls증권의 api를 이용하다 보면 이게 나온다. 원래의 용도로 쓰인 건 아니고 인 블록의 애트리뷰트 값에 의미 없는 걸 넣을 때 이게 들어간다. 데브센터에서 트랜잭션을 실행해서 보면 애트리뷰트가 있는 인 블록의 경우 그 값으로 이게 들어 있는 걸 확인할 수 있다.

  • LoadLibrary 오류 처리 방법

    LoadLibrary에 대한 자세한 설명은 따로 했다. LoadLibrary는 제대로 작동하지 않으면 그 이유를 정수 형태의 에러 메시지로 반환한다. 그러나 이러한 반환을 위해서는 아래와 같이 DllImportAttribute.SetLastError를 true로 설정해야 한다. 로드가 되지 않으면 Marshal.GetLastWin32Error 메떠드를 이용하여 아래와 같이 원인을 확인한다. GetLastWin32Error는 LoadLibrary를 실행한 바로 뒤에 실행해야 하는 거에 유의한다. 아래의 코드는 제대로 작동하지 않아 0을 반환한다. 그 이유는…

  • LinkedList를 써야 할 때

    LinkedList를 공부하면서 이게 배열이나 List와 어떻게 다른가는 복잡하게 익히지만 정작 이걸 언제 쓰는 게 좋은지에 대해서는 모르는 사람들이 많다. LinkedList는 이터래이트를 하면서 컬렉션의 아이템을 추가하고 없앨 때 제격이다. 배열이나 List로는 이를 제대로 구현할 수 없다. 아래는 정수로 이뤄진 컬렉션에서 홀수들을 찾아 없애는 c# 예제다. 여느 컬렉션들의 item을 LinkedList에서는 node라 한다. 노드는 next라는 프라퍼티를 갖기 때문에…