์ „์ฒด ๊ธ€ 178

[๋ฒˆ์—ญ๊ธ€] ์•”ํ˜ธํ™” ๊ฐœ์š” ( Cryptography Overview )

์ด๊ธ€์€ Pratical Cryptograpy for developers ์— ์žˆ๋Š” ๋‚ด์šฉ์„ ๋ฒˆ์—ญํ•œ ๊ธ€์ž…๋‹ˆ๋‹ค.[์›๋ฌธ] ํ˜„๋Œ€ ์•”ํ˜ธํ™” ๊ฐœ์š” ( Overview of Modern Cryptography ) ์•”ํ˜ธํ™”๋Š” ์ตœ์ดˆ์˜ ์‹œ๋„(์ˆ˜์ฒœ๋…„ ์ „)์—์„œ ์‹œ์ž‘ ๋˜์–ด์„œ ๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ ์ตœ์ดˆ์˜ ์„ฑ๊ณต์ ์ธ ์•”ํ˜ธํ™” ์•Œ๊ณ ๋ฆฌ์ฆ˜(ํ˜„์žฌ๋Š” ์€ํ‡ดํ•œ MD5 ๋ฐ DES์™€ ๊ฐ™์€)์„ ํ†ตํ•ด ์ตœ์‹  ์•”ํ˜ธํ™” ์•Œ๊ณ ๋ฆฌ์ฆ˜(SHA-3, Argon2 ๋ฐ ChaCha20๊ณผ ๊ฐ™์€)์œผ๋กœ ๋ฐœ์ „ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋จผ์ € ๊ฐ„๋‹จํžˆ ์†Œ๊ฐœ ํ•˜๋ฉด ์•”ํ˜ธํ™” ํ•ด์‹œ ๊ธฐ๋Šฅ(SHA-256, SHA3, RIPEMD ๋“ฑ), HMAC(ํ•ด์‹œ ๋ฉ”์‹œ์ง€ ์ธ์ฆ ์ฝ”๋“œ), ํ‚ค ํŒŒ์ƒ ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ์•”ํ˜ธ(์˜ˆ: Scrypt), Diffie-Hellman ํ‚ค ๊ตํ™˜ ํ”„๋กœํ† ์ฝœ, ๋Œ€์นญ ํ‚ค ์•”ํ˜ธํ™” ์ฒด๊ณ„(์˜ˆ: CBC ๋ฐ CTR ๋ธ”๋ก ๋ชจ๋“œ๋ฅผ ์‚ฌ์šฉ..

PKI/Cryptography 2023.06.22

[CryptokiMan] Digest ๊ฐ’ ์ƒ์„ฑ ํ•˜๊ธฐ

CryptokiMan ์„ ์ด์šฉํ•˜์—ฌ PKCS#11 Digest ๊ฐ’์„ ์ƒ์„ฑ ํ•ด๋ณด์ž ๋จผ์ € ํ•ด๋‹น PKCS#11 ์—์„œ ์ง€์› ํ•˜๋Š” Digest ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ํ™•์ธ ํ•ด๋ณด์ž ํ•ด๋‹น Mechanism ์„ ํ™•์ธ ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ํ•ด๋‹น ์Šฌ๋กฏ์˜ C_OpenSession ๊นŒ์ง€ ์ด๋ฃจ์–ด์ ธ์•ผ ํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์Šฌ๋กฏ ์„ ํƒ ํ›„ Mechanism ์„ ๋ˆŒ๋Ÿฌ ๋ณด๋ฉด ์•„๋ž˜ ํ™”๋ฉด ์ฒ˜๋Ÿผ ์ง€์› ํ•˜๋Š” Digest ๋ชฉ๋ก์„ ํ™•์ธ ํ•  ์ˆ˜ ์žˆ๋‹ค. ํ˜„์žฌ ํ…Œ์ŠคํŠธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” SoftHSM2 ์ธ๋ฐ MD5, SHA1, SHA224, SHA256, SHA384, SHA512 ๊ฐ€ ์ง€์› ๋˜๋Š” ๊ฒƒ์„ ํ™•์ธ ํ•  ์ˆ˜ ์žˆ๋‹ค. Digest ํ•จ์ˆ˜๋ฅผ ์‹คํ–‰ ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” C_OpenSession ๋งŒ ํ•˜๋ฉด ๋œ๋‹ค. C_Login ์ธ์ฆ์€ ์—†์–ด๋„ ๋œ๋‹ค. Digest ์ž์ฒด๋Š” ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ํŠน๋ณ„ํžˆ..

Manual/CryptokiMan 2023.06.21

[CryptokiMan] Random ๊ธฐ๋Šฅ ์‚ฌ์šฉ๋ฒ•

์ด๋ฒˆ์—๋Š” PKCS#11 ์—์„œ ์ œ๊ณต ํ•˜๋Š” Random ๊ธฐ๋Šฅ์„ CryptokiMan ํˆด์„ ์ด์šฉํ•ด ๊ตฌํ•ด ๋ณด์ž PKCS#11 ๊ธฐ๋Šฅ์„ ํ…Œ์ŠคํŠธ ํ•˜๊ธฐ ์œ„ํ•ด ์—ฌ๊ธฐ์„œ๋Š” SoftHSM2 ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ด์šฉํ•˜์˜€๋‹ค. Random ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ ๋Š” ์˜ˆ์ธกํ•  ์ˆ˜ ์—†๋Š” ๊ฐ’์„ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด์„œ ๋ณดํ†ต ๋Œ€์นญํ‚ค๋‚˜ ๋น„๋Œ€์นญํ‚ค๋ฅผ ๋งŒ๋“ค ๋•Œ ์‚ฌ์šฉ์ด๋œ๋‹ค. ์‚ฌ์‹ค PKCS#11 ์—์„œ๋Š” Random ๊ธฐ๋Šฅ๊ณผ ๊ด€๋ จํ•œ ํ•จ์ˆ˜๋Š” ๋‘๊ฐ€์ง€ ์ด๋‹ค. C_SeedRandom ๊ณผ C_GenerateRandom ํ•จ์ˆ˜์ด๋‹ค. ์ด ๋‘ ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” PKCS#11 ์—์„œ C_OpenSession ๊นŒ์ง€ ์ง„ํ–‰์ด ๋˜์–ด ์žˆ์–ด์•ผ ํ•œ๋‹ค. ํ•˜์ง€๋งŒ ๋žœ๋ค ๊ด€๋ จ ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ํŠน๋ณ„ํžˆ C_Login ์€ ํ•˜์ง€ ์•Š์•„๋„ ๋œ๋‹ค. ์‚ฌ์‹ค Random ๊ฐ’ ์ž์ฒด์˜ ๊ธฐ๋Šฅ์€ ๋ณด์•ˆ์ƒ ์•ˆ์ „์„ฑ์ด ์—†์–ด๋„ ๋˜..

Manual/CryptokiMan 2023.06.20

[BerEditor] ๊ณต๊ฐœํ‚ค ์•”ํ˜ธํ™” ๋ณตํ˜ธํ™” ํ•˜๊ธฐ

[์ด ๊ธฐ๋Šฅ์€ ๋ผ์ด์„ ์Šค ๋ฒ„์ „ ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค] ๋น„๋Œ€์นญํ‚ค ์•Œ๊ณ ๋ฆฌ์ฆ˜์ธ RSA ๊ฒฝ์šฐ ์ƒ๋Œ€๋ฐฉ์˜ ๊ณต๊ฐœํ‚ค๋ฅผ ๊ฐ€์ง€๊ณ  ์•”ํ˜ธํ™”๋ฅผ ํ•˜๋ฉด ์•”ํ˜ธํ™” ๋ฐ์ดํƒ€๋ฅผ ๋ฐ›์€ ์ˆ˜์‹ ์ž๋Š” ์ž์‹ ์˜ ๊ฐœ์ธํ‚ค๋กœ ๋ณตํ˜ธํ™”๋ฅผ ํ•ด์„œ ํ‰๋ฌธ์„ ์–ป๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค. ์ฐธ๊ณ ๋กœ ECDSA ๋Š” ์ „์ž ์„œ๋ช…๋งŒ์„ ์œ„ํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋ผ ๊ณต๊ฐœํ‚ค ์•”ํ˜ธํ™”๋ฅผ ์ง€์› ํ•˜์ง€ ์•Š๋Š”๋‹ค. ๋‹จ ์ค‘๊ตญ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ธ SM2 ๊ฒฝ์šฐ๋Š” ๊ณต๊ฐœํ‚ค ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ง€์› ํ•œ๋‹ค. ์—ฌ๊ธฐ์„œ๋Š” RSA ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ด์šฉํ•œ ๊ณต๊ฐœํ‚ค ์•”ํ˜ธํ™”๋ฅผ ํ•ด๋ณด์ž RSA ์•”ํ˜ธํ™”์—์„œ ์„ ํƒ ์‚ฌํ•ญ์€ V15์™€ V21 ํŒจ๋”ฉ ์˜ต์…˜์ด๋‹ค. ๊ฐ„๋‹จํžˆ V15๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ๋žœ๋ค๊ฐ’์œผ๋กœ ํŒจ๋”ฉ์„ ํ•˜๋Š”๊ฒƒ์ด๊ณ  V21 ์€ OAEP ๋ฅผ ์ ์šฉํ•œ ์ข€๋” ์•ˆ์ „ํ•œ ํŒจ๋”ฉ์œผ๋กœ ๋ณด๋ฉด ๋œ๋‹ค. RSA ๊ณต๊ฐœํ‚ค ์•”ํ˜ธํ™” ํ•˜๊ธฐ BerEditor -> ์•”ํ˜ธ -> ๊ณต๊ฐœํ‚ค ์•”/๋ณตํ˜ธํ™” ๋ฉ”๋‰ด๋ฅผ ๋ˆ„๋ฅธ๋‹ค. ๊ทธ๋ฆผ์—์„œ V15 ํŒจ๋”ฉ ..

Manual/BerEditor 2023.06.19

[CertMan] ๋น„๋Œ€์นญ ํ‚ค ์Œ ( RSA, ECDSA, SM2 ) ๋งŒ๋“ค๊ธฐ

๋ผ์ด์„ ์Šค๊ฐ€ ์—†๋Š” ๋ฒ„์ „์€ RSA ๋งŒ ์ง€์› ํ•ฉ๋‹ˆ๋‹ค. CertMan ์„ ์ด์šฉํ•˜์—ฌ ๋น„๋Œ€์นญํ‚ค๋ฅผ ๋งŒ๋“ค์–ด ๋ณด์ž ํ˜„์žฌ CertMan ์—์„œ ์ง€์› ํ•˜๋Š” ๋น„๋Œ€์นญํ‚ค ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ RSA, ECDSA ์™€ SM2์ด๋‹ค. ์‚ฌ์‹ค SM2 ์˜ ๊ฒฝ์šฐ๋Š” OpenSSL ์—์„œ ๋ณ„๋„๋กœ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ํƒ€์ž…์„ ์ œ๊ณตํ•˜๊ธฐ ๋ณด๋‹ค๋Š” ECC ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ์ค‘์— SM2 ์ธ์‹์ด ๋˜๋ฏ€๋กœ ๊ธฐ๋ณธ์ ์œผ๋กœ๋Š” ECDSA ์™€ ์‚ฌ์šฉ์ด ๋™์ผํ•˜๋‹ค. ๊ฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ณ„๋กœ ํ‚ค ์Œ์„ ๋งŒ๋“ค๋ ค๋ฉด Tools -> NewKey ๋ฉ”๋‰ด๋ฅผ ์„ ํƒ ํ•˜๊ฑฐ๋‚˜ ์™ผ์ชฝ KeyPair ์—์„œ ๋งˆ์šฐ์Šค ์šฐํด๋ฆญ ํ›„ New Key๋ฅผ ์„ ํƒ ํ•˜๋ฉด ๋œ๋‹ค. RSA ํ‚ค ์Œ ๋งŒ๋“ค๊ธฐ Mechanism : ์‚ฌ์šฉํ•  ์•Œ๊ณ ๋ฆฌ์ฆ˜ RSA ์„ ํƒ Exponent : RSA Exponent ๋กœ ์‚ฌ์šฉ ํ•  ๊ฐ’์œผ๋กœ 5, 7, 17 ๋“ฑ ์†Œ์ˆ˜๋กœ ์ž…๋ ฅ ํ˜„์žฌ 6553..

Manual/CertMan 2023.06.16

EdDSA ์•Œ๊ณ ๋ฆฌ์ฆ˜ Ed25519 ๊ณผ Ed448์— ๊ด€ํ•˜์—ฌ

์ด ๊ธ€์€ [์ถœ์ฒ˜] Practical Cryptographiy for Developer ์—์„œ ๋‚˜์˜ค๋Š” EdDSA ์™€ Ed25519 ์— ๊ด€ํ•œ๊ธ€์„ ๋ฒˆ์—ญ ํ•œ ๊ฒƒ์ด๋‹ค. EdDSA(Edwards-curve Digital Signature Algorithm)๋Š” 255๋น„ํŠธ ๊ณก์„  ๋ฐ 448๋น„ํŠธ ๊ณก์„ ๊ณผ ๊ฐ™์€ ์„ฑ๋Šฅ ์ตœ์ ํ™” ํƒ€์› ๊ณก์„ ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋Š” ํ˜„๋Œ€์ ์ด๊ณ  ์•ˆ์ „ํ•œ ๋””์ง€ํ„ธ ์„œ๋ช… ์•Œ๊ณ ๋ฆฌ์ฆ˜์ž…๋‹ˆ๋‹ค. EdDSA ์„œ๋ช…์€ ๊ฐ๊ฐ edwards25519 ๋ฐ edwards448์ธ ํƒ€์› ๊ณก์„ ์˜ Edwards ํ˜•์‹(์„ฑ๋Šฅ์ƒ์˜ ์ด์œ ๋กœ)์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. EdDSA ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ECDLP ๋ฌธ์ œ์˜ ๋‚œ์ด๋„๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋ฉฐ ์ด์— ์˜์กดํ•ฉ๋‹ˆ๋‹ค. EdDSA ์„œ๋ช… ์•Œ๊ณ ๋ฆฌ์ฆ˜๊ณผ ๊ทธ ๋ณ€ํ˜•์ธ Ed25519 ๋ฐ Ed448์€ RFC8032 ์— ๊ธฐ์ˆ ์ ์œผ๋กœ ์„ค๋ช…๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. Ed..

PKI/Cryptography 2023.06.15

[OpenSSL] EdDSA ์•Œ๊ณ ๋ฆฌ์ฆ˜ Ed25519 Ed448 ํ‚ค ์ƒ์„ฑ

EdDSA ( Edwards-Curve Digital Signature Algorithm ) ์˜ ์•ฝ์ž๋กœ ECC ์ฒ˜๋Ÿผ ๋””์ง€ํ„ธ ์„œ๋ช…์šฉ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‹ค. ECDSA์— ๋น„ํ•˜๋ฉด ์—ฐ์‚ฐ ์†๋„๊ฐ€ ECDSA ๋ณด๋‹ค๋Š” ์กฐ๊ธˆ ๋น ๋ฅธ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‹ค. ํ˜„์žฌ EdDSA ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ECDSA ๋ณด๋‹ค๋Š” ๋„๋ฆฌ ์‚ฌ์šฉ๋˜์ง€๋Š” ์•Š์ง€๋งŒ ์ ์  ๋Š˜์–ด๋‚˜๊ณ  ์žˆ๋‹ค๊ณ  ํ•œ๋‹ค. EdDSA ์—์„œ ์ฃผ๋กœ ์‚ฌ์šฉํ•˜๋Š” Curve ๊ฐ€ Ed25519 ์™€ Ed448 ์ด๋‹ค. ๊ทธ๋Ÿผ OpenSSL ๋ช…๋ น์–ด๋กœ ed25519์™€ ed448 ํ‚ค ์Œ์„ ๋งŒ๋“ค์–ด ๋ณด์ž. ed25519 ๊ฐœ์ธํ‚ค ์ƒ์„ฑ openssl genpkey -algorithm ed25519 -out private.pem ed25519 ๊ฐœ์ธํ‚ค ๊ฒฐ๊ณผ -----BEGIN PRIVATE KEY----- MC4CAQAwBQYDK2VwBCIEIJ..

Manual/OpenSSL 2023.06.14

[X509] ์ธ์ฆ์„œ DN ( Distinguished Name ) ์ด๋ž€?

์ธ์ฆ์„œ DN ์— ๋Œ€ํ•ด์„œ ์•Œ์•„ ๋ณด์ž ์—ฌ๊ธฐ์„œ DN ์€ Distinguished Name ์˜ ์•ฝ์ž์ด๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ธ์ฆ์„œ์—์„œ๋Š” DN ์ด ๋‘๊ตฐ๋ฐ ์กด์žฌ ํ•œ๋‹ค ์ฆ‰ ์ฃผ์ฒด์ž์˜ DN ๊ณผ ๋ฐœ๊ธ‰์ž์˜ DN ์ด ์žˆ๋‹ค. ํ•œ๋งˆ๋””๋กœ ์ด ์ธ์ฆ์„œ์˜ ์ฃผ์ฒด์ž์™€ ๋ฐœ๊ธ‰์ž์— ๋Œ€ํ•œ ์ด๋ฆ„์ด DN ์ด๋‹ค. ์ฆ‰ ์ฃผ์ฒด์ž์˜ DN ์€ ํ•ด๋‹น ์ธ์ฆ์„œ์˜ ์ฃผ์ฒด์˜ ์ด๋ฆ„์ด๊ณ  ๋ฐœ๊ธ‰์ž์˜ DN ์€ ํ•ด๋‹น ์ธ์ฆ์„œ๋ฅผ ๋ฐœ๊ธ‰ํ•œ CA ์ธ์ฆ์„œ์˜ ์ด๋ฆ„์ด๋‹ค. ๊ทธ๋Ÿผ DN์— ๋Œ€ํ•˜์—ฌ ์ข€๋” ๊ตฌ์ฒด์ ์œผ๋กœ ๋ถ„์„์„ ํ•ด๋ณด์ž. DN์€ ํ•˜๋‚˜ ์ด์ƒ์˜ RDN ( Relative Distinguished Name ) ์ด ์ˆœ์„œ๋ฅผ ๊ฐ€์ง€๊ณ  ๊ตฌ์„ฑ ๋˜์–ด ์žˆ๋‹ค. DN์˜ ASN.1 ํ˜•์‹ Name ::= CHOICE { RDNSequence } RDNSequence ::= SEQUENCE OF RelativeDistinguished..

PKI/X509 Profile 2023.06.13

[BerEditor] ์ „์ž ์„œ๋ช… ๋ฐ ๊ฒ€์ฆ ํ•˜๊ธฐ

[์ด ๊ธฐ๋Šฅ์€ ๋ผ์ด์„ ์Šค ๋ฒ„์ „ ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค] BerEditor ํˆด์„ ์ด์šฉํ•˜์—ฌ ์ „์ž ์„œ๋ช… ๋ฐ ๊ฒ€์ฆ์„ ํ•ด๋ณด์ž BerEditor ์—์„œ ์ „์ž ์„œ๋ช…์„ ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋จผ์ € ํ•ด๋‹น ์ธ์ฆ์„œ์™€ ๊ฐœ์ธํ‚ค๊ฐ€ ํ•„์š”ํ•˜๋‹ค. ๋จผ์ € RSA ์ „์ž ์„œ๋ช…์„ ํ•  ๋•Œ ๊ณ ๋ ค ์‚ฌํ•ญ์ด ๋‘๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค. ๋จผ์ € ์ „์ž ์„œ๋ช…์— ์‚ฌ์šฉํ•  ์›๋ฌธ์— ๋Œ€ํ•œ Hash ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‹ค ๊ทธ๋ฆฌ๊ณ  ์ „์ž ์„œ๋ช…์—์„œ ํŒจ๋”ฉ์— ๋Œ€ํ•œ ๋ฐฉ์‹์œผ๋กœ ๊ธฐ์กด V15 ๋ฐฉ์‹๊ณผ PSS ์ฆ‰ OAEP ๋ฐฉ์‹์ธ V21 ๋ฐฉ์‹์ด ์กด์žฌ ํ•œ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ์ธ์ฆ์„œ์— ์‚ฌ์šฉ๋œ ๋ฐฉ์‹์€ V15๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์ตœ๊ทผ์—๋Š” ๋ณด์•ˆ์ƒ ์ข€๋” ์•ˆ์ „ํ•œ V21 ๋ฐฉ์‹์„ ๊ถŒ์žฅํ•œ๋‹ค. ECDSA ๊ฒฝ์šฐ๋Š” ์ „์ž ์„œ๋ช…์‹œ Hash ์•Œ๊ณ ๋ฆฌ์ฆ˜๋งŒ ์„ ํƒํ•˜๋ฉด ๋œ๋‹ค. ๊ทธ๋Ÿผ BerEditor๋ฅผ ๊ฐ€์ง€๊ณ  RSA ์ „์ž ์„œ๋ช…์„ ํ•ด๋ณด์ž ์—ฌ๊ธฐ์„œ ์‚ฌ์šฉํ•œ ์ธ์ฆ์„œ์™€ ๊ฐœ์ธํ‚ค๋Š” ์•„๋ž˜ data.zip ํŒŒ..

Manual/BerEditor 2023.06.12

#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