2024/03 25

[Embedded] Capacitor (커패시터, 축전기)

Capacitor는 전기 에너지를 저장하고 방출하는 전자 부품이다. 흔히 콘덴서(condensor)라고도 불리는데, 'condensor'는 영미권에서 응축기의 의미로 사용되는 경우가 많다. 유전체라는 절연 재료로 분리된 두개의 도체로 구성된다. 도체에 전압이 가해지면 유전체에 전기장이 발생해 한 도체에는 양전하가, 다른 도채에는 음전하가 쌓이게 된다. 이러한 전하 저장 능력 덕분에 Capacitor는 전원 공급 장치, 신호 필터링, 타이밍 애플리케이션 등 전기 및 전자 회로에서 다양한 기능을 수행할 수 있다. Capacitor의 기본 단위는 farad(F, 패럿 - 마이클 패러데이의 이름에서 따왔다.)으로 Capacitor의 플레이트에 단위 전압당 전하를 저장할 수 있는 능력을 측정하는 단위다. 그러나 ..

[Algorithm] Lowest Common Ancestor (LCA)

이진 트리 또는 이진 검색 트리(BST)에서 두 노드의 최하 공통 조상(LCA)를 찾는 데는 몇 가지 일반적인 접근 방식이 있다. 가장 좋은 방법은 트리이 특정 특성(BST 인지, 균형이 잡혀있는지(balanced) 등)과 추가 정보 (각 노드의 조상 또는 트리의 전처리 기능 등)에 따라 달라진다. 아래는 몇 가지 일반적인 방법이다. Single Traveral Method (단일 순회 방법, 재귀 사용) : 이 방법은 추가 정보가 제공되지 않는 트리에서 LCA를 찾는 데 널리 사용되는 방법이다. 아이디어 : 루트에서 시작해 트리를 순회한다. 각 노드에 대해 현재 노드가 LCA를 찾고자 하는 두 노드 중 하나인지 확인한다. 맞다면 현재 노드를 반환한다. 그렇지 않으면 왼쪽 및 오른쪽 자식에 대해 재귀 호..

[Tech, etc.] DSF - 2

DSF 약어는 상황에 따라 다양한 유형의 파일 형식을 나타내며, 그 중 하나는 소프트웨어 개발 및 프로그래밍에 사용된다. 이전 포스팅의 고해상도 오디오에 사용되는 Direct Stream Digital (DSD) 오디오 파일 형식 외에도 DSF는 소프트웨어 애플리케이션의 데이터를 로드, 조작 또는 포함하는 데 사용되는 파일 형식을 지칭할 수도 있다. 소프트웨어 개발 및 프로그래밍 문맥에서 DSF 파일은 아래와 같다. Delusion Digital Sound File : 사운드 데이터를 저장하기 위해 구형 컴퓨터 게임이나 응용 프로그램에 사용된다. Dyalog APL Seed File : 작업 공간 데이터를 저장하기 위해 고급 프로그래밍 언어인 Dyalog APL에서 사용된다. Document Struct..

[Tech, etc.] DSF - 1

DSF 파일은 디지털 오디오 콘텐츠, 특히 DSD(Digital Stream Digital) 포맷을 저장하는 데 사용된다. 이 형식은 일반적으로 고해상도 오디오 파일에 사용되는데, DSF 형식을 사용하면 트랙 제목, 앨범 아트, 아티스트 세부 정보와 같은 정보를 포함한 메타데이터를 오디오 데이터와 함께 저장할 수 있다. 특히 원본 스튜디오 녹음의 고음질을 보존할 수 있어 오디오 애호가와 전문 오디오 제작 환경에서 선호되는 형식이다. DSF 파일은 고해상도 오디오 포맷으로 음악을 배포하는 데 자주 사용되며, 기존의 컴팩트 디스크 디지털 오디오를 능가하는 수준의 음질을 제공한다.

[C++] Windows Application Subsystem

Windows 애플리케이션은 Console, Windows 두 개의 하위 시스템으로 컴파일이 가능하고, 이 설정은 런타임에 운영체제가 애플리케이션을 어떻게 처리할지를 결정한다. Console Application (CONSOLE subsystem) : 이 유형의 애플리케이션은 console/terminal 과 상호 작용하도록 설계됐다. 실행 시 Windows는 애플리케이션에 콘솔 창은 열결해 std::cout, std::cin 및 기타 표준 C++ I/O 작업을 콘솔 창에서 볼 수 있다. 기존 Command Line Interface (CLI) 에서 콘솔 애플리케이션을 실행하는 경우 기존 콘솔을 출력에 사용한다. Windows Applicaiton (WINDOWS subsystem) : 일반적으로 사용자..

