1ํ•™๋…„ (2023)/C ์–ธ์–ด

[C] Visual Studio์—์„œ '#define _CRT_SECURE_NO_WARINGS' ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ 

waterproof 2023. 7. 10. 16:53

 

 

 

 


[1] Visual Studio์—์„œ

'#define _CRT_SECURE_NO_WARINGS' ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ 

 

C ์–ธ์–ด์—์„œ #define _CRT_SECURE_NO_WARNINGS๋Š” ์ปดํŒŒ์ผ๋Ÿฌ์—๊ฒŒ ํŠน์ • ๊ฒฝ๊ณ ๋ฅผ ๋ฌด์‹œํ•˜๋„๋ก ์ง€์‹œํ•˜๋Š” ํ”„๋ฆฌํ”„๋กœ์„ธ์„œ ์ง€์‹œ๋ฌธ์ด๋‹ค. ์ด ์ง€์‹œ๋ฌธ์„ ์‚ฌ์šฉํ•˜๋ฉด ์ปดํŒŒ์ผ๋Ÿฌ์—์„œ ๋ฐœ์ƒํ•˜๋Š” "๋ณด์•ˆ ๊ฒฝ๊ณ (C4996)" ๋ฉ”์‹œ์ง€๋ฅผ ๋ฌด์‹œํ•  ์ˆ˜ ์žˆ๋‹ค.

_CRT_SECURE_NO_WARNINGS๋ฅผ ์ •์˜ํ•จ์œผ๋กœ์จ ์ปดํŒŒ์ผ๋Ÿฌ์—์„œ ๋ฐœ์ƒํ•˜๋Š” ๊ฒฝ๊ณ ๋ฅผ ๋ฌด์‹œํ•˜๋Š” ๋Œ€์‹ , ๋ช‡ ๊ฐ€์ง€ ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฒ„ํผ ์˜ค๋ฒ„ํ”Œ๋กœ์šฐ์™€ ๊ฐ™์€ ๋ณด์•ˆ ์ทจ์•ฝ์ ์— ๋…ธ์ถœ๋  ์ˆ˜ ์žˆ๋‹ค. ์ด ์ง€์‹œ๋ฌธ์€ ํŠนํžˆ ์˜ค๋ž˜๋œ C ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํ•จ์ˆ˜์ธ scanf, gets, strcpy ๋“ฑ์„ ์‚ฌ์šฉํ•  ๋•Œ ์œ ์šฉํ•˜๋‹ค. ์ด๋Ÿฌํ•œ ํ•จ์ˆ˜๋“ค์€ ๋ฒ„ํผ ํฌ๊ธฐ๋ฅผ ํ™•์ธํ•˜์ง€ ์•Š๊ณ  ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ ๋•Œ๋ฌธ์—, ์ž˜๋ชป๋œ ์ž…๋ ฅ์ด๋‚˜ ๋ฐ์ดํ„ฐ ํฌ๊ธฐ๋ฅผ ์ดˆ๊ณผํ•˜๋Š” ๊ฒฝ์šฐ์— ๋ฒ„ํผ ์˜ค๋ฒ„ํ”Œ๋กœ์šฐ์™€ ๊ฐ™์€ ๋ณด์•ˆ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค.

๊ฒฝ๊ณ ๋ฅผ ๋ฌด์‹œํ•˜๊ธฐ ์œ„ํ•ด _CRT_SECURE_NO_WARNINGS๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ, ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ํ•ด๋‹น ๊ฒฝ๊ณ  ๋ฉ”์‹œ์ง€๋ฅผ ์ถœ๋ ฅํ•˜์ง€ ์•Š๊ณ  ์ปดํŒŒ์ผ์„ ์ง„ํ–‰ํ•œ๋‹ค. ์ด๋กœ์จ ์ฝ”๋“œ์˜ ์ปดํŒŒ์ผ ๊ณผ์ •์—์„œ ๋ฐœ์ƒํ•˜๋Š” ๊ฒฝ๊ณ  ๋ฉ”์‹œ์ง€๊ฐ€ ์ค„์–ด๋“ค๊ณ , ๋” ์ด์ƒ ํ•ด๋‹น ๊ฒฝ๊ณ ๋ฅผ ์‹ ๊ฒฝ์“ฐ์ง€ ์•Š์•„๋„ ๋˜๋Š” ์žฅ์ ์ด ์žˆ๋‹ค.

 


