중첩 블록({})를 지양하는 코딩 스타일코드에서 중첩된 블록({})이 많아지면 가독성이 떨어지고 유지보수가 어려워집니다. 이를 방지하기 위해 Guard Clause Pattern을 사용하여 중첩을 줄이는 방식을 추천합니다.특징 및 장점가독성 향상: 중첩을 줄여 코드가 직관적이고 깔끔하게 보입니다.유지보수 용이: 조건을 만족하지 않을 경우 조기에 종료하여 추가적인 처리가 필요하지 않습니다.로직 흐름 단순화: 여러 if 문이 중첩되지 않아 조건 확인이 단순해집니다.나쁜 예: 중첩된 코드int myFunc(){ if (true == foo1()) { if (true == foo2()) { if (true == foo3()) { ..
C++ 요다 스타일 (Yoda Style)C++에서 요다 스타일(Yoda Style)은 조건문을 작성할 때 값이나 상수를 먼저 쓰는 방식으로, 스타워즈의 요다의 말투에서 영감을 받아 이름 붙여졌습니다.일반적인 조건문if (x == 42) { // 무언가를 수행}요다 스타일 조건문if (42 == x) { // 무언가를 수행}요다 스타일의 장점실수로 =(대입 연산자)를 사용하는 것을 방지할 수 있음컴파일 에러를 통해 잘못된 조건을 쉽게 찾을 수 있음예시:if (42 = x) { // 요다 스타일에서는 컴파일 에러 // 무언가를 수행}요다 스타일의 단점가독성이 낮아 처음 보는 사람에게는 읽기 어려움최신 컴파일러에서는 =와 == 혼동 시 경고를 제공함결론요다 스타일은 주로 과거 컴파일러의 제..

주요 기능 설명환형 큐:m_vQueue 벡터를 사용하여 환형 버퍼를 관리합니다.m_nHead와 m_nTail을 사용하여 큐의 시작과 끝을 관리합니다.멀티스레드 동작:std::mutex와 std::condition_variable을 사용하여 스레드 안전성을 보장합니다.Push와 Pop은 동기화되어 있으며, 상태에 따라 조건 변수를 사용하여 대기 상태를 처리합니다.큐 크기 확장:Push 메서드는 큐가 꽉 찬 경우 Resize를 호출하여 크기를 두 배로 확장합니다.큐 크기 축소:Pop 메서드와 MonitorQueue 메서드는 큐 크기가 일정 비율 이하로 줄어들면 크기를 절반으로 축소합니다.크기 축소는 최소 용량(m_nMinCapacity) 이하로는 진행되지 않습니다.모니터링 쓰레드:MonitorQueue 메서..
Thread와 싱글톤 상속의 문제점싱글톤과 Thread 클래스를 동시에 상속받는 것은 초기에는 코드가 간단해 보일 수 있지만, 실제로는 런타임 오류와 메모리 관리 문제를 일으킬 수 있는 설계상 큰 위험 요소입니다. 이 두 가지 상속의 문제점과 해결책을 정리해 보았습니다.문제점수명 관리 문제싱글톤 객체는 프로그램이 종료될 때까지 유지되지만, Thread 객체는 독립적으로 실행 및 종료되어야 합니다. 두 객체를 동시에 상속받을 경우, 싱글톤 객체의 수명이 Thread의 종료 타이밍에 영향을 미칠 수 있어 DLL 언로드나 프로그램 종료 시점에서 예기치 않은 문제가 발생할 수 있습니다.컴파일 타임 검증의 부재C++에서는 기본적으로 두 클래스를 상속받는 것에 대해 명시적인 제한이 없기 때문에, 개발자는 이러한 설..

#pragma pack 지시자는 구조체, 클래스, 또는 유니언의 멤버들이 메모리에 어떻게 배치되는지를 제어하는 데 사용됩니다. 기본적으로 컴파일러는 멤버들을 특정 바이트 경계에 맞추기 위해 패딩을 추가하여 최적의 성능을 보장하지만, 특정 상황에서는 이 패딩을 제거하고 메모리 사용을 최소화해야 할 필요가 있습니다. 이를 위해 #pragma pack을 사용하여 멤버들의 정렬 단위를 변경할 수 있습니다.#pragma pack 사용법#pragma pack(push, 1)과 #pragma pack(pop)은 구조체, 클래스, 유니언의 멤버 정렬을 제어하는 데 사용됩니다. 이 설정은 데이터 패딩을 줄여 메모리 사용을 최적화하거나, 파일 포맷 및 네트워크 프로토콜과 같은 특정 데이터 포맷과의 호환성을 위해 자주 사용..

사설 인증서 발급 방법 1. OpenSSL을 이용한 사설 인증서 발급 1.1. OpenSSL 설치 Windows에서는 OpenSSL for Windows를 설치합니다. Linux나 macOS에서는 패키지 관리자를 이용해 설치할 수 있습니다. 1.2. 사설 CA 키와 인증서 생성 사설 CA의 비밀키와 인증서를 생성합니다: openssl genpkey -algorithm RSA -out ca-key.pem -aes256 openssl req -x509 -new -nodes -key ca-key.pem -sha256 -days 3650 -out ca-cert.pem ..
- Total
- Today
- Yesterday
- 제주도
- C#
- 패턴
- ip
- 현포다이브
- 블루버블다이브팀
- 울릉도
- 디자인패턴
- 리눅스
- C++
- 암호화
- Windows
- 성산블루버블
- ReFS
- OpenSource
- C
- 서귀포블루버블
- Linux
- PowerShell
- DLL
- 윈도우
- Build
- 블루버블
- 서귀포
- C# 고급 기술
- 스쿠버다이빙
- Thread
- 블루버블다이빙팀
- C#.NET
- CMake
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |