반응형
반응형
이번 포스팅에서는 Windows C/C++ 프로젝트에 블록암호 알고리즘(LEA) 모듈을 적용하기 위한 기초 내용 조사 및 실제 적용 테스트에 관한 내용을 다룹니다. 저는 클라이언트 프로그램에 서버 계정과 패스워드를 저장하여 자동 로그인 기능을 구현하기 위해 블록암호 알고리즘 모듈을 적용하려고 합니다. 1. 암호알고리즘 용어 정리평문(Plaintext, P) : 암호화되지 않은 평범한 데이터 또는 메시지암호문(Ciphertext, C) : 암호화된 형태의 데이터 또는 메시지암호화(Encryption, E) : 평문을 암호문으로 변환하는 과정복호화(Decryption, D) : 암호문을 본래의 평문으로 복원하는 과정2. 각 기준별 암호알고리즘 분류공개키암호: RSAES(2048, 3072)키 설정: DH, ..
SQLite는 작고, 빠르고, 믿을 수 있는 세계에서 가장 많이 사용되는 관계형 데이터베이스로서 1조 개가 넘는 SQLite 데이터베이스가 사용되고 있다고 합니다. 또한 모든 iOS, Android, Mac, Windows 디바이스 및 인터넷브라우저와 IoT 디바이스에서 사용할 수 있습니다. 단일 데이터베이스 파일의 최대 크기는 281TB라고 합니다. 1. SQLite 특징작은 사이즈: MySQL이나 PostgreSQL과 같은 데이터베이스는 클라이언트/서버 데이터베이스서 일반적으로 자체 디스크와 메모리가 있는 서버에서 별도의 프로세스로 실행해야 합니다. SQLite는 이와 반대로 임베디드 데이터베이스입니다. 즉 데이터베이스가 디바이스, 서버 또는 스마트폰 자체에 내장됩니다. SQLite 데이터베이스는 독..
Thread를 원하는 시간에만 동작시키려면? 특정 조건에서 멈추거나 종료하려면? Thread 동작 상태를 파악하려면? Thread 동적 관리 기능이 필요합니다. 이번 포스팅에서는 프로그램 개발단계부터 디버깅 용도로 유용하게 활용할 수 있는 Thread 관리기능(생성, 서스펜션, 디스트로이) 구현 방안을 예제 기반으로 설명해 보겠습니다. 이하 본문에서는 Thread를 태스크(TASK)라 지칭하도록 하겠습니다.1. 동적 관리기능 요구사항태스크 동적 관리기능의 구현에 앞서 반영할 요구사항은 다음과 같습니다.프로그램 동작 상태에서 동적으로 태스크를 생성, 중지, 종료할 수 있어야 한다.활용 가능한 태스크 목록을 관리하고 정보를 제공할 수 있어야 한다.태스크 상태를 확인할 수 있어야 한다.태스크 추가/삭제가 용..
코인 거래소는 24시간 365일 거래일이지만 국내 주식 시장은 예정된 이벤트(선거일, 대체공휴일 등) 등으로 토요일과 일요일 이외에도 휴장 하게 됩니다. 파이썬은 관련 모듈이 제공되어 즉시 사용가능 하지만 C/C++ 플랫폼에서의 사용을 위하여 주식시장 휴일 캘린더 클래스를 직접 구현해 보았습니다.1. 휴장일 데이터 확보하기휴장일 정보는 한국거래소 홈페이지의 KRX 시장 > 시장동향 > 증시일정 > 휴장일 경로에서 확인할 수 있고 엑셀 파일로 다운로드 가능 합니다.URL 경로: https://open.krx.co.kr/2. 휴장일 데이터 가공 및 소스코드화KRX에서 제공하는 휴장일 데이터의 메타데이터는 "일자 및 요일", "요일구분", "비고"로서 데이터 샘플은"2017-01-27", "금..
이번 포스팅에서는 대전 용문동4구역 재개발 주민설명회 내용을 공유해 드리겠습니다.추진준비위원회, 사업개요, 조합원 혜택에 대한 정보를 확인하실 수 있습니다. 주민설명회는 2024년 4월 9일 오후 7시 용문교회에서 개최되었습니다. 용문동4구역은 용문동123구역의 둔산더샵엘리프 바로 옆에 위치한 구역입니다.용문동123구역이 본격 추진될 때 용문동4구역은 원룸건물 등 다세대를 처지어 올려서 지분 부풀리기, 쪼개기를 시도한외지인들 때문에 노후도 점수에 악영향을 받아서 같이 진행되지 못하였습니다. 또한, 코로나 시국으로 인하여 총회 등 주민의견수렴에 차질이 발생하여 이제야 본격적인 활동을 시작한 시점입니다.용문4구역의 재개발이 순탄하게 진행되기 위해서는 서구청에 지속적으로 악성민원을 넣어 진행을 방해하는 세력에..
MFC의 CMap 클래스는 키와 값의 쌍으로 이루어진 맵을 구현하는 클래스입니다. C++ 표준라이브러리의 map 클래스와 유사하지만 MFC에 특화된 기능을 추가로 제공합니다. CMap 클래스는 MFC에 종속적입니다. 이번 포스팅에서는 CMap 클래스 초기화, 삽입, 탐색, 삭제 등을 예제 코드로 알아보겠습니다. 1. CMap 클래스 사용사례 배열이나 리스트로 자료를 관리해야 할 때 특정 값이 어느 인덱스에 있는지 찾으려면 탐색을 해야 하는데 최악의 경우 N-1까지 탐색을 해야 합니다. 이때 찾으려는 값을 KEY, 인덱스를 VALUE로 CMap에 저장해 두면 deterministic 하게 탐색 가능합니다. 2. CMap 클래스 설명 CMap을 사용하려면 CMap 인스턴스를 생성해야 하는데 공식 MSDN 구..
소켓 재활용은 이미 연결이 끊어진 소켓을 재사용하는 기술입니다. 소켓을 재활용하면 새로운 소켓을 생성하지 않고 기존 소켓을 활용하여 새로운 연결을 맺을 수 있습니다. 즉 소켓 생성 및 소켓 핸들 관리에 필요한 시스템 리소스를 절약할 수 있습니다. 소켓을 재활용하기 위해서는 소켓 연결이 끊어진 상태여야 합니다. 서버 관점에서 클라이언트의 접속을 비동기로 처리하는 과정은 다음과 같습니다. 리슨 소켓 생성 및 리슨 포트 바인드 소켓 미리 생성 후 대기 소켓 풀에 등록 클라이언트 접속 종료 시 사용한 소켓 재사용처리 후 대기 소켓 풀에 등록 예제 코드는 IOCP 기반입니다. 이해가 되지 않으면 다음의 IOCP 프로토타입 포스팅을 참고하세요. 2023.12.13 - [프로그래밍/C | C++] - IOCP 기반 ..
이번 포스팅에서는 데이터를 추출하거나 조회할 때 사용하는 SELECT SQL을 알아보겠습니다. 예제 SQL 구문을 작성하기 위한 샘플 데이터 테이블 구조는 아래 그림을 참고해 주세요. 구입한 책을 보며 직접 따라한 결과를 리마인드 할 겸 일기 형식으로 기록한 것입니다. 테이블 구조는 행(ROW)과 열(COLUMN)의 이차원 구조로 이루어져 있습니다. SELECT SQL 기본 문법 위의 'stock' 테이블을 조회하려면 다음의 SQL 쿼리를 실행하면 됩니다. SELECT * FROM STOCK; 쿼리문 작성 시 대소문자는 구분하지 않습니다. 또한 쿼리문의 끝은 다른 프로그래밍 언어와 유사하게 세미콜론(';')으로 구분합니다. 단어와 단어 사이는 띄어쓰기를 하거나 줄 바꿈을 하거나 상관없고 세미콜론으로 마침..