본문 바로가기

C++의 STL 컨테이너들을 주요 특징 각 컨테이너의 주요 특징 요약 ------------------------------- 시퀀스 컨테이너: 요소들이 순서대로 저장되며, 삽입/삭제 위치에 따라 성능이 달라집니다. 연관 컨테이너: key-value 쌍으로 저장되며, key를 기반으로 빠르게 검색할 수 있습니다. 정렬 여부와 중복 허용 여부에 따라 종류가 나뉩니다. 컨테이너 어댑터: 다른 컨테이너를 기반으로 특정 자료 구조를 제공합니다. 시퀀스 컨테이너 대표 컨테이너 : vector, list, deque, array 요소들이 순서대로 저장 vector vector 연속 메모리, 랜덤 접근 빠름, 중간 삽입/삭제 느림 일반적인 용도, 동적 배열 list list 연결 리스트, 중간 삽입/삭제 빠름, 랜덤 접근 느림 빈번한 삽입/삭제, 알고리즘.. 더보기
Makefile에서 사용하는 함수나 명령어들 Makefile에서 제공하는 특수 함수와 명령어들은 문자열 처리, 조건 검증, 파일 처리 등  다양한 작업을 간단하게 수행할 수 있게 도와줍니다.  이러한 함수들은 Makefile을 더욱 강력하고 유연하게 만들어줍니다.  아래에 몇 가지 중요한 함수와 명령어들을 정리했습니다: $(findstring find, in)      문자열 in에서 find가 포함되어 있는지 확인하고, 포함되어 있으면 find를 반환, 그렇지 않으면 빈 문자열을 반환.       예: $(findstring a, abc) 결과: a $(filter pattern..., text)       text에서 pattern에 일치하는 단어들을 반환.       예: $(filter %.c, foo.c bar.txt) 결과: foo.c .. 더보기
makefile에서 사용하는 예약된 특수한 변수 목록 $로 시작하는 특수한 목적의 예약어들---------------------------------------------------------------------- $@: 현재 타겟(target) 이름. $%: 아카이브 파일에서 타겟의 이름. 아카이브 파일의 특정 멤버를 대상으로 할 때 사용. $$?: 타겟보다 나중에 수정된 모든 의존성 파일의 목록. $^: 모든 의존성 파일의 목록 (중복 제거). $+: 모든 의존성 파일의 목록 (중복 포함). $|: 모든 명령줄의 의존성 파일 목록. $*: 타겟의 확장자를 제외한 부분. 예시 # example Makefile target: dependencies                  command $@ $# 'target'이라는 타겟이 있고 'dependenc.. 더보기
std:iterator 를 이용하는 간단한 예제 C++에서 반복자(iterator)는 컨테이너의 요소를 순회하고 접근하는 방법을 제공하는 객체입니다. 다양한 종류의 컨테이너와 함께 사용할 수 있으며, 각각의 반복자는 다른 종류의 작업을 지원합니다. 아래에 몇 가지 예제를 제공하겠습니다: #include  #include  int main() {     std::vector nums = {1, 2, 3, 4, 5};     // 벡터의 반복자를 선언합니다.     std::vector::iterator it;     // 벡터의 모든 요소를 순회합니다.     for (it = nums.begin(); it != nums.end(); ++it) {         std::cout     }     return 0; } #include  #include .. 더보기
HTTPS 인증서 (SSL/TLS 인증서) 생성 및 활용 HTTPS 서버를 구축하려는 경우, 서버 인증서를 만들기 위해 다음과 같은 단계를 따르면 됩니다: 인증서 생성 도구 준비:  인증서를 생성하기 위해 OpenSSL과 같은 도구가 필요합니다.  이 도구는 대부분의 Linux 배포판에 기본적으로 포함되어 있으며, Windows에서도 사용할 수 있습니다. 개인키 생성:  먼저 개인키를 생성해야 합니다.  이는 다음과 같은 명령어로 수행할 수 있습니다: openssl genrsa -out server.key 2048 이 명령어는 2048비트 RSA 개인키를 생성하고 server.key 파일에 저장합니다. 인증서 서명 요청(CSR) 생성:  개인키를 사용하여 인증서 서명 요청(Certificate Signing Request, CSR)을 생성합니다.  이는 다음과.. 더보기
ffmpeg를 이용하여 일괄적으로 mp4 + m4a 머지하기 for f in *.mp4; do ffmpeg -i "$f" -i "${f%.*}.m4a" -c copy "merge/${f%.*}-merged.mp4"; done 라인을 풀면 아래와 같음 ----------- 아 래 --------------- for f in *.mp4; do ffmpeg -i "$f" -i "${f%.*}.m4a" -c copy "merge/${f%.*}-merged.mp4"; done --------- 해 석 -------- 현재 폴더에 있는 모든 mp4 와 이름이 같은 m4a를 머지하여 merge/ 폴더아래에 (같은 이름-merged.mp4)로 결과를 저장 더보기
vscode 에서 default encoding을 특정 폴더만 임의(euckr)로 지정하기 해당 폴더에 .vscode 폴더를 만들고 그 아래 setting.json파일을 만든 다음 아래와 같이 설정하라 "files.encoding": "euckr", --- 아래는 샘플 --- { "files.encoding": "euckr", "editor.fontFamily": "맑은고딕", "editor.fontSize": 15, "debug.console.fontSize": 15, "terminal.integrated.fontSize": 15 } 더보기
websocket 프로토콜 분석 웹소켓은 핸드세이크 과정이 있다 클라이언트의 요청 GET /ws HTTP/1.1 Host: 127.0.0.1 Upgrade: websocket Connection: Upgrade Sec-WebSocket-Key: x3JJHMbDL1EzLkh9GBhXDw== Sec-WebSocket-Version: 13 서버의 응답 HTTP/1.1 101 Switching Protocols Upgrade: websocket Connection: Upgrade Sec-WebSocket-Accept: m1gerlQGO93j1SfFew3lhvMXqro= =============== 핸드세이크 설명: 클라이언트가 http 연결을 하며 필수로 보내야 하는 4개의 헤더가 있다 1. Connection, 2. Connection헤더 .. 더보기