hobbylife의 등록된 링크

 hobbylife로 등록된 티스토리 포스트 수는 23건입니다.

[MFC] Ribbon 구조 정의 XML 및 XML 정렬 사이트(Formatted XML) [내부링크]

XML 로 정리된 문서의 내용을 수정해야하는데, 기존 문서에서 띄어쓰기나 줄바꿈 같은 정렬을 하지 않은 상태였습니다. 도저히 그상태로는 내용 파악이 어려워서 보기 좋게 변환해주는 사이트를 찾아서 사용했습니다. 사용하려고 했던 파일의 형태 해석이 어려워서 XML formatter 기능이 있는 사이트를 이용했습니다. 이걸 이용하니 해석하기 한결 수월해져서 작업속도가 빨라졌습니다. MFC의 Ribbon 구조 정의 이 XML은 MFC의 Ribbon 구조를 나타내는 것으로, 각 요소(Element)는 버튼, 카테고리, 패널 등을 정의하고 있습니다. 1 RibbonBar TRUE TRUE TRUE TRUE FALSE IDB_BUTTONS 113 Button_Main IDB_MAIN 112 Category_Main ..

[MFC] ribbon.mfcribbon-ms 리소스 xml 편집 : RibbonBarEditor, Application Buttion 수정관련 [내부링크]

기존에 개발된 MFC GUI 변경요청으로, Application Button/윈도우스타일/퀵메뉴를 수정하는 일이 생겼습니다. 기본적으로 Application Button을 안보이게 하는 것은 간단한 코드로 해결될 것이라고 생각했는데, 코드로 해결이 되지 않아서 좀 더 확인해보니 리소스를 로드해서 적용하는 방식으로 구성이 되어있었습니다. 다음은 그런 과정을 거쳐서 변경한 내용에 대한 정리입니다. 방법1 : 상단의 Application Button & 퀵 메뉴 숨기기 MFC에서 상단의 Application 버튼과 퀵 메뉴를 보이지 않게 하는 방법은 주로 메인 프레임 윈도우의 초기화 코드에서 해당 요소들을 숨기는 것입니다. // 예제 코드에서는 CMainFrame 클래스를 기준으로 작성되었습니다. // 만약 ..

[C#] 멀티스레드(MTA) 환경에서 프로그램 재시작하는 방법 [내부링크]

GUI 프로그램을 만들면서, 프로그램을 재시작해야할 경우가 생겼습니다. 특정 버튼을 클릭하면, 다른 exe 프로그램을 실행시키고 이후에 다시 본래의 s/w를 시작하는 과정이 필요했는데, 이런 과정에서 필요했던 내용들입니다. 멀티스레드에서 재시작하는 경우: 특징: 다른 스레드에서 프로그램을 재시작할 때, 메인(UI) 스레드와 다른 작업 스레드 간의 동기화에 주의해야 합니다. 프로그램을 재시작하는 동안 다른 스레드에서 실행 중인 작업이 영향을 받을 수 있습니다. UI 스레드와 작업 스레드 간의 통신 및 동기화 문제를 고려해야 합니다. 차이점: 멀티스레드에서 프로그램을 재시작하면, UI 갱신 및 다른 스레드 간의 동기화 문제로 복잡성이 증가합니다. 다른 스레드에서 UI를 조작할 때는 Dispatcher 등을 ..

[c언어] 문자열에 특정 부분 문자열 찾는 함수(strstr)외 문자열 제어함수 9가지 [내부링크]

strstr strstr 함수는 문자열에서 특정 부분 문자열(substring)을 찾는 함수로, C 표준 라이브러리에 포함되어 있습니다. strstr 함수의 전달인자와 반환값, 그리고 사용 방법에 대해 설명하겠습니다. strstr 함수의 전달인자: 대상 문자열 (const char *haystack): 부분 문자열을 찾을 대상이 되는 문자열입니다. 찾을 부분 문자열 (const char *needle): 대상 문자열에서 찾고자 하는 부분 문자열입니다. strstr 함수의 반환값: 부분 문자열의 첫 번째 등장 위치 포인터 (const char *): 대상 문자열에서 찾은 부분 문자열의 첫 번째 문자에 대한 포인터를 반환합니다. 만약 부분 문자열을 찾지 못한 경우에는 NULL을 반환합니다. #include ..

[c언어] fread, fseek, fwrite 전달인자와 사용방법 (파일 입출력) [내부링크]

fread 기능 : 파일에서 데이터를 읽어오는 함수. string fread(resource $handle, int $length); size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream); fread 함수의 전달인자: 데이터를 저장할 버퍼 (void *ptr): 읽어온 데이터를 저장할 메모리 버퍼의 시작 주소를 가리키는 포인터입니다. void * 타입으로 선언되어 있어 어떤 데이터 타입의 버퍼든 사용할 수 있습니다. 각 요소의 크기 (size_t size): 각 요소의 크기를 바이트 단위로 지정합니다. 예를 들어, int 형식의 데이터를 읽을 때는 sizeof(int)와 같이 사용할 수 있습니다. 읽을 요소의 개수 (size_t count):..

