programming

  • [프로그래밍] 완전하게 다른 뜻으로 쓰이는 subclass

    컴퓨터 프로그래밍에서 subclass는 명사와 동사 모두로 쓰인다. 말 그대로 상속 클래스를 뜻한다. derived class와 같은 용어다. base class를 상속하여 생긴 클래스다. 대표적인 예가 아래 코드에서 Form1이다. Instead of creating a partial class that is based on x:Class, the provided x:Class is created as an intermediate class, and then your provided derived class is expected to…

  • 네이버 뉴스 검색 api 변경

    2026년 8월부터 네이버 검색 api가 바뀌었다. 기존 api는 한시적으로 이용할 수 있고 새 api 이용 신청은 naver developers 아닌 naver cloud platform을 통해야 한다. 전자에서 신청하려 하면 신청할 api에 ‘검색’이 없다. 네이버 클라우드 플랫폼은 네이버 계정으로 이용할 수 없다. 계정을 새로 만들어야 하고 무료 api를 이용할 거라도 결제 수단을 등록해야 한다. 새 api를 이용하려면 naver…

  • 비주얼 객체들이 동시에 나타나지 않는 문제

    윈도우즈에서 드로잉은 순서대로 처리되지 않는다. Most drawing carried out during processing of the WM_PAINT message is asynchronous;Synchronous and Asynchronous Drawing 예를 들어 폼이 처음 나타날 때 대이터 그리드 뷰 두 개를 동시에 보이게 하려 한다. 컨스트럭터에서 순서대로 출력 메떠드를 호출해도 이 순서는 보장되지 않는다. 먼저 연산을 마친 게 먼저 출력된다. 컨스트럭터가 실행되는 동안 대이터 그리드…

  • c# task와 async/await 비교

    task와 async/await는 모두 비동기 처리를 구현하는 데에 쓰는 기능들이다. 예를 들어 처리에 오래 걸리는 a, b, c를 연속으로 처리할 때 보통의 방법 즉 동기로 처리하면 각 작업이 돌아가는 동안 애플리캐이션은 먹통이 된다. 이들 작업을 task나 async/await로 처리하면 이것들은 유저 인터패이스 뜨레드에서 벗어나 백그라운드에서 작동하여 애플리캐이션을 멈추지 않게 한다. task는 주로 완전히 떠나 보낼 때 이용한다….

  • 계단 윤곽 없는 조그만 윈도우즈 아이콘 만들기

    윈도우즈는 파일의 확장자가 ico인 파일을 아이콘으로 쓴다. 이는 여느 이미지 파일들과는 달라서 하나의 파일 안에 해상도가 다른 여러 파일들을 저장한다. 윈도우즈는 그 안에서 필요에 맞는 크기의 이미지를 로드한다. 예를 들어 윈도우즈 애플리캐이션 타이틀에 보이는 건 24 픽셀이다. 아이콘 파일은 배경 없는 게 좋다. png나 svg로 배경 없는 이미지를 구현할 수 있다. png는 비트맵이라서 그 크기를…

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

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

  • 추상 클래스와 override

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

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

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