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

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

makersweb 2025.11.13 16:08 조회 수 : 699

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++라이브러리 makersweb 2025.11.13 699
36 Elastic Stack 에 대해서 file makersweb 2024.08.25 3053
35 Flutter 위젯의 상태관리에 대해서 file makersweb 2023.04.06 3220
34 [NodeGui] JavaScript로 데스크탑 응용프로그램 작성 file makersweb 2023.02.21 6013
33 openFrameworks 한글 폰트 설정 및 출력하기 file makersweb 2023.02.19 2575
32 LVGL 을 통해 GUI 구현 시 한글 폰트 추가 file makersweb 2023.02.07 5932
31 Windows에서 Qt Creator + CMake + vcpkg 로 C++ 개발환경 구성 (POCO 라이브러리 DirectoryWatcher 예제) file makersweb 2023.01.14 3384
30 NAppGUI, C언어용 크로스 플랫폼 GUI 라이브러리 file makersweb 2022.10.10 4410
29 OTA 오픈소스 프로젝트 makersweb 2022.08.03 3540
28 AGL (Automotive Grade Linux) 개요 file makersweb 2022.06.19 6198
27 Chromium과 Ozone 층 file makersweb 2022.03.03 3565
26 Flutter Application 에서 한글(EUC-KR) 깨져서 나오는 문제 file makersweb 2022.01.06 6643
25 CopperSpice 에 대해서 (C++ Gui 라이브러리) file makersweb 2022.01.02 4034
24 Flutter/Dart 와 Qt/QML 비교 file makersweb 2021.11.07 4155
23 VSCode 와 Qbs 플러그인으로 C/C++ 개발환경 구성 file makersweb 2021.09.12 3942
22 ZeroMQ 를 이용한 Qt 응용프로그램 간 통신 file makersweb 2021.08.28 3612
21 C++를 위한 Lottie 라이브러리 with SDL2 file makersweb 2021.08.15 4382
20 CANdevStudio 를 사용하여 CAN 네트워크 시뮬레이션 file makersweb 2021.03.09 4928
19 Protocol Buffers 를 이용한 직렬화 with Conan Package Manager file makersweb 2021.02.24 2906
18 라즈베리파이에서 Redis의 Pub/Sub 패턴을 사용하는 Electron 응용프로그램 file makersweb 2021.01.31 3935
 
단일배너