๊ทธ๋Ÿฌ๋‚˜ ์ด ์ง€์‹œ๋ฌธ์„ ์‚ฌ์šฉํ•  ๋•Œ ์ฃผ์˜ํ•ด์•ผ ํ•œ๋‹ค. ๊ฒฝ๊ณ ๋ฅผ ๋ฌด์‹œํ•จ์œผ๋กœ์จ ๋ณด์•ˆ ์ทจ์•ฝ์ ์ด ์ƒ๊ธธ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ, ์ฝ”๋“œ์˜ ์•ˆ์ „์„ฑ์„ ๊ณ ๋ คํ•ด์•ผ ํ•œ๋‹ค. ๊ฐ€๋Šฅํ•˜๋‹ค๋ฉด ๋ณด์•ˆ ์ทจ์•ฝ์ ์„ ํ”ผํ•˜๊ธฐ ์œ„ํ•ด (2)์•ˆ์ „ํ•œ ๋Œ€์•ˆ ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.

๋˜ํ•œ, _CRT_SECURE_NO_WARNINGS๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ์—๋„ ํ”„๋กœ๊ทธ๋žจ์˜ ์‚ฌ์šฉ์ž๋กœ๋ถ€ํ„ฐ์˜ ์ž…๋ ฅ์„ ๊ฒ€์ฆํ•˜๊ณ , ๋ฒ„ํผ ์˜ค๋ฒ„ํ”Œ๋กœ์šฐ์™€ ๊ฐ™์€ ๋ณด์•ˆ ๋ฌธ์ œ๋ฅผ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ์ ์ ˆํ•œ ์กฐ์น˜๋ฅผ ์ทจํ•ด์•ผ ํ•œ๋‹ค.

 

์š”์•ฝํ•˜์ž๋ฉด, _CRT_SECURE_NO_WARNINGS๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ปดํŒŒ์ผ๋Ÿฌ์—์„œ ๋ฐœ์ƒํ•˜๋Š” ๋ณด์•ˆ ๊ฒฝ๊ณ ๋ฅผ ๋ฌด์‹œํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ฃผ๋กœ ์ผ๋ถ€ ์˜ค๋ž˜๋œ C ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํ•จ์ˆ˜๋“ค์„ ์‚ฌ์šฉํ•  ๋•Œ ์œ ์šฉํ•˜๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋ณด์•ˆ ์ทจ์•ฝ์ ์— ๋…ธ์ถœ๋  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์‹ ์ค‘ํ•˜๊ฒŒ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค.

 

 

 


[2] ์ถ”๊ฐ€ ํ•™์Šต

 

โœ๏ธ (1) ๋ณด์•ˆ ๊ฒฝ๊ณ (C4996)

"๋ณด์•ˆ ๊ฒฝ๊ณ (C4996)"๋Š” Microsoft Visual Studio ์ปดํŒŒ์ผ๋Ÿฌ์—์„œ ๋ฐœ์ƒํ•˜๋Š” ๊ฒฝ๊ณ  ๋ฉ”์‹œ์ง€ ์ค‘ ํ•˜๋‚˜์ด๋‹ค. ์ด ๊ฒฝ๊ณ ๋Š” ๋ณด์•ˆ ์ทจ์•ฝ์„ฑ์„ ๊ฐ€์ง„ ํ•จ์ˆ˜์˜ ์‚ฌ์šฉ์„ ์•Œ๋ฆฌ๋Š” ์—ญํ• ์„ ํ•œ๋‹ค.