파일 복사 시, copy 명령어를 쓰지 않고 버퍼를 사용하는 이유 [내부링크]

파일 복사와 버퍼 사용 파일의 내용을 복사할 때 파일 카피(copy) 함수를 사용하는 것과 직접 버퍼를 만들어서 복사하는 방식은 각각의 장단점이 있습니다. 파일 카피 함수 사용: 간편성 및 효율성: 대부분의 프로그래밍 언어와 운영체제는 파일 복사를 위한 표준 라이브러리 함수를 제공합니다. 이러한 함수들은 내부적으로 최적화되어 있어 효율적으로 파일을 복사할 수 있습니다. 가독성 및 안정성: 표준 라이브러리 함수를 사용하면 일반적으로 코드가 간결하고 가독성이 좋아집니다. 또한, 표준 라이브러리 함수들은 안정성이 검증되어 있기 때문에 에러 처리 등에 대한 부분을 자동으로 처리할 수 있습니다. 직접 버퍼를 만들어 복사: 커스터마이징 가능성: 직접 버퍼를 만들어 복사하는 경우에는 복사하는 과정을 직접 제어할 수 ..

[c언어] sizeof 와 ftell 의 차이점, 사용 목적 [내부링크]

sizeof 와 ftell 의 차이점과 사용 목적 정리 sizeof와 ftell은 서로 다른 목적으로 사용되는 것이기 때문에, 파일 크기를 계산할 때 sizeof를 사용하지 않고 ftell을 사용하는 이유가 있습니다. sizeof: sizeof는 C/C++에서 데이터 타입 또는 변수의 크기를 바이트 단위로 반환하는 연산자입니다. sizeof는 컴파일 시간에 계산되며, 변수의 정적인 크기를 반환합니다. 파일의 크기는 런타임에 결정되는 동적인 값이므로, sizeof는 파일 크기를 구하는 데에 사용할 수 없습니다. ftell: ftell 함수는 파일 포인터의 현재 위치를 바이트 단위로 반환합니다. 파일 포인터의 현재 위치는 파일의 크기와 직접적으로 연관되어 있습니다. 파일의 끝으로 이동하면 파일의 크기를 알 ..

[C언어] C11 : ISO/IEC 9899:2011 특징과 내용 [내부링크]

