한국어
오픈소스포럼
 이곳은 다양한 오픈소스 프로젝트를 소개하고 리뷰, 활용 방법을 공유합니다.

경량의 ID 생성 C++라이브러리

makersweb 2025.11.13 16:08 조회 수 : 1

Sqids(발음은 "스퀴즈")는 숫자에서 짧은 고유 식별자를 생성할 수 있는 오픈 소스 라이브러리이다. 이러한 ID는 URL-safe하고 여러 숫자를 인코딩할 수 있으며, 일반적인 단어를 포함하지 않는다.

예를 들어 다음 처럼 만들 수 있다.

https://example.com/LaaLla

 

링크 단축, 로깅을 위한 고유 이벤트 ID 생성, 웹사이트의 제품/객체에 대한 ID 생성(YouTube가 비디오에 대해 하는 것처럼), 문자 메시지에 대한 짧은 ID 생성, 이메일의 확인 코드 등에 적합하다.

생성된 ID는 해시가 아니며 숫자로 다시 디코딩될 수 있다. 따라서 민감한 모든 데이터에 사용되는 것은 좋지 않다. 예를 들어, 사용자 ID로는 적합하지 않을 수 있다. 왜냐하면 디코딩되면 앱의 사용자 수가 드러날 수 있기 때문이다.

인코딩 예:

sqidscxx::Sqids sqids;
auto id = sqids.encode({ 1, 2, 3 });

 

빠른 인코딩 및 디코딩 예:

sqidscxx::Sqids sqids;
auto id = sqids.encode({ 1, 2, 3 }); // "86Rf07"
auto numbers = sqids.decode(id); // { 1, 2, 3 }

 

ID가 너무 짧으면 특정 길이로 패딩할 수 있다.

sqidscxx::Sqids sqids({ minLength: 10 });
auto id = sqids.encode({ 1, 2, 3 }); // "86Rf07xd4z"
auto numbers = sqids.decode(id); // { 1, 2, 3 }

 

알파벳을 섞어서 고유한 ID를 만든다.

sqidscxx::Sqids sqids({ alphabet: "k3G7QAe51FCsPW92uEOyq4Bg6Sp8YzVTmnU0liwDdHXLajZrfxNhobJIRcMvKt" });
auto id = sqids.encode({ 1, 2, 3 }); // "XRKUdQ"
auto numbers = sqids.decode(id); // { 1, 2, 3 }

 

번호 제목 글쓴이 날짜 조회 수
» 경량의 ID 생성 C++라이브러리 new makersweb 2025.11.13 1
36 Elastic Stack 에 대해서 file makersweb 2024.08.25 2543
35 Flutter 위젯의 상태관리에 대해서 file makersweb 2023.04.06 2645
34 [NodeGui] JavaScript로 데스크탑 응용프로그램 작성 file makersweb 2023.02.21 5493
33 openFrameworks 한글 폰트 설정 및 출력하기 file makersweb 2023.02.19 2010
32 LVGL 을 통해 GUI 구현 시 한글 폰트 추가 file makersweb 2023.02.07 5220
31 Windows에서 Qt Creator + CMake + vcpkg 로 C++ 개발환경 구성 (POCO 라이브러리 DirectoryWatcher 예제) file makersweb 2023.01.14 2745
30 NAppGUI, C언어용 크로스 플랫폼 GUI 라이브러리 file makersweb 2022.10.10 3987
29 OTA 오픈소스 프로젝트 makersweb 2022.08.03 3084
28 AGL (Automotive Grade Linux) 개요 file makersweb 2022.06.19 5583
27 Chromium과 Ozone 층 file makersweb 2022.03.03 3098
26 Flutter Application 에서 한글(EUC-KR) 깨져서 나오는 문제 file makersweb 2022.01.06 5989
25 CopperSpice 에 대해서 (C++ Gui 라이브러리) file makersweb 2022.01.02 3526
24 Flutter/Dart 와 Qt/QML 비교 file makersweb 2021.11.07 3480
23 VSCode 와 Qbs 플러그인으로 C/C++ 개발환경 구성 file makersweb 2021.09.12 3474
22 ZeroMQ 를 이용한 Qt 응용프로그램 간 통신 file makersweb 2021.08.28 3181
21 C++를 위한 Lottie 라이브러리 with SDL2 file makersweb 2021.08.15 3928
20 CANdevStudio 를 사용하여 CAN 네트워크 시뮬레이션 file makersweb 2021.03.09 4457
19 Protocol Buffers 를 이용한 직렬화 with Conan Package Manager file makersweb 2021.02.24 2174
18 라즈베리파이에서 Redis의 Pub/Sub 패턴을 사용하는 Electron 응용프로그램 file makersweb 2021.01.31 3511
 
단일배너