C4996 ๊ฒฝ๊ณ ๋Š” ์˜ค๋ž˜๋œ C ํ‘œ์ค€ ํ•จ์ˆ˜๋“ค์ด๋‚˜ ๋น„ํ‘œ์ค€ ํ•จ์ˆ˜๋“ค์„ ์‚ฌ์šฉํ•  ๋•Œ ๋ฐœ์ƒํ•œ๋‹ค. ์ด๋Ÿฌํ•œ ํ•จ์ˆ˜๋“ค์€ ๋ณด์•ˆ ์ทจ์•ฝ์ ์„ ๊ฐ€์ง€๊ณ  ์žˆ๊ฑฐ๋‚˜, ๋” ์•ˆ์ „ํ•œ ๋Œ€์•ˆ ํ•จ์ˆ˜๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ์ด๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, scanf, gets, strcpy์™€ ๊ฐ™์€ ํ•จ์ˆ˜๋“ค์€ ์ž…๋ ฅ์˜ ํฌ๊ธฐ๋ฅผ ํ™•์ธํ•˜์ง€ ์•Š๊ณ  ์ฒ˜๋ฆฌํ•˜๊ธฐ ๋•Œ๋ฌธ์—, ์ž˜๋ชป๋œ ์ž…๋ ฅ์ด๋‚˜ ๋ฐ์ดํ„ฐ ํฌ๊ธฐ๋ฅผ ์ดˆ๊ณผํ•˜๋Š” ๊ฒฝ์šฐ์— ๋ฒ„ํผ ์˜ค๋ฒ„ํ”Œ๋กœ์šฐ ๋“ฑ์˜ ๋ณด์•ˆ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค.

Microsoft๋Š” ์ด๋Ÿฌํ•œ ๋ณด์•ˆ ์ทจ์•ฝ์„ฑ์„ ์ธ์‹ํ•˜๊ณ  ๊ฐœ์„ ํ•˜๊ธฐ ์œ„ํ•ด C4996 ๊ฒฝ๊ณ ๋ฅผ ๋„์ž…ํ–ˆ๋‹ค. ์ด ๊ฒฝ๊ณ ๋ฅผ ํ†ตํ•ด ๊ฐœ๋ฐœ์ž์—๊ฒŒ ํ•ด๋‹น ํ•จ์ˆ˜๋“ค์˜ ์‚ฌ์šฉ์€ ์œ„ํ—˜ํ•˜๋‹ค๋Š” ๊ฒฝ๊ณ  ๋ฉ”์‹œ์ง€๋ฅผ ๋ณด์—ฌ์ค€๋‹ค. ๊ฐœ๋ฐœ์ž๋Š” ์ด๋Ÿฌํ•œ ๊ฒฝ๊ณ ๋ฅผ ํ™•์ธํ•˜๊ณ , ๋ณด์•ˆ ์ทจ์•ฝ์„ฑ์„ ๊ฐ€์ง„ ํ•จ์ˆ˜๋“ค์„ ๋Œ€์ฒดํ•  ์ˆ˜ ์žˆ๋Š” ์•ˆ์ „ํ•œ ๋Œ€์•ˆ ํ•จ์ˆ˜๋“ค์„ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜, ์ ์ ˆํ•œ ์ž…๋ ฅ ๊ฒ€์ฆ๊ณผ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ๋ฐฉ์‹์„ ๊ตฌํ˜„ํ•ด์•ผ ํ•œ๋‹ค.

๋”ฐ๋ผ์„œ #define _CRT_SECURE_NO_WARNINGS๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ _CRT_SECURE_NO_WARNINGS๋ฅผ ์ •์˜ํ•˜๋ฉด, ์ด ๊ฒฝ๊ณ  ๋ฉ”์‹œ์ง€๋ฅผ ๋ฌด์‹œํ•˜๊ณ  ํ•ด๋‹น ํ•จ์ˆ˜๋“ค์„ ๊ณ„์† ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค. ํ•˜์ง€๋งŒ ๊ฒฝ๊ณ ๋ฅผ ๋ฌด์‹œํ•˜๋ฉด์„œ๋„ ๋ณด์•ˆ ์ทจ์•ฝ์ ์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์ฝ”๋“œ ๋‚ด์—์„œ ์ถ”๊ฐ€์ ์ธ ๋ณด์•ˆ ๊ฒ€์ฆ ๋ฐ ์กฐ์น˜๋ฅผ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•œ๋‹ค.

