프로세스(Process)와 쓰레드(Thread)는 둘 다 동시에 여러 작업을 수행하는데 사용되는 개념이지만, 몇 가지 중요한 차이점이 있습니다. 독립성: 프로세스: 각 프로세스는 독립된 메모리 공간을 가지며, 한 프로세스의 오류가 다른 프로세스에 영향을 미치지 않습니다. 각 프로세스는 운영체제에 의해 별도로 관리됩니다. 쓰레드: 쓰레드는 프로세스 내에서 실행되는 여러 실행 흐름으로, 같은 프로세스 내의 쓰레드들은 같은 메모리 공간을 공유합니다. 따라서 쓰레드 간에는 데이터를 쉽게 공유할 수 있습니다. 자원 사용: 프로세스: 각 프로세스는 운영체제로부터 독립적인 자원을 할당받습니다. 이로 인해 프로세스 간 통신이나 데이터 공유에는 별도의 메커니즘이 필요합니다. 쓰레드: 쓰레드는 같은 프로세스 내의 다른 쓰..
깊이 우선 탐색 (DFS - Depth-First Search): 설명: DFS는 그래프나 트리에서 깊은 부분을 우선적으로 탐색하는 알고리즘입니다. 한 경로를 끝까지 탐색한 후, 되돌아와서 다음 경로를 탐색하는 방식입니다. 장점: 간단하고 직관적인 구현이 가능합니다. 깊은 경로를 먼저 탐색하여 목표에 빠르게 도달할 수 있습니다. 단점: 최단 경로를 보장하지 않습니다. 무한 루프에 빠질 수 있으며, 이를 방지하기 위해 방문한 노드를 기록하는 추가적인 공간이 필요합니다. 특정 상황에서는 최적의 해를 찾지 못할 수 있습니다. 너비 우선 탐색 (BFS - Breadth-First Search): 설명: BFS는 그래프나 트리를 가로지르며 너비를 기준으로 우선적으로 탐색하는 알고리즘입니다. 한 노드에서 인접한 노..
Windows 윈도우 기반의 코드 서명은 개발자가 제작한 소프트웨어나 파일에 디지털 서명을 적용하는 프로세스입니다. 이는 사용자에게 소프트웨어의 출처와 무결성을 보장하고, 보안 경고를 최소화하는 데 도움이 됩니다. 아래는 Windows 환경에서 코드 서명을 하는 방법에 대한 간략한 가이드입니다: 참고: 코드 서명을 위해서는 디지털 인증서가 필요하며, 이는 신뢰할 수 있는 Certificate Authority(CA)에서 구입하거나 자체적으로 생성할 수 있습니다. 디지털 인증서 생성: 개발자는 디지털 서명을 위한 개인 키와 공개 키를 가지고 있는 디지털 인증서를 생성해야 합니다. 디지털 인증서 저장: 생성한 디지털 인증서와 개인 키는 안전한 곳에 저장되어야 합니다. 개인 키는 노출되지 않도록 주의해야 합니..
함수 및 인자 명명법에 대한 고찰 1. 기본 함수 정의 우리가 처음 배우는 함수명은 대부분 다음과 같은 형태입니다: void foo();void boo(); 하지만 이러한 함수명은 그 목적과 기능을 전혀 알 수 없기 때문에 적절하지 않습니다. 함수가 어떤 동작을 수행하는지, 리턴 값이 무엇을 의미하는지 알 수 있도록 함수명을 명확하게 짓는 것이 필요합니다. 2. 리턴 값이 있는 함수 리턴 값을 사용하는 경우 함수명을 통해 그 역할을 더욱 명확하게 나타낼 수 있습니다: bool foo(); // 성공 또는 실패를 리턴LRESULT boo(); // 특정 결과 코드 리턴 3. 함수명..
구조체 초기화 및 동적 할당 초기화의 중요성 1. 구조체 및 동적 할당 초기화 프로그래머들은 구조체를 사용하고 동적으로 메모리를 할당할 때, 메모리를 초기화하는 다양한 방법을 사용합니다. 하지만 기본적으로 컴파일러가 자동으로 메모리를 초기화하지 않는다면, 다음과 같은 함수들을 사용하여 초기화 작업을 해야 합니다: ::ZeroMemory(메모리 주소, 크기) memset(메모리 주소, 값, 크기) 2. 코드 예시 struct Data{ int nData1; bool bData2;};Data *pData = new Data;// 메모리 초기화::ZeroMemory(pData, sizeof(Data));::memset..
CPU 점유율 제어와 Sleep() 함수 사용1. 과도한 반복문에는 Sleep()을 사용하자무한 반복문이나 자원을 많이 소모하는 루프에서는 Sleep()을 적절히 사용하여 CPU 자원의 독점을 방지해야 합니다. 그렇지 않으면 CPU를 과도하게 점유하게 되어 프로그램이 느려지거나 UI가 응답하지 않게 될 수 있습니다.2. Windows 프로그램의 멀티 스레드 환경Windows 환경에서 UI 스레드와 기능을 처리하는 다른 스레드는 자원을 공유하게 됩니다. 이때 특정 스레드가 CPU를 과도하게 사용하면 UI 스레드가 응답하지 않거나 프로그램이 멈출 수 있습니다. 예를 들어, 무한 반복문이 있는 코드에서 CPU 100% 점유가 발생할 수 있습니다.3. CPU 100% 점유 코드 예시#include "stdafx..
- Total
- Today
- Yesterday
- 스쿠버 다이빙
- ip
- C
- 블루버블다이빙팀
- 리눅스
- 현포다이브
- C#.NET
- 제주도
- 성산블루버블
- C++
- Build
- 스쿠버다이빙
- 서귀포
- C# 고급 기술
- PowerShell
- 서귀포블루버블
- OpenSource
- 블루버블다이브팀
- DLL
- 울릉도
- 외돌개
- 암호화
- 윈도우
- CMake
- 패턴
- 블루버블
- C#
- Thread
- Windows
- Linux
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |