Development 18

QT ๋ฐ ์œˆ๋„์šฐ ๊ฐœ๋ฐœ(MSYS2) ํ™˜๊ฒฝ ์„ค์ •

QT ์„ค์น˜ ๋‹ค์šด๋กœ๋“œ : https://www.qt.io/download-open-source ์ด๊ณณ์—์„œ ํ™”๋ฉด ์•„๋ž˜ "Download the Qt Online Installer" ๋ฅผ ํด๋ฆญ ํ›„ OS ํ™˜๊ฒฝ์— ๋งž๋Š” ์˜จ๋ผ์ธ ์„ค์น˜ ํŒŒ์ผ์„ ๋‹ค์šด ๋ฐ›์•„ ์„ค์น˜ ํ•˜๋ฉด ๋œ๋‹ค. QT ์„ค์น˜์‹œ ์˜ค๋ฅ˜๊ฐ€ ๋‚˜๋ฉด ๋ฏธ๋Ÿฌ๋ง ์ด์šฉ ์„ค์น˜ ์ผ๋ฐ˜์ ์œผ๋กœ QT ์„ค์น˜ ํŒŒ์ผ์„ ์‹คํ–‰ํ•˜์—ฌ ๊ฐ€์ž… ํ›„ ์„ค์น˜๋ฅผ ํ•  ๋•Œ ๋„คํŠธ์›Œํฌ ์˜ค๋ฅ˜๊ฐ€ ๋‚˜ํƒ€๋‚˜๋Š” ๊ฒฝ์šฐ์—๋Š” ์•„๋ž˜ ์ฒ˜๋Ÿผ --mirror ์˜ต์…˜์„ ์ฃผ์–ด์„œ ๋‹ค์šด๋กœ๋“œ ์‚ฌ์ดํŠธ๋ฅผ ๋ณ€๊ฒฝ ํ•˜๋ฉด ๋œ๋‹ค. ์œ„์™€ ๊ฐ™์€ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒ ํ•˜๋ฉด ์•„๋ž˜ ์ฒ˜๋Ÿผ --mirror ์˜ต์…˜์„ ํ†ตํ•ด ์„ค์น˜ ํ•˜๋ฉด ๋œ๋‹ค. ./qt-unified-linux-x64-4.5.1-online.exe --mirror https://qt.mirror.constant.com QT ์ธ์Šคํ†จ ์ฐธ..

Development 2024.03.06

OpenSSL ํ•จ์ˆ˜์—์„œ ASN1_EMBED ์™€ ASN1_SIMPLE ์ฐจ์ด

OpenSSL ์—์„œ ASN.1 ์ธ์ฝ”๋” ๋””์ฝ”๋“œ ์ƒ์„ฑ์‹œ ๋จผ์ € ๊ตฌ์กฐ์ฒด๋ฅผ ์ •์˜ํ•˜๊ณ  ASN.1 ์ธ์ฝ”๋”ฉ ๋””์ฝ”๋”ฉ์„ ์‚ฌ์šฉํ•œ๋‹ค. ์ด๋•Œ ๊ตฌ์กฐ์ฒด ๋ณ€์ˆ˜์—์„œ ํฌ์ธํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ASN1_SIMPLE ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ํฌ์ธํ„ฐ๊ฐ€ ์•„๋‹ˆ๋ฉด ASN1_EMBED ๋ฅผ ์‚ฌ์šฉ ํ•œ๋‹ค. ์•„๋ž˜ ์˜ˆ์ œ๋ฅผ ๋ฅผ ๋ณด์ž /* Signature ::= SEQUENCE { signatureAlgorithm AlgorithmIdentifier, signature BIT STRING, certs [0] EXPLICIT SEQUENCE OF Certificate OPTIONAL } */ struct ocsp_signature_st { X509_ALGOR signatureAlgorithm; ASN1_BIT_STRING *signature; STACK_OF(X509) *cert..

Development 2024.01.19

URI ์™€ URL ์— ๋Œ€ํ•œ ๊ฐœ๋… ์ •๋ฆฌ

์ผ๋ฐ˜์ ์œผ๋กœ ์›น ์ฃผ์†Œ๋“ฑ ์ธํ„ฐ๋„ท์ƒ ์œ„์น˜๋ฅผ ํ‘œ์‹œ ํ•˜๊ธฐ ์œ„ํ•ด URI ์™€ URL ๋‘๊ฐ€์ง€ ์šฉ์–ด๊ฐ€ ์‚ฌ์šฉํ•œ๋‹ค. ์“ฐ๋‹ค ๋ณด๋‹ˆ ๋‘˜๋‹ค ์šฉ์–ด๊ฐ€ ๋น„์Šทํ•˜์—ฌ ์ด ๊ฐœ๋…์„ ์ข€๋” ์ •๋ฆฌ ํ•ด๋ณด์ž URI ๊ฐœ๋… URI ๋Š” Uniform Resource Identifier ์˜ ์•ฝ์ž ์ด๋‹ค. ๋„คํŠธ์›Œํฌ ์ƒ์—์„œ ๋ฆฌ์†Œ์Šค๋ฅผ ๊ตฌ๋ณ„ํ•˜๋Š” ์‹๋ณ„์ž๋ฅผ ์˜๋ฏธํ•œ๋‹ค. URL ๊ฐœ๋… URL ์€ Uniform Resource Locator ์˜ ์•ฝ์ž์ด๋‹ค. ์šฉ์–ด๋ฅผ ํ•ด์„ ํ•ด๋ณด๋ฉด ๋„คํŠธ์›Œํฌ ์ƒ์—์„œ ๋ฆฌ์†Œ์Šค ๊ตฌ๋ณ„ํ•˜๋Š” ์œ„์น˜์ž๋ฅผ ์˜๋ฏธํ•œ๋‹ค. ์ฆ‰ URL ์€ URI ์˜ ์„œ๋ฒ„ ํƒ€์ž…์ด๋‹ค. URI์˜ ์„œ๋ธŒ ํƒ€์ž…์—๋Š” URN( Uniform Resource Name ) ๊ณผ URL ์ด ์žˆ๋‹ค๊ณ  ๋ณด๋ฉด ๋œ๋‹ค. URL ํ˜•์‹ scheme:[//[user[:passowrd]@]host[:port]][/path][?quer..

Development 2023.12.20

QT ๋ฆฌ๋ˆ…์Šค Deploy ๋ฐฉ๋ฒ•

QT์—์„œ ๋ฆฌ๋ˆ…์Šค ํ™˜๊ฒฝ์—์„œ ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ํŠน๋ณ„ํžˆ deploy ๊ธฐ๋Šฅ์ด ์ง€์› ๋˜์ง€ ์•Š๋Š”๋‹ค ํ•˜์ง€๋งŒ ๋ณ„๋„์˜ QT ํˆด์„ ์ด์šฉํ•˜์—ฌ Deploy ๋ฅผ ํ•  ์ˆ˜ ์žˆ๋‹ค. ์—ฌ๊ธฐ์„œ ์‚ฌ์šฉํ•˜๋Š” ํˆด์€ cqtdeployer ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํŒจํ‚ค์ง€ ํ•˜์˜€๋‹ค. (์ฐธ๊ณ ๋กœ cqtdeployer ๋Š” ๋ฆฌ๋ˆ…์Šค์™€ ์œˆ๋„์šฐ ํ™˜๊ฒฝ ๋ชจ๋‘๋ฅผ ์ง€์›ํ•œ๋‹ค.) ํ•ด๋‹น github ์†Œ์Šค ์œ„์น˜๋Š” https://github.com/QuasarApp/CQtDeployer ์ด๋‹ค cqtdeployer ์„ค์น˜ ์„ค์น˜ ๋ฐฉ๋ฒ•์€ ์†Œ์Šค๋ฅผ ์ง์ ‘ ์„ค์น˜ ํ•  ์ˆ˜๋„ ์žˆ์ง€๋งŒ ์—ฌ๊ธฐ์„œ๋Š” Snap Store ๋ฅผ ์ด์šฉํ•˜๋ฉด ๋ช…๋ น์–ด ํ•˜๋‚˜๋กœ ๊ฐ„๋‹จํžˆ ์„ค์น˜ ๋œ๋‹ค https://snapcraft.io/cqtdeployer ๋งํฌ ๋ฐฉ๋ฌธํ›„ Install ์„ ํด๋ฆญ ํ•˜๋ฉด ๋‚˜์˜ค๋Š” ๋‹ค์Œ ๋ช…๋ น์–ด ์‹คํ–‰ ํ•˜๋ฉด ๋œ๋‹ค (snap ..

Development 2023.11.20

Qt5 ์—์„œ Qt6 ๋ณ€๊ฒฝ ์ž‘์—… ๋‚ด์šฉ

์ง€๊ธˆ๊นŒ์ง€ Qt5 ๋กœ ๋งŒ๋“  BerEditor, CertMan ๊ทธ๋ฆฌ๊ณ  CryptokiMan ํ”„๋กœ์ ํŠธ๋ฅผ Qt6์œผ๋กœ ๋ณ€๊ฒฝ ์ž‘์—…์„ ํ•˜์˜€๋‹ค. ์ด๋ฒˆ์— Qt6 ์œผ๋กœ ๋ณ€๊ฒฝ ํ•˜๋ฉด์„œ ์ˆ˜์ •ํ•œ ๋‚ด์šฉ์„ ์ •๋ฆฌ ํ•ด ๋ณด์•˜๋‹ค. ํ˜„์žฌ ์•„๋ž˜ ๋‚ด์šฉ๋˜๋กœ ๋ณ€๊ฒฝ์„ ํ•ด์„œ ์ปดํŒŒ์ผ์€ ๋˜์—ˆ์ง€๋งŒ ์ข€ ๋” ์‹œ๊ฐ„์„ ๋‘๊ณ  ํ…Œ์ŠคํŠธ๋ฅผ ํ•ด๋ด์•ผ ํ•œ๋‹ค. ๊ธฐ์กด QT๋ฒ„์ „์€ 5.13.2์—์„œ 6.5.3 ๋ฒ„์ „์œผ๋กœ ๋ณ€๊ฒฝ ํ•˜์˜€๋‹ค. QString sprintf ํ•จ์ˆ˜๊ฐ€ asprintf ํ•จ์ˆ˜๋กœ ๋ณ€๊ฒฝ - QString sprint ํ•จ์ˆ˜๊ฐ€ asprintf ํ•จ์ˆ˜๋กœ ๋ณ€๊ฒฝ ๋จ - ์‚ฌ์‹ค asprintf ํ•จ์ˆ˜์—์„œ 0x08X ๊ฐ™์€ ํฌ๋งท์€ ์ง€์›์ด ์•ˆ๋˜์–ด์„œ ๋ชจ๋‘ QString ๊ณผ arg ๋ฅผ ์ด์šฉํ•˜์—ฌ ๋ณ€๊ฒฝ ํ•จQDateTime ํด๋ž˜์„œ์—์„œ Unixํƒ€์ž„ ์ฒ˜๋ฆฌ ํ•จ์ˆ˜ ๋ณ€ํ™˜ - QDateTime ๋ฉค๋ฒ„ ํ•จ์ˆ˜ setTim..

Development 2023.10.06

[MacOS] Sparkle ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ์„ค์ • ๋ฐ ์‚ฌ์šฉ๋ฒ•

Sparkle ์€ MacOS ์šฉ ์†Œํ”„ํŠธ์›จ์–ด ์—…๋ฐ์ดํŠธ๋ฅผ ์œ„ํ•œ ์˜คํ”ˆ ์†Œ์Šค ํ”„๋ ˆ์ž„ ์›Œํฌ์ด๋‹ค. ํ•ด๋‹น ๊ด€๋ จ ํŒŒ์ผ์€ ์•„๋ž˜ ์‚ฌ์ดํŠธ์—์„œ ์ •๋ณด๋ฐ ๊ด€๋ จ ํŒŒ์ผ์„ ๋‹ค์šด ๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค. https://sparkle-project.org ์ฐธ๊ณ ๋กœ Sparkle ์€ ์œˆ๋„์šฐ ์šฉ๋„ ์žˆ๋‹ค. https://winsparkle.org/ ๋‘๊ฐ€์ง€ ๊ฒฝ์šฐ OS ํ™˜๊ฒฝ์˜ ์ฐจ์ด๊ฐ€ ์žˆ์–ด์„œ ์‚ฌ์šฉ๋ฒ•์—์„œ๋Š” ์กฐ๊ธˆ ์ฐจ์ด๊ฐ€ ์žˆ์ง€๋งŒ ๊ฐ™์€ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค. ์—ฌ๊ธฐ์„œ ์„ค๋ช…์€ MacOS๋ฅผ ๊ธฐ์ค€์ด๋‹ค. ๋‹ค์šด๋กœ๋“œ ํŒŒ์ผ์„ ๋‹ค์šดํ›„ Sparkle.framework ํด๋” ์ „์ฒด๋ฅผ ๋Š” QT ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์˜ lib ํด๋”์— ๋ณต์‚ฌ ํ•ด์ฃผ๋ฉด ๋œ๋‹ค. ์ตœ์‹  ๋ฒ„์ „์˜ Sparkle ์—์„œ๋Š” DSA ์„œ๋ช…์—์„œ EdDSA ์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ ๋ณ€๊ฒฝ ๋˜์—ˆ๋‹ค. EdDSA ํ‚ค ์ƒ์„ฑ์€ ์•„๋ž˜ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ๋˜๋Š”๋ฐ ๊ฐœ์ธํ‚ค๋Š” MacO..

Development 2023.08.18

[Qt5] MySQL(MariaDB) Driver ์ธ์‹ ์‹œํ‚ค๊ธฐ ( ์œˆ๋„์šฐ ํ™˜๊ฒฝ )

QT์—์„œ SqlDatabase ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋‹ค์–‘ํ•œ DB๋ฅผ ์ง€์›ํ•œ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ SQLite ๋ฅผ ์ง€์›ํ•˜์ง€๋งŒ MariaDB๋‚˜ MySQL ์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ๋“œ๋ผ์ด๋ฒ„ ์„ค์น˜๋ฅผ ํ•ด์ฃผ์–ด์•ผ ํ•œ๋‹ค. ์ด ๋“œ๋ผ์ด๋ฒ„๋ฅผ ์„ค์น˜ ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” QT๋ฅผ ์„ค์น˜์‹œ Source ๋„ ํ•จ๊ป˜ ์„ค์น˜ ๋˜์–ด์•ผ๋งŒ ํ•œ๋‹ค. MySQL ๋“œ๋ผ์ด๋ฒ„ ์ธ์‹ ๊ด€๋ จ QT ๋ฌธ์„œ ์ฃผ์†Œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. https://doc.qt.io/qt-5/sql-driver.html ๋จผ์ € MySQL ๋˜๋Š” MariaDB ๋ฅผ ์„ค์น˜ ํ•œ๋‹ค. https://dev.mysql.com/downloads/c-api/ ๊ทธ๋ฆฌ๊ณ  C:\Qt\5.15.2\Src\qtbase\src\plugins\sqldrivers ํด๋”์—์„œ qmake ์‹คํ–‰ ํ•œ๋‹ค. ์ฐธ๊ณ ๋กœ ์ปดํŒŒ์ผ๋Ÿฌ ๊ฒฝ๋กœ์™€ mingw32-make ํด๋”์˜ ๊ฒฝ๋กœ๋Š” ..

Development 2023.07.31

#define ๋งคํฌ๋กœ ์‚ฌ์šฉ๋ฒ•

์šฐ๋ฆฌ๋ผ C/C++ ๊ฐœ๋ฐœ ํ•˜๋ฉด Define ๋งคํฌ๋กœ๋ฅผ ์ž์ฃผ ์ ‘ํ•˜๊ฒŒ ๋œ๋‹ค. ์‚ฌ์‹ค Define ๋งคํฌ๋กœ๊ฐ€ ์†Œ์Šค๋ฅผ ๋ณด๊ธฐ ๋ฐ ๋””๋ฒ„๊น…์— ์–ด๋ ค์šด ์ ์„ ์ œ๊ณต ํ•˜๊ธฐ๋„ ํ•˜์ง€๋งŒ ๊ฐœ๋ฐœ์˜ ๊ฐ€๋…์„ฑ ๋ฐ ๋‹จ์ˆœ ๋ฐ˜๋ณต์„ ์ค„์—ฌ์ฃผ๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณต ํ•œ๋‹ค. ๊ทธ๋Ÿผ define ๋งคํฌ๋กœ๋Š” ํ•œ๋งˆ๋””๋กœ ๋ฌธ์ž ๋˜๋Š” ์ˆซ์ž ๊ทธ๋ฆฌ๊ณ  ๊ธฐํ˜ธ์— ๋Œ€ํ•˜์—ฌ ํŠน์ • ๋ฌธ์ž๋กœ ์น˜ํ™˜์„ ํ•˜๋Š” ๊ธฐ๋Šฅ์ด๋‹ค. #define ์ง€์ •๋ฌธ์ž ๋Œ€์ฒด๋ฌธ์ž Define ์˜ˆ์ œ #define ADD(A,B) A + B printf( "Define ADD(A,B) : %d, ADD(1,2));์ด๋ ‡๊ฒŒ ์‚ฌ์šฉํ•œ๋‹ค ์ฆ‰ ํ™”๋ฉด์˜ ๊ฐ’์€ Define ADD(A,B) : 3 ์„ ์ถœ๋ ฅ ํ•œ๋‹ค. ์ด๋ ‡๊ฒŒ ์‚ฌ์šฉ๋ฒ•์€ ๊ฐ„๋‹จํ•˜๋‹ค. ๊ฐ€๋” define ๋งคํฌ๋กœ๋ฅผ ์‚ฌ์šฉํ•œ ๊ฒฝ์šฐ ์†Œ์Šค ์ดํ•ด๊ฐ€ ์–ด๋ ค์šธ ๋•Œ๊ฐ€ ์žˆ๋Š”๋ฐ ์ด๋•Œ๋Š” ์†Œ์Šค๋ฅผ ์ดํ•ด ํ• ๋•Œ define ๊ฐ’์„ ..

Development 2023.06.09

์ •๊ทœ ํ‘œํ˜„์‹ ์‚ฌ์šฉ๋ฒ• ์ •๋ฆฌ

์ •๊ทœ ํ‘œํ˜„์‹ ๋ฌธ๋ฒ• / (http|https|ftp|telnet|news|mms):\/\/[^\"'\s()]+ / i ํŒจํ„ด๊ตฌ๋ถ„์ž ์‹œ์ž‘ ์ฐพ์„ ๋ฌธ์ž์—ด์˜ ํŒจํ„ด ํŒจํ„ด๊ตฌ๋ถ„์ž ๋ ํŒจํ„ด๋ณ€๊ฒฝ์ž URL ์ฐพ๋Š” ์ •๊ทœ ํ‘œํ˜„์‹ ์˜ˆ์ œ /(http|https|ftp|telnet|news|mms):\/\/[^\"'\s()]+/i ๋ฉ”ํƒ€ ๋ฌธ์ž ์—ฐ์‚ฐ์ž๋‚˜ ์˜ˆ์•ฝ์–ด๋กœ ์“ฐ์ด๋Š” ๋ฌธ์ž๋ฅผ ์ •๊ทœ ํ‘œํ˜„์‹์—์„œ๋Š” ๋ฉ”ํƒ€ ๋ฌธ์ž๋ผ๊ณ  ํ•จ ๋ฉ”ํƒ€๋ฌธ์ž๋กœ ์ฐพ์•„์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ๋Š” ์—ญ์Šฌ๋ž˜์‹œ \๋ฅผ ๋ถ™์—ฌ ์ฃผ๋ฉด ๋จ \ ^ $ . | [ ] ( ) * + ? { } ^ : ๋ฌธ์ž์—ด์˜ ์‹œ์ž‘ $ : ๋ฌธ์ž์—ด์˜ ์ข…๋ฃŒ . : 1๊ฐœ์˜ ๋ฌธ์ž์™€ ์ผ์น˜ [] : ๋ฌธ์ž ํด๋ž˜์Šค "[" ๊ณผ "]" ์‚ฌ์ด์˜ ๋ฌธ์ž ์ค‘ ํ•˜๋‚˜ ์„ ํƒ [^ ] : ๋ถ€์ • ๋ฌธ์ž ํด๋ž˜์Šค ์•ˆ์˜ ๋ฌธ์ž๋ฅผ ์ œ์™ธํ•œ ๋‚˜๋จธ์ง€ ์„ ํƒ () : ํ•˜์œ„์‹ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ..

Development 2023.05.26

VI ์œ ์šฉํ•œ ๋ช…๋ น์–ด ๋ชจ์Œ

VI ๋˜๋Š” VIM ์„ ์‚ฌ์šฉํ•  ๋•Œ ์œ ์šฉํ•œ ๊ธฐ๋Šฅ ๋ชจ์Œ ์ •๋ฆฌ VIM ์—์„œ Hex ๋ณด๊ธฐ :%!xxd :%!xxd -r // ๋˜๋Œ๋ฆด ๋•Œ UTF8 ์ธ์ฝ”๋”ฉ ์„ค์ • :set encoding=utf-8 EUC-KR ์ธ์ฝ”๋”ฉ ์„ค์ • :set encoding=euc-kr ์‹œ์ž‘ ๋ผ์ธ ์ด๋™ํ•˜๊ธฐ gg ๋งˆ์ง€๋ง‰ ๋ผ์ธ ์ด๋™ํ•˜๊ธฐ G ํ˜„์žฌ ์ค„ ์‚ญ์ œ dd ํ˜„์žฌ ์ปค์„œ ์ดํ›„ ์„ ํƒ ๋ผ์ธ ์‚ญ์ œ D ํ˜„์žฌ ๋ผ์ธ ์ดํ›„ ๋ชจ๋‘ ์‚ญ์ œ d + G ํŠน์ •๋ฌธ์ž ์ฐพ๊ธฐ / + ๊ฒ€์ƒ‰ ๋ฌธ์ž ( n : ์„ ๋ˆ„๋ฅด๋ฉด ๊ณ„์† ๋‹ค์Œ ๋ฌธ์ž ์ฐพ์Œ, N : ์„ ๋ˆ„๋ฅด๋ฉด ์ด์ „ ๊ฒ€์ƒ‰ ๋ฌธ์ž ์ฐพ์Œ ) ํŠน์ •๋ฌธ์ž์—ด ์น˜ํ™˜ํ•˜๊ธฐ :%s///g ์ค„๋ฒˆํ˜ธ ๋ณด๊ธฐ ์„ค์ • :set nu ์ค„๋ฒˆํ˜ธ ์ฐพ๊ธฐ : ๋ธ”๋Ÿญ์ฒ˜๋ฆฌํ•˜๊ธฐ v ( ๋ธ”๋ก์ด ์‹œ์ž‘ ํ•˜๊ณ  ๋ฐฉํ–ฅํ‚ค๋กœ ์ด๋™ ํ•˜๋ฉด์„œ ์„ค์ • ) ํŠน์ • ๋ฒ”์œ„ ์ฃผ์„์ฒ˜๋ฆฌํ•˜๊ธฐ ctrl + v ํด๋ฆญ ํ›„ ๋ผ์ธ..

Development 2023.05.23