์š”์•ฝํ•˜์ž๋ฉด, "๋ณด์•ˆ ๊ฒฝ๊ณ (C4996)"๋Š” Microsoft Visual Studio ์ปดํŒŒ์ผ๋Ÿฌ์—์„œ ์˜ค๋ž˜๋œ C ํ‘œ์ค€ ํ•จ์ˆ˜๋‚˜ ๋น„ํ‘œ์ค€ ํ•จ์ˆ˜์˜ ์‚ฌ์šฉ์œผ๋กœ ์ธํ•œ ๋ณด์•ˆ ์ทจ์•ฝ์„ฑ์„ ์•Œ๋ฆฌ๊ธฐ ์œ„ํ•œ ๊ฒฝ๊ณ  ๋ฉ”์‹œ์ง€์ด๋‹ค. ์ด ๊ฒฝ๊ณ ๋ฅผ ํ†ตํ•ด ๊ฐœ๋ฐœ์ž๋Š” ํ•ด๋‹น ํ•จ์ˆ˜๋“ค์˜ ์‚ฌ์šฉ์„ ๊ฒ€ํ† ํ•˜๊ณ , ์•ˆ์ „ํ•œ ๋Œ€์•ˆ ํ•จ์ˆ˜๋‚˜ ๋ณด์•ˆ ๊ฒ€์ฆ์„ ์ ์šฉํ•ด์•ผ ํ•œ๋‹ค. _CRT_SECURE_NO_WARNINGS๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ด๋Ÿฌํ•œ ๊ฒฝ๊ณ ๋ฅผ ๋ฌด์‹œํ•  ์ˆ˜ ์žˆ์œผ๋‚˜, ๋ณด์•ˆ์— ๋Œ€ํ•œ ์ถ”๊ฐ€์ ์ธ ์ฃผ์˜๊ฐ€ ํ•„์š”ํ•˜๋‹ค.

 

 

https://learn.microsoft.com/ko-kr/cpp/error-messages/compiler-warnings/compiler-warning-level-3-c4996?view=msvc-170 

 

์ปดํŒŒ์ผ๋Ÿฌ ๊ฒฝ๊ณ (์ˆ˜์ค€ 3) C4996

์ปดํŒŒ์ผ๋Ÿฌ ๊ฒฝ๊ณ  C4996์ด ๋ฐœ์ƒํ•˜๋Š” ์ด์œ ๋ฅผ ์„ค๋ช…ํ•˜๊ณ  ์ด์— ๋Œ€ํ•ด ์ˆ˜ํ–‰ํ•  ์ž‘์—…์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

learn.microsoft.com

 

 

โœ๏ธ (2) ์•ˆ์ „ํ•œ ๋Œ€์•ˆ ํ•จ์ˆ˜

