dev 33

Golang, Cgo

Cgo enables the creation of Go packages that call C code.Cgohttps://pkg.go.dev/cmd/cgoGolang에서 C 코드를 통합 할 수 있도록 만든 의사 패키지 C코드 - Go 파일 통합예제import "C" 바로 윗 부분의 주석 /* */ or // 으로 C코드 작성C 함수, 변수 영역 접근시, C 의 패키지 명으로 접근 함수, 변수선언, #include 선행처리지시자 등 일반적인 C 코드cgo Cheat Sheet : https://gist.github.com/zchee/b9c99695463d8902cd33package main/*#include // printf#include // free (C.free)void pri..

dev 2025.05.19

C++ REST SDK(cpprestsdk) Sample

Introductionhttps://github.com/Microsoft/cpprestsdkMicrosoft에서 만든 클라이언트, 서버용 C++ HTTP 통신 모듈이며, JSON URI, 비동기, 웹소켓, oAuth 등을 지원 C++11의 비동기, 병렬 프로그램 모델 지원크로스 플랫폼 지원 등..cpprestsdk package install (w/ vcpkg)https://github.com/microsoft/vcpkgvcpkg 통해서 패키지 설치 # --triplet=x64-windows-static$ vcpkg.exe install cpprestsdk:x64-windows-static...The package cpprestsdk:x64-windows-static provides CMake targe..

dev 2025.05.19

CryotoPP Example

CryptoPPhttps://www.cryptopp.com/Crypto++ 사용하기, 예제{:target="_blank"}암호화 지식 (개발자){:target="_blank"}기존 작성한 내용(5.6 버전)의 최신화(8.5 버전) : 빌드 이슈 Package 설치vcpkg 사용 : 8.5.0$ ./vcpkg install cryptoppComputing installation plan...The following packages will be built and installed: cryptopp[core]:arm64-osx -> 8.5.0...The package cryptopp:arm64-osx provides CMake targets: find_package(cryptopp CONFIG R..

dev 2025.05.19

Golang GC

Golang GC (가비지 컬렉터) 주요 내용Golang GC : GOGC유효하지 않는 메모리(Dangling Object)를 주기적으로 해제하는 기법Java의 Parallel GC, G1GC 와 유사하나 구현 방식에서 차이가 있음Stop-the-World 시간을 최소화하도록 설계됨Tri-Color Algorithm 사용동시성을 고려한 효율적인 메모리 관리 알고리즘CMS (Concurrent Mark and Sweep) 방식 운영Java 와 같은 Generation GC 기법이나 Compaction은 지원하지 않음대신 더 효율적인 메모리 할당 전략을 사용Compaction (압축, 재배치) 가 없음 재배치를 하지 않는 대신 TCMalloc를 통한 메모리 할당 관리메모리 단편화를 최소화하고 빠른 할당을 지..

dev 2025.05.18

Selenium 101

Python Selenium 이용한 웹 스크래핑 방법, 웹 자동화 Selenium 가이드: 웹 자동화1. Selenium 이란?Selenium은 웹 브라우저 자동화를 위한 아래와 같은 용도웹 애플리케이션 테스트 자동화웹 스크래핑 및 데이터 추출반복적인 웹 작업 자동화크로스 브라우저 테스팅주요 기능브라우저 제어: 다양한 브라우저에서 웹 페이지를 자동으로 로드하고 조작할 수 있습니다.DOM 조작: 웹 페이지의 DOM 요소를 검색하고 조작할 수 있습니다.폼 자동화: 폼을 자동으로 작성하고 제출할 수 있습니다.스크린샷 캡처: 웹 페이지의 스크린샷을 캡처할 수 있습니다.헤드리스 모드: 브라우저 창을 띄우지 않고 백그라운드에서 작업을 수행할 수 있습니다.Selenium은 다양한 프로그래밍 언어를 지원하며, 웹 개발..

dev 2025.05.18

Python asyncio

asyncio는 async/await 구문을 사용하여 동시성 코드를 작성하는 라이브러리입니다. 특히 I/O 작업이 많은 애플리케이션에서 높은 성능을 발휘합니다.asyncio : asynchronous io 처리https://docs.python.org/ko/3/library/asyncio.htmlThreading 동시성 제어는 GIL (Global interpreter lock) 제약에 의해 느리고, 복잡도는 그대로 가지고 있음GIL은 Python 인터프리터가 한 번에 하나의 스레드만 실행할 수 있도록 제한하는 메커니즘멀티스레드를 사용해도 CPU 연산의 실제 병렬 처리가 어려움IO 병목에 의한 동시성을 관리하기 위한 도구로서 Coroutine을 통한 관리네트워크 요청, 파일 읽기/쓰기 등 I/O 작업에서..

dev 2025.05.18