C11 : ISO/IEC 9899:2011 C11는 C 언어의 표준인 ISO/IEC 9899:2011 표준을 나타냅니다. 이 표준은 2011년에 제정되었으며, 이전의 C99 표준을 대체하고 확장하는 업데이트를 제공합니다. C11 의 특징과 내용 C11는 기존의 C 표준을 더 나은 표준 라이브러리, 향상된 특징 및 더 많은 확장과 함께 업데이트했습니다. C 프로그래머에게 더 많은 도구와 선택지를 제공하여 효율적이고 안전한 프로그래밍을 할 수 있도록 돕고 있습니다. 특 징 설 명 예제 코드 Atomic Operations 원자 연산을 위한 표준 라이브러리 함수인 가 추가되었습니다. c #include int main() { atomic_int counter = ATOMIC_VAR_INIT(0); atomic..

[C언어] fopen 대신 fopen_s 를 사용하는 이유, 특징 정리 [내부링크]

fopen_s 사용하는 이유 fopen_s 함수는 파일을 열기 위한 안전한 버전의 함수로, C11 표준에서 도입되었습니다. 이 함수는 버퍼 오버플로우 등의 보안 문제를 방지하기 위해 기존의 fopen 함수를 대체하는 목적으로 도입되었습니다. errno_t fopen_s(FILE** stream, const char* filename, const char* mode); fopen_s 함수의 전달인자: 파일 포인터의 주소 (FILE** stream): 파일 포인터를 저장할 변수의 주소입니다. 파일을 열고 난 후에 이 변수에 파일 포인터가 저장됩니다. 파일 경로 (const char* filename): 열고자 하는 파일의 경로를 나타내는 문자열입니다. 파일 열기 모드 (const char* mode): 파일..

[MFC] CCmdUI 의 특징과 기능 [내부링크]

CCmdUI 특징과 기능 CCmdUI는 MFC(Microsoft Foundation Classes) 라이브러리에서 제공되는 클래스 중 하나로, 메뉴 및 툴바 항목과 연결된 명령 상태(Command User Interface) 정보를 관리하는 데 사용됩니다. MFC는 주로 Windows 기반 응용 프로그램을 개발하기 위한 Microsoft의 C++ 라이브러리입니다. CCmdUI 클래스의 주요 특징 및 기능은 다음과 같습니다: 명령 상태 관리: CCmdUI는 주로 명령 상태를 관리하는 데 사용됩니다. 명령 상태란 메뉴 항목 또는 툴바 버튼이 활성화, 비활성화, 선택된 상태 등 어떤 상태에 있는지를 나타냅니다. 예를 들어, 특정 조건에서 메뉴 항목이나 툴바 버튼을 비활성화하고 싶을 때 CCmdUI를 사용하여 ..

파이썬 파일이동 os.rename, shutil.move 차이와 사용 방법 [내부링크]

개발 PC에서는 os 코드로 파일이동이 잘 되었는데, 배포 exe를 만들고 다른 pc에서 동작시켰더니 파일이동이 안됐다. PC 사용자 계정문제 인가 싶어서, 실행파일을 관리자권한으로 실행했는데, 동작이 안됐고 폴더자체의 권한설정을 바꿔서 했는데도, 동작이 안됐다. 그런데, 폴더를 변경하지 않고 동작시키면 (os 모듈에서 파일이동을 사용하지 않으면) S/W의 전체적인 동작이 잘됐다. 결국, 파일이동할 때 문제가 생기는거라서, 파일이동을 시키는 코드를 확인하니 os.rename()을 사용하고 있었다. os.rename 과 shutil.move의 차이점 원자성(Atomicity): os.rename은 파일 또는 디렉토리 이동이 원자적이지 않습니다. 즉, 파일 이동 중 오류가 발생하면 중간 상태로 남을 수 있습..

stricmp 와 strnicmp 차이점과 사용방법 [내부링크]