C ์–ธ์–ด์—์„œ ์•ˆ์ „ํ•œ ๋Œ€์•ˆ ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์€ ๋ณด์•ˆ ์ทจ์•ฝ์„ฑ์„ ์™„ํ™”ํ•˜๊ณ  ์ฝ”๋“œ์˜ ์•ˆ์ „์„ฑ์„ ํ–ฅ์ƒ์‹œํ‚ค๋Š” ๋ฐ ๋„์›€์ด ๋œ๋‹ค. ์•„๋ž˜์— ๋ช‡ ๊ฐ€์ง€ ์ผ๋ฐ˜์ ์ธ C ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํ•จ์ˆ˜์™€ ๊ทธ์— ๋Œ€ํ•œ ์•ˆ์ „ํ•œ ๋Œ€์•ˆ ํ•จ์ˆ˜๋“ค์„ ์ œ์‹œํ•˜๊ฒ ๋‹ค.

  1. scanf ๋Œ€์•ˆ ํ•จ์ˆ˜: scanf ํ•จ์ˆ˜๋Š” ๋ฒ„ํผ ์˜ค๋ฒ„ํ”Œ๋กœ์šฐ์™€ ๊ฐ™์€ ๋ณด์•ˆ ์ทจ์•ฝ์ ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ๋Œ€์‹ ์— scanf_s ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. scanf_s ํ•จ์ˆ˜๋Š” ๋ฒ„ํผ์˜ ํฌ๊ธฐ๋ฅผ ๋ช…์‹œ์ ์œผ๋กœ ์ง€์ •ํ•˜์—ฌ ์•ˆ์ „ํ•˜๊ฒŒ ์ž…๋ ฅ์„ ์ฒ˜๋ฆฌํ•œ๋‹ค.
  2. gets ๋Œ€์•ˆ ํ•จ์ˆ˜: gets ํ•จ์ˆ˜๋Š” ๋ฒ„ํผ ์˜ค๋ฒ„ํ”Œ๋กœ์šฐ์™€ ๊ด€๋ จ๋œ ์‹ฌ๊ฐํ•œ ๋ณด์•ˆ ์ทจ์•ฝ์ ์„ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋ฏ€๋กœ ์‚ฌ์šฉ์„ ํ”ผํ•ด์•ผ ํ•œ๋‹ค. ๋Œ€์‹ ์— fgets ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. fgets ํ•จ์ˆ˜๋Š” ์ž…๋ ฅ ๋ฌธ์ž์—ด์˜ ํฌ๊ธฐ๋ฅผ ์ œํ•œํ•˜์—ฌ ๋ฒ„ํผ ์˜ค๋ฒ„ํ”Œ๋กœ์šฐ๋ฅผ ๋ฐฉ์ง€ํ•œ๋‹ค.
  3. strcpy, strcat ๋Œ€์•ˆ ํ•จ์ˆ˜: strcpy์™€ strcat ํ•จ์ˆ˜๋Š” ๋Œ€์ƒ ๋ฒ„ํผ์˜ ํฌ๊ธฐ๋ฅผ ํ™•์ธํ•˜์ง€ ์•Š๊ณ  ๋ฌธ์ž์—ด์„ ๋ณต์‚ฌํ•˜๊ฑฐ๋‚˜ ์—ฐ๊ฒฐํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ณด์•ˆ ์ทจ์•ฝ์ ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ๋Œ€์‹ ์— strcpy_s, strcat_s ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋Ÿฌํ•œ ํ•จ์ˆ˜๋“ค์€ ๋Œ€์ƒ ๋ฒ„ํผ์˜ ํฌ๊ธฐ๋ฅผ ๋ช…์‹œ์ ์œผ๋กœ ์ง€์ •ํ•˜์—ฌ ์•ˆ์ „ํ•œ ๋ฌธ์ž์—ด ์ฒ˜๋ฆฌ๋ฅผ ์ˆ˜ํ–‰ํ•œ๋‹ค.
  4. sprintf, vsprintf ๋Œ€์•ˆ ํ•จ์ˆ˜: sprintf์™€ vsprintf ํ•จ์ˆ˜๋Š” ํ˜•์‹ํ™”๋œ ๋ฌธ์ž์—ด์„ ์ƒ์„ฑํ•  ๋•Œ ๋ฒ„ํผ์˜ ํฌ๊ธฐ๋ฅผ ํ™•์ธํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ๋ณด์•ˆ ์ทจ์•ฝ์ ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ๋Œ€์‹ ์— sprintf_s, vsprintf_s ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋Ÿฌํ•œ ํ•จ์ˆ˜๋“ค์€ ๋Œ€์ƒ ๋ฒ„ํผ์˜ ํฌ๊ธฐ๋ฅผ ๋ช…์‹œ์ ์œผ๋กœ ์ง€์ •ํ•˜์—ฌ ๋ฒ„ํผ ์˜ค๋ฒ„ํ”Œ๋กœ์šฐ๋ฅผ ๋ฐฉ์ง€ํ•œ๋‹ค.

์ด ์™ธ์—๋„ ๊ฐ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํ•จ์ˆ˜์— ๋Œ€ํ•ด ํŠน์ •ํ•œ ์•ˆ์ „ํ•œ ๋Œ€์•ˆ ํ•จ์ˆ˜๊ฐ€ ์ œ๊ณต๋  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ํ”Œ๋žซํผ์— ๋”ฐ๋ผ ๋‹ค๋ฅผ ์ˆ˜๋„ ์žˆ๋‹ค. ๋”ฐ๋ผ์„œ ํ•ด๋‹น ํ”Œ๋žซํผ ๋˜๋Š” ์ปดํŒŒ์ผ๋Ÿฌ์˜ ๋ฌธ์„œ๋ฅผ ์ฐธ์กฐํ•˜์—ฌ ์•ˆ์ „ํ•œ ๋Œ€์•ˆ ํ•จ์ˆ˜์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ํ™•์ธํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค. ๋˜ํ•œ, C ์–ธ์–ด์—์„œ๋Š” ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ์™€ ๋ฌธ์ž์—ด ์ฒ˜๋ฆฌ์— ๊ด€๋ จ๋œ ๋‹ค์–‘ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋“ค์ด ์กด์žฌํ•˜๋ฏ€๋กœ, ํŠน์ •ํ•œ ์š”๊ตฌ์‚ฌํ•ญ์— ๋งž๊ฒŒ ์ ์ ˆํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์„ ํƒํ•˜์—ฌ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ๋„ ์ข‹์€ ๋ฐฉ๋ฒ•์ด๋‹ค.

 

 