[C++] OutputDebugString() 함수

OutputDebugString() 는 개발자가 디버그 정보를 디버그 출력 창에 출력할 수 있도록 설계된 Windows API 함수다. 이 기능은 프로세스에 디버거가 연결되어 있지 않더라도 프로그래머가 디버거의 출력 창이나 Sysinternals의 DebugView와 같은 도구로 직접 메시지를 보낼 수 있어 개발 및 디버깅 세션 중에 특히 유용하다. 디버깅을 위해 std::cout 을 통해 로그를 출력을 할 수도 있지만, GUI Windows 애플리케이션을 개발할 때 std::cout 으론 출력이 되지 않아(AllocConsole() 같은 다른 함수 추가 등으로 출력 가능), OutputDebugString() 를 사용해 출력할 수 있다. OutputDebugString() 의 구문은 아래와 같다. vo..

[C++] DialogBox() 함수

DialogBox() 는 메모리 또는 애플리케이션의 리소스 파일에 있는 대화 상자 템플릿에서 모달 대화 상자(modal dialog box)를 만드는 Windows API 함수다. CreateDialog() 함수로 만든 모델리스 대화 상자(modeless)와 달리 모달 대화 상자는 입력 포커스를 캡처하고 대화 상자가 닫힐 때까지 사용자가 애플리케이션 내의 다른 창과 상호 작용할 수 없도록 한다. DialogBox() 로 만든 대화 상자의 모달(modal) 특성은 파일 열기, 설정 대화 상자, 확인 등과 같이 애플리케이션에서 진행하기 전에 사용자의 입력이나 결정이 필요한 시나리오에 적합하다. 다음은 DialogBox() 함수의 구문이다. INT_PTR DialogBox( HINSTANCE hInstance..

[Tech, etc.] ASTM (American Society for Testing and Materials)

미국 재료 시험 협회로 알려져있던 ASTM International은 자발적 합의 표준 개발 및 제공 분야의 세계적으로 인정받는 리더다. 항공 분야에서 ASTM은 항공우주 산업에서 사용되는 광범위한 재료, 제품, 시스템 및 서비스를 포괄하는 표준을 개발하여 중요한 역할을 담당하고 있습니다. 이러한 표준은 항공 부품 및 시스템의 품질, 안전, 신뢰성을 보장하는 데 필수적이다. 이러한 표준은 항공 부품 및 시스템의 품질, 안정, 신뢰성을 보장하는 데 필수적이다. 전반적으로 ASTM 표준은 전 세계 항공 산업 전반의 기술 사양, 테스트 방법 및 안전 지침을 조화시켜 국제 무역, 혁신 및 규제 준수를 촉진하는데 필수적이다. ASTM 표준이 적용되는 항공 분야의 일부 영역은 다음과 같다. 재료 테스트 : 금속, ..

[C++] CreateDialog() 함수

CreateDialog() 함수는 대화 상장 템플리 리소스에서 모델리스 대화 상자(modeless dialog box)를 만드는 데 사용되는 Windows API의 일부다. 모델리스 대화 상자(modeless dialog box)는 사용자가 애플리케이션의 다른 창과 상호 작용하는 것을 차단하지 않는다. 이는 사용자가 애플리케이션의 다른 부분에 액세스하기 전에 대화 상자와 상호 작용하고 대화 상자를 닫아야 하는 모달 대화 상자(modal dialog box)와는 대조적이다. CreateDialog() 함수는 리소스 스크립트(.rc 파일) 또는 메모리에 정의된 대화 상자를 만드는 데 사용할 수 있다. 대화 상자는 레이아웃, 제어 요소(예: 버튼, 텍스트 상자 등) 및 기타 속성을 지정하는 템플릿을 기반으로 ..

[C++] GetModuleHandle() 함수

GetModuleHandle() 함수는 WIndows의 API로 지정된 모듈을 검색해 반환하는 함수다(모듈의 엔트리 포인트를 반환 - C나 C++에서 main() 또는 WinMain() 함수). Windows에서 모듈이란 실행 파일(.exe) 또는 호출 프로세스의 메모리에 로드된 동적 링크 라이브러리(.dll) 파일을 말한다(쉽게 얘기하면 함수들의 집합 또는 특정 태스크를 처리하기 위한 객). 이 함수는 모듈이 이미 로드돼 있어 메모리에 다시 로드할 필요가 없을 때 작업 수행 시 유용하다. 이 함수는 Windows API의 이부로 Windows 운영 체제에만 해당된다. 크로스 플랫폼 애플리케이션을 개발하는 경우 운영 체제별 세부 사항을 추상화하는 조건부 컴파일 또는 크로스 플랫폼 프레임워크를 사용해야한다..