stricmp (strcasecmp) stricmp 함수는 C 언어의 표준 라이브러리 함수 중 하나로, 두 개의 문자열을 대소문자를 구별하지 않고 비교하는 역할을 합니다. stricmp 함수는 두 문자열이 동일하면 0을 반환하고, 첫 번째 문자열이 두 번째 문자열보다 사전적으로 작으면 음수를, 크면 양수를 반환합니다. stricmp는 일부 특정 플랫폼이나 컴파일러에서 제공되는 확장 함수입니다. 대신, 표준 함수인 strcasecmp를 사용할 수 있는 경우가 많습니다. int strcasecmp(const char *s1, const char *s2); s1: 비교할 첫 번째 문자열의 포인터입니다. s2: 비교할 두 번째 문자열의 포인터입니다. strcasecmp 함수는 비교 결과에 따라 다음과 같은 값을..

vsnprintf 의 기능과 가변인자(va_list) 리스트 사용 방법 [내부링크]

vsnprintf(buf, sizeof(buf), fmt, vl)의 기능 vsnprintf 함수는 형식 문자열과 가변 인자 리스트를 받아서 문자열을 생성하는 함수입니다. 이 함수는 printf와 비슷하지만, 출력 대상이 버퍼에 저장된다는 점이 다릅니다. 함수의 원형은 다음과 같습니다. int vsnprintf(char *buf, size_t size, const char *fmt, va_list vl); buf: 문자열을 저장할 버퍼의 포인터입니다. size: 버퍼의 크기입니다. 버퍼에 저장할 수 있는 최대 문자 수를 나타냅니다. fmt: 형식 문자열입니다. 이는 printf와 동일한 형식을 사용합니다. vl: 가변 인자 리스트입니다. va_start 및 va_arg와 함께 사용됩니다. vsnprintf..

LGPL(Lesser General Public License)의 특징 [내부링크]

LGPL(Lesser General Public License) LGPL (Lesser General Public License)은 GNU General Public License (GPL)의 한 종류로, 오픈 소스 소프트웨어의 배포와 수정을 규제하는 데 사용되는 라이선스입니다. LGPL-3.0은 LGPL의 최신 버전 중 하나이다 LGPL 특징 소프트웨어 수정의 자유 사용자는 LGPL-3.0 소프트웨어를 수정하고 자신의 프로그램에 통합할 수 있습니다. 파생작품 배포 수정한 소스 코드를 수정된 형태로 다시 배포할 때 해당 소스 코드도 LGPL-3.0으로 라이선스해야 합니다. 라이브러리 및 동적 링크 허용 LGPL-3.0 소프트웨어를 사용하는 응용 프로그램이나 라이브러리를 동적으로 링크할 수 있습니다. 상용..

파이썬 딕셔너리 사용방법 : 생성/삭제/업데이트/병합/정렬/제거 [내부링크]

1. 딕셔너리의 생성: d = { 'key':'value' } 2. 딕셔너리의 업데이트: d['key'] = 'new_value' 3. 키에 값 할당: d['new_key'] = 'value' 4. 딕셔너리의 길이 구하기: len(d) 5. 딕셔너리의 값 가져오기: d['key'] 6. 딕셔너리를 반복문으로 순회하기: for key, value in d.items(): print(key, value) 7. 키로 값 얻기: d.get('key') 8. 딕셔너리에서 키 제거하기: del d['key'] 9. 값이 있는지 검사하기: 'key' in d 10. 딕셔너리에서 모든 값 얻기: d.values() 11. 딕셔너리에서 모든 키 얻기: d.keys() 12. 딕셔너리의 모든 항목 제거하기: d.clear..

파이썬 리스트 사용방법 - 생성/삽입/슬라이싱/교집합/정렬/카운트 [내부링크]

1. 리스트 생성 mylist = [1, 2, 3, 4, 5] 2. 리스트 요소 삽입 mylist.insert(1, "A") # mylist = [1, "A", 2, 3, 4, 5] 3. 리스트 요소 수정 mylist[2] = "B" # mylist = [1, "A", "B", 3, 4, 5] 4. 리스트 슬라이싱 mylist[2:4] # ["B", 3] 5. 리스트 내포 mylist = [x for x in range(5)] # mylist = [0, 1, 2, 3, 4] 6. 리스트 병합 mylist = mylist + [5, 6, 7] # mylist = [0, 1, 2, 3, 4, 5, 6, 7] 7. 리스트 요소 제거 mylist.remove(3) # mylist = [0, 1, 2, 4, 5,..