https://learn.microsoft.com/ko-kr/cpp/c-runtime-library/security-features-in-the-crt?view=msvc-170 

 

CRT์˜ ๋ณด์•ˆ ๊ธฐ๋Šฅ

Microsoft C ๋Ÿฐํƒ€์ž„์˜ ๋ณด์•ˆ CRT ํ•จ์ˆ˜ ๊ฐœ์š”์ž…๋‹ˆ๋‹ค.

learn.microsoft.com

 

 

 


[3] ๋Š๋‚€ ์ 

 

โœ”๏ธ ๊ธ€์„ ์“ด ์ด์œ : ์—ฌ๋ฆ„๋ฐฉํ•™๋™์•ˆ ํ•™๊ต ์นœ๊ตฌ๋“ค๊ณผ ์ž๋ฐœ์ ์œผ๋กœ ์ง„ํ–‰ํ•˜๋Š” 'C์–ธ์–ด study' ์—์„œ๋Š” C์–ธ์–ด๋ฅผ ์ฒ˜์Œ๋ถ€ํ„ฐ ๋๊นŒ์ง€ ๋ณต์Šตํ•˜๊ธฐ๋กœ ํ–ˆ๋‹ค. ์‹œํ—˜์— ๋‚˜์˜ค๋Š” ๋‚ด์šฉ(์ฃผ๋กœ ๋ฌธ๋ฒ•์ ์ธ ๋‚ด์šฉ๋“ค)๋งŒ ๊ณต๋ถ€ํ•˜๊ธฐ ๋ฐ”๋นด๋˜ ํ•™๊ธฐ ์ค‘์ผ ๋•Œ์™€๋Š” ๋‹ฌ๋ฆฌ ๋” ์—ฌ์œ ๋กญ๊ฒŒ C์–ธ์–ด๋ฅผ ๊ณต๋ถ€ํ•  ์ˆ˜ ์žˆ์–ด์„œ, '#define _CRT_SECURE_NO_WARNINGS' ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ ์— ๋Œ€ํ•ด ์ž์„ธํžˆ ์ฐพ์•„๋ณด์•˜๋‹ค.

 

โœ”๏ธ Microsoft ๊ณต์‹ ํ™ˆํŽ˜์ด์ง€์—์„œ ์ž์„ธํ•œ ์„ค๋ช…๋„ ์ฐพ์•„๋ณด์•˜๋‹ค.

 

โœ”๏ธ ๋ณด์•ˆ์˜ ์ทจ์•ฝ์ ์—๋Š” ์ •๋ง ๋‹ค์–‘ํ•œ ์ข…๋ฅ˜๊ฐ€ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ฒŒ ๋˜์—ˆ๋‹ค. ๋‹ค์Œ์—๋Š” ๋ฒ„ํผ ์˜ค๋ฒ„ํ”Œ๋กœ์šฐ์— ๋Œ€ํ•ด์„œ๋„ ๊ธ€์„ ์“ธ ์˜ˆ์ •์ด๋‹ค.

 

โœ”๏ธ scanf_s ๊ณผ ๊ฐ™์ด ๋’ค์— ๋ถ™๋Š” _s ๊ฐ€ ("secure") ์ ‘๋ฏธ์‚ฌ๋ผ๋Š” ๊ฒƒ์„ ์•Œ๊ฒŒ ๋˜์—ˆ๋‹ค.

 

โœ”๏ธ ์ดํ•ด๋ฅผ ํ•˜๊ณ  ์‚ฌ์šฉํ•˜๋‹ˆ๊นŒ ๋” ํฅ๋ฏธ๊ฐ€ ๋Š๊ปด์ง€๊ณ  ์ž˜ ์•ˆ ์žŠ์„ ๊ฒƒ ๊ฐ™๋‹ค!