All

· Modern C++
원글: https://mystes.tistory.com/121 주요 특징 std::deque는 std::queue와 유사한 특징을 가집니다. (이하, "데크" 또는 "디큐", "덱") queue는 FIFO (first in, first out) 구조를 가집니다. 따라서 일반적인 큐는 한쪽에서 자료를 입력하면, 다른 한쪽에서 데이터가 빠져 나오는 구조입니다. 반면 deque는 양쪽에서 데이터의 삽입, 삭제가 가능하기 때문에 FIFO와 더불어 LIFO (last in, first out) 의 특징 역시 가집니다. 일련의 컨테이너와 같이 deque 역시 sequencial(연속적인) 데이터 형태를 가지며 vector의 특징과 동일하게 인덱스를 통한 접근 (랜덤 엑세스), 순회 등과 같은 기능을 제공합니다. 기..
· 일상
++ 2024-01-15 기준 동작되는 것 확인 (크롬, Brave 브라우저 기준) 유튜브를 사용하다보면 내가 검색한 영상과 전혀 무관한, 혐오스러운 영상들이 추가되는데, 특히 "SPA" 붙은 채널들이나 피부외과 시술 영상들(일부 어그로성 썸네일)이 대다수였습니다.. 제거하기 위해서 크롬 확장 프로그램을 사용합니다. 크롬 뿐만 아니라, 크로미움 기반 대부분 브라우저에서 사용 가능 (크롬 웹스토어 호환 시) 프로그램 설치 https://chromewebstore.google.com/detail/channel-blocker/nfkmalbckemmklibjddenhnofgnfcdfp Channel Blocker Allows you to block YouTube™ videos and comments by bla..
원글: https://mystes.tistory.com/121 주요 특징 std::vector는 STL에서 가장 인기있는 템플릿 라이브러리 중 하나입니다. 컨테이너의 앞 또는 뒤에 자유롭게 추가 및 삭제가 가능하며 인덱스를 통한 접근(랜덤 액세스) 역시 지원합니다. 각 요소는 연속적으로 저장되므로 반복자를 통해 요소에 액세스 할 수 있을 뿐만 아니라 요소에 대한 일반 포인터에 오프셋을 사용하여 요소에 액세스할 수도 있습니다. 즉, 벡터의 요소에 대한 포인터는 배열의 요소에 대한 포인터를 기대하는 함수에 저장될 수 있습니다. 벡터의 저장 공간은 자동으로 처리되며 필요에 따라 확장됩니다. 벡터는 향후 증가를 처리하기 위해 더 많은 메모리가 할당되기 때문에 일반적으로 정적 배열보다 더 많은 공간을 차지합니다...
· Undefined
모든 프로그래머는 자신의 코드가 효율성을 갖추기 위하여 프로그래밍을 하여야 할 의무가 있습니다. 알고리즘이란? 설명에 앞서 1부터 100까지 더하는 프로그램을 구현해 봅시다. 아래와 같이 간단하게 구현할 수 있습니다. int result = 0; for (int i = 1; i
C++를 주로 사용하는 개발자라면 빼놓을 수 없는 것이 바로 STL의 Container입니다. 자료구조를 배워본 사람이라면 각 컨테이너마다 어떤 특징이 있고, 무엇을 기반으로 해당 컨테이너가 개발되었는지 대략적으로 파악할 수 있을 것입니다. 본문에서는 컨테이너에 대한 기본적인 개요와 종류를 알아보고, 향후 각 컨테이너에 대한 자세한 설명과 특징, 장단점 등을 정리해 보겠습니다. 컨테이너? 컨테이너는 STL 알고리즘과 결합하여 다양한 데이터 구조를 표현할 수 있도록 설계된 자료형입니다. 각 컨테이너는 자신만의 특징을 가지고, 개발자는 자신이 구현하고자 하는 목적에 맞는 컨테이너를 채택하여 프로그램의 효율성을 높일 수 있습니다. 닭잡는데 소잡는 칼을 사용할 필요는 없습니다 효율성? 효율성을 수치화할 수 있는..
· Language/C++
다중 클라이언트가 접속하는 서버를 구현하는 베이스 코드입니다. 기존 1:1 방식이 아닌, N 명의 클라이언트에 대하여 select를 활용하여 각 클라이언트의 요청을 처리합니다. 현재 진행 중인 웹 브라우저와 리눅스 기반 응용 프로그램 사이, 중계 서버를 만들기 위하여 테스트 한 코드입니다. 개요 먼저, 일반적으로 알고 있는 socket의 개념과 별개로 select에 대하여 간략히 설명하자면, select는 네트워크 프로그래밍에서 사용되는 함수 중 하나로, 여러 개의 소켓을 모니터링하고 입출력 가능한 상태를 감지하는 기능을 제공합니다. 이를 통해 동시에 여러 소켓을 관리하고 비동기 네트워크 통신을 구현할 수 있습니다. 일반적으로 select는 유닉스 기반의 운영체제(Linux, mac, FreeBSD 등)..
· Language/C++
GS 인증을 받는 과정 중 암호가 저장된 일부 설정 파일(ini, json 등)에 대한 암호화 과정이 필요했습니다. 본문은 Linux (ARMv8) 환경에서 Crypto++를 설치(빌드)하고 예제 코드를 테스트하는 과정을 기록한 글입니다. 테스트 환경 Nvidia Jetson Xavier NX (Jetpack 4.6) Ubuntu 18.04 (Linux for Tegra) GCC 7.5.0 (C++17), CMake 3.24 설치 과정 먼저 Github를 통해 프로젝트를 다운 받았습니다. git clone https://github.com/weidai11/cryptopp.git cd cryptopp Crypto++는 GNUmakefile을 통해 리눅스 빌드를 지원하고 있었습니다. 저는 현재 개발 중인 프..
· A.I
Xavier 환경에서 직접 개발을 하여도 무관하지만, 편의성을 위하여 개발은 SSH 기반 윈도우 환경에서 Visual Studio Code를 활용하고, 실 테스트는 VNC 또는 실제 보드에서 동작을 진행하였습니다. 1. VS Code 설치하기 https://code.visualstudio.com/ Visual Studio Code - Code Editing. Redefined Visual Studio Code is a code editor redefined and optimized for building and debugging modern web and cloud applications. Visual Studio Code is free and available on your favorite platfo..
· A.I
해당 글에서는 YOLOv5 사용을 위한 PyTorch 및 기타 관련 패키지를 설치합니다. 모든 커맨드는 가상환경이 활성화된 상태에서 진행됩니다. (본문 : darknet) # 명령 conda activate [환경이름] # (예시) conda activate darknet 1. PyTorch 설치 일반적인 환경이라면 아나콘다를 통해 간단하게 PyTorch 및 관련 패키지 설치가 가능합니다. 그러나 aarch64 환경에서 이에 맞는 저장소를 찾을 수 없기 때문에 pip를 통해 설치합니다. 주의사항은 원하는 가상환경이 activate 된 상태에서 진행하여야 합니다. # 설치 (가상환경 베이스) pip install torch 2. YOLOv5 설치 먼저 Git을 통해 YOLOv5를 다운로드합니다. # (Op..
· A.I
[개발환경] - Hardware : Nvidia Jetson Xavier NX (aarch64) - OS : Jetpack 4.6 rev. 3 (based on Ubuntu 18.04) YOLO 테스트를 위하여 Xavier NX 보드에서 Anaconda(아나콘다)를 사용하기 위한 방법을 정리한 글입니다. 아나콘다는 일반 AMD64 계열은 linux 버전도 지원하지만 라즈베리파이와 같은 aarch64 계열에 대한 지원이 보이지 않아 별도로 다운받아 설치하였습니다. 1. 아나콘다 설치 Jetson Anaconda로 검색해보면 Anaconda를 aarch64 버전으로 빌드한 것들이 많았는데, Mini-forge가 최근 업데이트가 활발한 것으로 보였고, 이를 선택했습니다. https://github.com/co..
lasiyan
'분류 전체보기' 카테고리의 글 목록