파이썬 기본 커리큘럼 - 변수와 자료형 [내부링크]

[ 파이썬 기본 커리큘럼] 1. 파이썬 기본 문법 - 변수와 자료형 1) 파이썬 변수 파이썬에서 변수는 어떤 값을 저장하기 위해 메모리에 할당하는 공간이다. 변수로 사용할 수 있는 값은 문자열, 정수, 실수, 불리언이다. 2) 파이썬 자료형 파이썬의 자료형의 종류는 숫자형, 문자형, 리스트, 튜플, 딕셔너리, 집합이다. 2-1) 숫자형은 정수, 실수, 복소수 등으로 구분. 2-2) 문자형은 문자나 문자열로 구분. 2-3) 리스트, 튜플, 딕셔너리, 집합은 각각의 요소들로 구성됨. - 연산자 - 조건문, 반복문 - 함수 - 클래스 2. 파이썬 기반 자료구조 - 리스트 - 딕셔너리 - 튜플 - 세트 3. 파이썬 기반 프로그래밍 - 입출력 - 파일 입출력 - 모듈 4. 예외처리 - 예외 상황을 처리하기 위한 ..

Unix/Linux 시작하기, 기본 명령어 [내부링크]

A. Unix/Linux 시작하기 1) 계정 : 사용자 인증, 계정은 시스템 관리자가 발급. 2) 서버접속 : IP주소, 도메인 이름, 프로토콜 정보 필요. (과거에는 telnet, 지금은 보안이 강화된 SSH(Secure SHell)을 주로 사용) B. Unix/Linux 기본 명령어 cp : copy , 디렉토리를 복사할때는 -r 옵션을 주어야함. mv : move rm : remove head : 파일의 앞부분을 보고 싶은 줄 수만큼 보여줌. 옵션이 없으면 상위 10줄 표시 tail : 파일의 뒷부분을 보고 싶은 줄 수만큼 보여줌. find : 특정 파일이나 디렉토리를 검색함, find [검색경로] -name [파일명] gzip : 파일 압축, gzip [filename], 압축해제 : gzip -..

운영체제(OS)의 역사와 슈퍼컴퓨터 [내부링크]

운영체제 (Operating System) - 일반적인 운영체제의 종류 : Microsoft Windows, MacOS X - 서버 운영에 많이 쓰이는 운영체제 : UNIX 계열의 운영체제. - 운영체제(OS)의 목적 : 컴퓨터의 성능을 최대로 발휘시키는데 있어서 가장 중요함. UNIX의 시작 - UNIX의 특징 : 1970년대 개발, 멀티태스킹(Multitasking)과 멀티유저(Multiuser) 지원 - UNIX의 시작 배경 : 그 당시 한 대의 거대한 컴퓨터(메인 프레임 등)을 여러 사람이 터미널을 통해서 접속하여 사용하는 구조여서 시작됨. * 메인프레임(mainframe) 컴퓨터 : 1950년대 후반부터 1970년대에 주로 제작됨. IBM, Burroghs, UNIVAC, NCR, Control..

파이썬의 버전별 특징과 요약 정리 [내부링크]

#Python 요약 파이썬은 응용 프로그램과 웹사이트 개발에 널리 사용되는 강력하고 다목적인 프로그래밍 언어이다. 동적 의미론을 가진 해석된 객체 지향 고급 프로그래밍 언어이다. 사용하기 쉽고 배우기 쉬운 언어로, 명확한 구문과 가독성으로 인해 개발자들에게 인기를 끌고 있다. 파이썬은 간단한 스크립트에서 복잡한 기계 학습 알고리즘에 이르는 응용 프로그램을 만드는 데 사용된다. 파이썬은 1991년부터 존재해 왔으며 현재 가장 인기 있는 프로그래밍 언어 중 하나이다. 그것은 웹 애플리케이션, 데이터 과학 프로젝트 등을 만드는 데 사용되어 왔다. 파이썬은 자유롭게 사용하고 수정할 수 있는 오픈 소스 언어이다. ##파이썬 버전정보 ###파이썬 3 파이썬 3는 파이썬 언어의 최신 버전이다. 2008년에 출시되었으..

빛의 화가 모네 전시회, 클레머티스 [내부링크]

#Repost @bon_davinci with @repostapp. ・・・ [모네, 빛을 그리다 展] White Clematis(1887) 나의 인생은 내가 하는 일, 즉 오로지 내 그림만을 생각하며 지나가네. 저녁이 오면 나는 다시 되뇌고, 그날 내가 한 일만을 생각하네. 더 잘 하려는 희망을 가지고, 그다음 날을 열망하면서 말이네.(모네의 편지 중에서) 전시 : 모네, 빛을 그리다 展 장소 : 용산 전쟁기념관 기간 : 2015. 12. 11(금) ~ 2016. 5. 8(일) #클로드모네 #모네 #모네전 #모네빛을그리다전 #용산전쟁기념관 #본다빈치 #미디어아트 #인상주의 #인상파 #빛 #색채 #전시회 #4월의추천전시 #전시회데이트

[이태원 맛집] 라이브음악, 재즈와 와인이 흐르는 까페 & 분위기 좋은 레스토랑 - ALLEY [내부링크]

지난 금요일 인스타 친구분이 알려주신 재즈 공연이 있어서, 이태원에 갔습니다.지인의 공연이고 와인이 한병에 2만원이고 기본스낵을 제공한다고 설명해줘서 친구들과 공연을 보러 갔습니다.처음 들어보는 재즈라는 것과 와인 값이 싸다는 큰 장점으로 호기심이 동했습니다.공연을 하는 곳은 앨리(ALLEY)라는 곳이 었습니다. 앨리는 이태원역 4번 출구방향으로 길을 따라 오다가, 길의 끝쯤에 있는 골목으로 들어오면 되었습니다.작은 골목으로 들어가면 골목 갤러리라는 간판이 나오게 됩니다. 간판을 확인하고 조금 더 안쪽으로 들어가면 여러가게들이 보입니다.조금만 더 걸어서 골목을 휙 돌면 목적지인 앨리 ALLEY 까페가 나타납니다. 처음 예상은 공연장느낌의 공간이라고 생각했었는데, 공연뿐만아니라 여러 요리를 먹을 수 있는 ..

[이태원 맛집] 제육볶음과 돼지김치찌게가 맛있는 고기집 - 초원식당, 이태원역 [내부링크]

이태원에 약속이 있어서 지인들끼리 모여서 이동하고 있었습니다.그런데 약속은 9시이고, 현재는 7시 반이고 모두 저녁 전이었기때문에 저녁을 먹고 이동하기로 했습니다.동행한 지인중에 이태원을 잘 아시는(맛집을 잘 아시는) 분이 있어서 지인추천으로 밥집을 정했습니다.그렇게 추전을 받았던 추천내용은 "제육볶음과 돼지김치찌게가 맛있다" 였습니다.그래서 같이 가게 된 곳은 "초원식당" 입니다.초원식당은 이태원역 3번 출구랑 가까웠고 깊은 골목에 위치하지 않아서,찾아가기가 매우 쉬웠습니다. 골목에 들어서서 조금 걷다보니 가게의 간판이 보였습니다.간판이 잘보이도록 강조를 많이해서 그런지 멀리서도 잘 보였습니다.그리고 출입구 양 옆으로 식당에서 판매하는 메뉴를 볼 수 있도록 해 놓았습니다.삼계탕, 대구탕, 닭도리탕, 생..