๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Python/๊ธฐ์ดˆ

[๊ฐœ๋ฐœ๋กœ๊ทธ Python] ๋ณ€์ˆ˜ - No.4

by ๐ŸŒปโ™š 2021. 6. 2.

Python 3.9.5 ๋ฒ„์ „์„ ์‚ฌ์šฉ

๋ณ€์ˆ˜๊ฐ€ ๋ฌด์—‡์ธ๊ฐ€?

x = 100
y = 20.5

 ์œ„์˜ ์˜ˆ์‹œ ์ฒ˜๋Ÿผ x ์™€ y๊ฐ€ ๋ณ€์ˆ˜ ์ž…๋‹ˆ๋‹ค. ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ํ•ด๋ณด์ง€ ์•Š์•„๋„ x๋ผ๋Š” ๋ณ€์ˆ˜๋Š” 100์ด๊ณ  y๋ผ๋Š” ๋ณ€์ˆ˜๋Š” 20.5๋ผ๋Š” ๊ฐ’์œผ๋กœ ์‚ฌ์šฉํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์ˆ˜ํ•™์ ์œผ๋กœ "=" ๋“ฑํ˜ธ ๊ธฐํ˜ธ๊ฐ€ "๊ฐ™๋‹ค"๋ผ๋Š” ์˜๋ฏธ๋กœ ๋ฐฐ์›Œ์„œ ๋ณธ๋Šฅ์ ์œผ๋กœ ์•Œ๊ณ  ์žˆ๋Š”๊ฑฐ์ฃ . ๊ทธ๋ž˜์„œ ๋งŒ์•ฝ "x + y ์˜ ๊ฒฐ๊ณผ๊ฐ€ ์–ด๋–ป๊ฒŒ ๋˜๋‚˜์š”?"๋ผ๊ณ  ์งˆ๋ฌธํ•˜๋ฉด "120.5 ์ž…๋‹ˆ๋‹ค!"๋ผ๊ณ  ๋‹น๋‹นํ•˜๊ฒŒ ๋‹ตํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ ์ž…๋‹ˆ๋‹ค. 

 

 ๊ทธ๋Ÿฐ๋ฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ๋“ฑํ˜ธ(=) ๊ธฐํ˜ธ๊ฐ€ "๊ฐ™๋‹ค"๋ผ๋Š” ์˜๋ฏธ๊ฐ€ ์•„๋‹ˆ๋ผ "๋Œ€์ž…ํ•œ๋‹ค"์˜ ์˜๋ฏธ๋ฅผ ๊ฐ–๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. "x + y"์™€ ๊ฐ™์€ ์—ฐ์‚ฐ์€ "๊ฐ™๋‹ค"๋ผ๋Š” ์˜๋ฏธ๋กœ ํ•ด์„ํ•ด์„œ ์‚ฌ์šฉํ•ด๋„ ํฐ ๋ฌธ์ œ๋Š” ์—†์„ ๋งŒํผ ํ”„๋กœ๊ทธ๋ž˜๋ฐํ•  ๋•Œ ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์€ ์‰ฝ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋ณ€์ˆ˜๋ฅผ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์—ฌ๋Ÿฌ ๋ฐฐ๊ฒฝ์ง€์‹์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

 

 

๋ณ€์ˆ˜๋ฅผ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์•Œ์•„์•ผํ•œ๋‹ค.

  ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ผญ ์•Œ์•„์•ผํ•˜๋Š” ์ด์œ ๋Š”... ๋ณ€์ˆ˜๊ฐ€ ๊ฐ’์„ ์–ด๋””์„œ ์–ด๋–ป๊ฒŒ ์ €์žฅํ•˜๊ณ  ์ฝ์–ด์˜ค๋Š”์ง€๋ฅผ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด์„œ ์ž…๋‹ˆ๋‹ค.

 

 ์ปดํ“จํ„ฐ๋ฅผ ๊ตฌ๋งคํ•  ๋•Œ ์‚ฌ์–‘์„ ๋น„๊ตํ•ด๋ณธ์ ์ด ์žˆ์œผ์‹ค๊ฒ๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ CPU, ๋ฉ”๋ชจ๋ฆฌ์™€ ์ €์žฅ ์šฉ๋Ÿ‰์„ ๋น„๊ตํ•˜๋Š”๋ฐ... ์™œ ๋ฉ”๋ชจ๋ฆฌ๋Š” HDD๋‚˜ SSD๊ฐ™์€ ์ €์žฅ์žฅ์น˜๋ณด๋‹ค ์šฉ๋Ÿ‰์˜ ์ˆ˜์น˜๊ฐ€ ์ ์€์ง€ ๊ถ๊ธˆํ•ด ํ•ด๋ณด์‹ ์  ์žˆ์œผ์‹ ๊ฐ€์š”?

 

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

 

Python์˜ ๋ชจ๋“  ๊ฒƒ์ด ์˜ค๋ธŒ์ ํŠธ(๊ฐ์ฒด)์ด๋‹ค. (feat. ๋ฉ”๋ชจ๋ฆฌ ๊ตฌ์กฐ & ๊ธฐ๋ณธ ํƒ€์ž… ๋ณ€์ˆ˜)

Python์€ ๋‹ค๋ฅธ ์–ธ์–ด๋“ค๊ณผ ๋‹ค๋ฅธ ํŠน๋ณ„ํ•œ ํŠน์ง•์ด ํ•˜๋‚˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ํŠน์ง•์œผ๋กœ ์ธํ•ด ๋‹ค๋ฅธ ์–ธ์–ด๋“ค์—๋Š” ์žˆ๋Š” ๋ณ€์ˆ˜ ํƒ€์ž… ์ •์˜์— ๋Œ€ํ•œ ๋ฌธ๋ฒ•์ด Python์—์„œ๋Š” ๊ต‰์žฅํžˆ ์ž์œ ๋กญ์Šต๋‹ˆ๋‹ค.

 

 

Everything is Object
๋ชจ๋“  ๊ฒƒ์ด ์˜ค๋ธŒ์ ํŠธ(๊ฐ์ฒด)์ด๋‹ค.

 

 

Python์—์„œ๋Š” ์ •์ˆ˜, ์‹ค์ˆ˜, ๋ฌธ์ž์—ด, ํ•จ์ˆ˜ ๋“ฑ ๋ชจ๋“  ๊ฒƒ์ด ๊ฐ์ฒด๋กœ ๊ตฌํ˜„๋˜์–ด ์žˆ๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

 

์•„์ง ๋ณ€์ˆ˜๋ฅผ ๋ฐฐ์šฐ๋Š” ๋‹จ๊ณ„์—์„œ๋Š” ๊ฐ์ฒด๋ฅผ ๋ชฐ๋ผ๋„ ๋˜์ง€๋งŒ... ๊ฐ„๋‹จํ•˜๊ฒŒ ์˜ˆ๋ฅผ ๋“ค์–ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

 ๋ถ•์–ด๋นต ์žฅ์‚ฌ๋ฅผ ํ•˜๋Š”๋ฐ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ๋ง›๊ณผ ์ƒ‰์˜ ๋ถ•์–ด๋นต์„ ๋งŒ๋“ค๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๋ง›๊ณผ ์ƒ‰ ๋‘ ๊ฐ€์ง€ ์†์„ฑ์„ ๊ฐ–๊ณ  ๋‹ค์–‘ํ•˜๊ฒŒ ์„ž์–ด์„œ ์—ฌ๋Ÿฌ ์ข…๋ฅ˜์˜ ๋ถ•์–ด๋นต์„ ๋งŒ๋“ค์–ด์„œ ํŒ”๊ธฐ๋กœ ํ–ˆ์Šต๋‹ˆ๋‹ค. ํŒฅ ๋ง› ์ฃผํ™ฉ์ƒ‰ ๋ถ•์–ด๋นต, ํฌ๋ฆผ ๋ง›  ์ฃผํ™ฉ์ƒ‰ ๋ถ•์–ด๋นต, ํฌ๋„ ๋ง› ๋นจ๊ฐ„์ƒ‰ ๋ถ•์–ด๋นต, ํฌ๋ฆผ ๋ง› ๋นจ๊ฐ„์ƒ‰ ๋ถ•์–ด๋นต์„ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ๋งŒ๋“ค์–ด์ง„ ๋ถ•์–ด๋นต์ด ๊ฐ๊ฐ ๊ฐ์ฒด ์ž…๋‹ˆ๋‹ค. ํ”„๋กœ๊ทธ๋ž˜๋ฐํ•œ๋‹ค๊ณ  ํ–ˆ์„ ๋•Œ ํ•˜๋‚˜์˜ ๋ถ•์–ด๋นต ํ‹€์„ ๋งŒ๋“ค์–ด ๋†“๊ณ  ๋‹ค์–‘ํ•œ ์†์„ฑ๋“ค์„ ๊ฐ–๊ณ  ์žˆ๋Š” ๋ถ•์–ด๋นต์ด๋ผ๋Š” ๊ฒฐ๊ณผ๋ฌผ์„ ๋งŒ๋“ค์–ด ๋ƒˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ฒฐ๊ณผ๋ฌผ์ด ๊ณง ๊ฐ์ฒด์ž…๋‹ˆ๋‹ค. ์ง€๊ธˆ์€ "๊ฐ์ฒด๋Š” ๋งŒ๋“ค์–ด์ง„ ๊ฒฐ๊ณผ๋ฌผ์ด๋‹ค" ์ •๋„๋กœ๋งŒ ์ดํ•ดํ•ด๋„ ๋  ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

 

 ๊ทธ๋Ÿผ ๋‹ค์‹œ ๋ณธ๋ก ์œผ๋กœ ๋Œ์•„์™€์„œ... Python์—์„œ๋Š” ๋ชจ๋“  ๊ฒƒ์ด ๊ฐ์ฒด๋ผ๋Š”๋ฐ ๋ณ€์ˆ˜๋ž‘์€ ๋ฌด์Šจ ์ƒ๊ด€์ธ๊ฐ€์š”? ์ด ๊ฒƒ์„ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด ๋ฉ”๋ชจ๋ฆฌ์˜ ๊ตฌ์กฐ์™€ ๊ธฐ๋ณธ ํƒ€์ž… ๋ณ€์ˆ˜๋ผ๋Š” ๊ฒƒ์„ ์•Œ์•„์•ผํ•ฉ๋‹ˆ๋‹ค.

 

Python๊ณผ ๋‹ค๋ฅธ ์–ธ์–ด์˜ ๋ฉ”๋ชจ๋ฆฌ ๊ตฌ์กฐ

๊ฐœ๋ฐœ์ž๊ฐ€ ์ฝ”๋”ฉํ•œ ์ž‘์—…์„ ์‹คํ–‰ํ•  ๋•Œ Memory๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์œ„์—์„œ ์–˜๊ธฐ ํ–ˆ๋“ฏ์ด... ๋ณ€์ˆ˜์™€ ๊ฐ™์€ ๋ฐ์ดํ„ฐ๋ฅผ ์ž„์‹œ์ ์œผ๋กœ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•ด ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์ฃ . ๊ทธ๋Ÿฐ๋ฐ ์ด๋Ÿฐ ๋ฉ”๋ชจ๋ฆฌ๋Š” ์ „์ฒด์ ์œผ๋กœ ๋ดค์„ ๋•Œ ํ•˜๋‚˜์ด์ง€๋งŒ... ๋‚ด๋ถ€์ ์œผ๋กœ๋Š” ๊ณต๊ฐ„์„ ๋‚˜๋ˆ ์„œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

 ์ผ๋ฐ˜์ ์œผ๋กœ ๋ชจ๋“  ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์—์„œ Memory์˜ ๊ตฌ์กฐ์•ˆ์— ํฌ๊ฒŒ Stack๊ณผ Heap์ด๋ผ๋Š” ์˜์—ญ์ด ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. ์˜์—ญ์„ ๋‚˜๋ˆ ์„œ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ ๋Š” ๋ฉ”๋ชจ๋ฆฌ์˜ ์ ‘๊ทผ ์†๋„๊ฐ€ ํ–ฅ์ƒ๋˜๊ณ  ๊ด€๋ฆฌ๊ฐ€ ์šฉ์ดํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๊ฐ€ ์˜ท์žฅ์— ์˜ท์˜ ์ข…๋ฅ˜์— ๋”ฐ๋ผ ์ •๋ฆฌํ•˜๋ฉด ์ฐพ๊ธฐ๋„ ์‰ฝ๊ณ  ๊ด€๋ฆฌ๋„ ํŽธํ•ด์ง€๋Š” ๊ฒƒ ์ฒ˜๋Ÿผ... ๋ฉ”๋ชจ๋ฆฌ๋„ ์ด์™€ ๊ฐ™์ด ๊ด€๋ฆฌํ•œ๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

 

 ๊ทธ๋Ÿผ Python์˜ ๋ฉ”๋ชจ๋ฆฌ ๊ตฌ์กฐ๋Š” ๋‹ค๋ฅธ ์–ธ์–ด๋“ค๊ณผ ๋ญ๊ฐ€ ๋‹ค๋ฅผ๊นŒ์š”? ์‚ฌ์‹ค ๊ตฌ์กฐ๋Š” ๋™์ผํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ๊ฒƒ์€ ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅํ•˜๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ๋‹ค๋ฅด๋‹ค๋Š” ์  ์ž…๋‹ˆ๋‹ค.

 

๋ณ€์ˆ˜๋ฅผ ๋ฐฐ์šฐ๋Š” ๋‹จ๊ณ„์ด๋‹ˆ Stack๊ณผ Heap์— ๋Œ€ํ•ด ๊นŠ๊ฒŒ ๋“ค์–ด๊ฐ€์ง€ ์•Š๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ƒฅ ์•Œ์•„๋‘ฌ์•ผํ•  ๊ฒƒ์€ C๋‚˜ Java์—์„œ๋Š” ๊ธฐ๋ณธํƒ€์ž… ๋ณ€์ˆ˜์˜ ๊ฐ’์ด Stack ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅ๋˜๋Š” ๋ฐ˜๋ฉด Python์—์„œ๋Š” Stack์˜ ๋ชจ๋“  ๋ณ€์ˆ˜๊ฐ€ ๊ฐ’์ด ์•„๋‹Œ ๊ฐ์ฒด์˜ ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ(heap)๊ฐ€ ์ €์žฅ๋œ๋‹ค๋Š” ๊ฒƒ์ด ํ•ต์‹ฌ ์ž…๋‹ˆ๋‹ค.

 

๊ธฐ๋ณธ ํƒ€์ž… ๋ณ€์ˆ˜

์œ„๋Š” Java์˜ ๊ธฐ๋ณธ ํƒ€์ž… ๋ณ€์ˆ˜ ์ž…๋‹ˆ๋‹ค. Java์™€ Python์˜ ์ฝ”๋“œ๋ฅผ ๋ณด๊ณ  ๋น„๊ตํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

 

Java

int x = 100;
double y = 20.5;

 

Python

x = 100
y = 20.5

 

์šฐ์„  ์ฝ”๋“œ๋ฅผ ๋ˆˆ์œผ๋กœ ๋ดค์„ ๋•Œ Java์˜ ๊ฒฝ์šฐ int, double๊ณผ ๊ฐ™์€ ํ‚ค์›Œ๋“œ๋ฅผ ๋ณ€์ˆ˜๋ช… ์•ž์— ๋ถ™์—ฌ ์คฌ๋Š”๋ฐ Python์€ ์—†์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ํ‚ค์›Œ๋“œ๋Š” ๋ณ€์ˆ˜๊ฐ€ ๊ธฐ๋ณธํƒ€์ž…์ด๋ผ๋Š” ๊ฒƒ์„ ๋ช…์‹œํ•˜๊ธฐ ์œ„ํ•จ์ž…๋‹ˆ๋‹ค. ์ •์ˆ˜, ์†Œ์ˆ˜, ๋ถ€์šธ(์ฐธ/๊ฑฐ์ง“)๊ณผ ๊ฐ™์ด 8byte์ด๋‚ด๋กœ 0๊ณผ 1๋กœ ํ‘œํ˜„์„ ๋ฐ”๋กœ ํ•  ์ˆ˜ ์žˆ๋Š” ํƒ€์ž…์„ ๊ธฐ๋ณธํƒ€์ž…์ด๋ผ๊ณ  ํ•˜๋Š”๋ฐ์š”....  ๋‚ด๋ถ€์ ์œผ๋กœ ๋ณ€์ˆ˜์— ๊ฐ’์„ ํ• ๋‹นํ•  ๋•Œ Java์—์„œ๋Š” Stack ๋ฉ”๋ชจ๋ฆฌ์— ํ•ด๋‹น ํƒ€์ž…์˜ ํฌ๊ธฐ(ex  int : 4 byte, double : 8 byte)๋งŒํผ ๊ณต๊ฐ„์„ ํ• ๋‹นํ•ด์ฃผ๊ณ  ๊ฐ’์„ ์ €์žฅํ•œ๋‹ค.

 

Java์—์„œ x์˜ ๊ฒฝ์šฐ Integer์ด๊ธฐ ๋•Œ๋ฌธ์— 4byte๋ฅผ ํ• ๋‹นํ•ด์ฃผ๊ณ  ํ•ด๋‹น ๊ณต๊ฐ„์— 0๊ณผ 1์„ ์‚ฌ์šฉํ•ด์„œ 100์ด๋ผ๋Š” ๊ฐ’์„ ๋งŒ๋“ค์–ด ์ค๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ ์ค‘์š”ํ•œ๊ฑด ๊ธฐ๋ณธํƒ€์ž…์€ Stack ๋ฉ”๋ชจ๋ฆฌ์— ๊ฐ’์„ ์ €์žฅํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

 Python์˜ ๊ฒฝ์šฐ... Stack ๋ฉ”๋ชจ๋ฆฌ์— ์žˆ๋Š” ๋ณ€์ˆ˜์— ๊ฐ’์„ ํ• ๋‹นํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  ๊ฒƒ์€ ๊ฐ์ฒด๋กœ ๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— Stack ๋ฉ”๋ชจ๋ฆฌ์— ๊ฐ์ฒด์˜ ์ฃผ์†Œ๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. x์˜ ๊ฐ’์€ 100 ๊ฐ์ฒด์˜ ์ฃผ์†Œ๊ฐ€ ๋  ๊ฒƒ์ด๊ณ  ์ฃผ์†Œ๋ฅผ ๋”ฐ๋ผ๊ฐ€ ๊ฐ’์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ๋˜๋ฉด ๋‹ค๋ฅธ ๋‘๊ฐœ์˜ ๋ณ€์ˆ˜์—์„œ๋„ ๊ฐ™์€ ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

 

Python 3.9.5 (tags/v3.9.5:0a7dcbd, May  3 2021, 17:27:52) [MSC v.1928 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> x = 100
>>> print(id(x))
2317298587088
>>> y = 100
>>> print(id(y))
2317298587088
>>> print(id(100))
2317298587088

id ํ•จ์ˆ˜๋Š” ๋ณ€์ˆ˜์˜ ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ๋ฅผ ์ถœ๋ ฅํ•ด์ฃผ๋Š” ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค. ์ˆซ์ž 100๊ณผ x, y๋ณ€์ˆ˜์— ํ• ๋‹นํ•œ 100์˜ ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ๊ฐ€ ๋ชจ๋‘ ๊ฐ™์€ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฐ ๊ฒฐ๊ณผ๋ฅผ ๋ดค์„ ๋•Œ Python์—๋Š” ๋ชจ๋“  ๊ฒƒ์ด ๊ฐ์ฒด๋กœ ๋˜์–ด ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

 Python์—์„œ ๋ณ€์ˆ˜๋Š” ๊ฐ’์„ ์ €์žฅํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ๋ฉ”๋ชจ๋ฆฌ์˜ ์ฃผ์†Œ๋ฅผ ๊ธฐ์–ตํ•œ๋‹ค๋Š” ๊ฒƒ์ด ํ•ต์‹ฌ์ž…๋‹ˆ๋‹ค.

 

๊ทธ๋ž˜์„œ... ๋ฉ”๋ชจ๋ฆฌ ๊ตฌ์กฐ๋„ ๋ฐฐ์› ๊ณ ... ๊ธฐ๋ณธํƒ€์ž…๋„ ๋ฐฐ์› ๊ณ ... ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ๋ฅผ ๊ธฐ์–ตํ•œ๋‹ค๋Š” ๊ฒƒ์€ ์•Œ๊ฒ ๋Š”๋ฐ...

๊ทธ๋Ÿฐ๋ฐ ๋ณ€์ˆ˜๋Š” ์™œ ์“ฐ๋Š”๊ฑด๋ฐ....;;

๋ง‰์ƒ ๋ณ€์ˆ˜๋ฅผ ์™œ ์‚ฌ์šฉํ•˜๋Š”์ง€์— ๋Œ€ํ•ด์„œ๋Š” ์•„์ง ๋‹ค๋ฃจ์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค... ใ…Žใ…Ž

 

๋ณ€์ˆ˜๋Š” ๋ฐ์ดํ„ฐ ๊ฐ’์„ ์ €์žฅํ•œ ๊ณณ์„ ๊ฐ€๋ฆฌํ‚ค๋Š” ์ด์ •ํ‘œ

๋ณ€์ˆ˜๋Š” ์šฐ๋ฆฌ๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์˜ ์ฃผ์†Œ๋ฅผ ์‰ฝ๊ฒŒ ์‚ฌ๋žŒ์ด ์ฝ์„ ์ˆ˜ ์žˆ๋„๋ก ํŽธ์˜๋ฅผ ์œ„ํ•ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

์Œ์‹ ๋ฐฐ๋‹ฌ์„ ํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ณ ๊ฐ์ด ๋ฐฐ๋‹ฌ ์ฃผ์†Œ๋ฅผ "๋‚จ์‚ฐํƒ€์›Œ ์•„๋ž˜ ๋นจ๊ฐ„ ์ง€๋ถ•"์ด๋ผ๊ณ  ํ•˜๋ฉด... ๋ฐฐ๋‹ฌํ•˜๋Š”๊ฒŒ ์‰ฝ์ง€ ์•Š์€ ์ผ์ผ ๊ฒ๋‹ˆ๋‹ค. ๊ทธ๋Ÿผ "์„œ์šธ ์šฉ์‚ฐ๊ตฌ ๋‚จ์‚ฐ๊ณต์›๊ธธ 105" ์ฒ˜๋Ÿผ ์ฃผ์†Œ๋ฅผ ์•Œ๋ ค์ฃผ๋ฉด ์–ด๋–จ๊นŒ์š”? ์ด์ „๋ณด๋‹ค ํ›จ์”ฌ ํŽธํ•˜๊ณ  ๋น ๋ฅด๊ฒŒ ๋ฐฐ๋‹ฌ์„ ํ•  ์ˆ˜ ์žˆ์„ ๊ฒ๋‹ˆ๋‹ค. ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ ๋„ ๋˜‘๊ฐ™์Šต๋‹ˆ๋‹ค.

 

 

 

Python 3.9.5 (tags/v3.9.5:0a7dcbd, May  3 2021, 17:27:52) [MSC v.1928 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> x = 100
>>> print(id(x))
2317298587088
>>> print(id(100))
2317298587088

 ์œ„ ์˜ˆ์ œ๋Š” ๋ณ€์ˆ˜ x์™€ 100์ด๋ผ๋Š” ๊ฐ’์˜ ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ์ฝ”๋“œ์ž…๋‹ˆ๋‹ค. ๋ณด์‹œ๋ฉด ๋ชจ๋‘ ๊ฐ™์€ ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ๋ฅผ ๋ฐ”๋ผ๋ณด๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜์žˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๊ฐ€ 100์ด๋ผ๋Š” ๊ฐ’์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ "2317298587088" ์ฒ˜๋Ÿผ ๊ธด ์ˆซ์ž์˜ ๋ฉ”๋ชจ๋ฆฌ์ฃผ์†Œ๋ฅผ ๊ธฐ์–ตํ•ด์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์„๊นŒ์š”? ๋งŒ์•ฝ ์ด๋Ÿฐ ์‹์œผ๋กœ ๊ฐœ๋ฐœ์„ ํ•ด์•ผํ–ˆ๋‹ค๋ฉด ์•„๋งˆ ๊ฐœ๋ฐœ์„ ๊ด€๋’€์„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฐ ๋ถˆํŽธํ•จ์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๋ณ€์ˆ˜๋ฅผ ์ด์šฉํ•ด ๋ฉ”๋ชจ๋ฆฌ์˜ ์ฃผ์†Œ๋ฅผ ์‚ฌ๋žŒ์ด ์ฝ์„ ์ˆ˜ ์žˆ๋Š” ์‰ฌ์šด ๋ฐฉ๋ฒ•์œผ๋กœ ํ‘œํ˜„ํ•ด์„œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

 

 

Python ๋ณ€์ˆ˜์˜ ์‚ฌ์šฉ

์ด์ œ ๋ณ€์ˆ˜์— ๋Œ€ํ•œ ๊ธฐ๋ณธ์„ ๋ชจ๋‘ ์‚ดํŽด๋ดค๊ณ ... ์‹ค์ œ๋กœ ์‚ฌ์šฉํ•˜๋Š”๋ฐ ์žˆ์–ด์„œ ์œ ์˜ํ•ด์•ผํ•  ์‚ฌํ•ญ๋“ค์„ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

# ๊ฐ€๋Šฅํ•œ ๋ณ€์ˆ˜ ๋ช…๋ช…
test = 1
_test = 1
Test = 1

# ๋ถˆ๊ฐ€๋Šฅํ•œ ๋ณ€์ˆ˜ ๋ช…๋ช…
False = 1
as = 1
123test = 1
asd!@# = 1

Python์˜ ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•˜๋Š”๋ฐ ๋ช‡๊ฐ€์ง€ ๊ทœ์น™์ด ์žˆ์Šต๋‹ˆ๋‹ค.

  • ๋ณ€์ˆ˜์˜ ์ฒซ ๊ธ€์ž๋Š” ์˜๋ฌธ ๋Œ€์†Œ๋ฌธ์ž ํ˜น์€ ์–ธ๋”๋ฐ”๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋‚˜๋จธ์ง€๋Š” ์ˆซ์ž, ์˜๋ฌธ์ž ๊ทธ๋ฆฌ๊ณ  ์–ธ๋”๋ฐ”๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋Œ€์†Œ๋ฌธ์ž๋ฅผ ๊ตฌ๋ถ„ํ•ฉ๋‹ˆ๋‹ค.
  • Python์˜ ์˜ˆ์•ฝ์–ด๋Š” ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.(์•„๋ž˜์˜ ํ‘œ ์ฐธ์กฐ)

 

์œ„์—์„œ ์„ค๋ช…ํ–ˆ๋“ฏ์ด Python์—๋Š” ๊ธฐ๋ณธํƒ€์ž…์ด ์—†๊ณ  ๋ชจ๋‘ ๊ฐ์ฒด๋กœ ๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ํƒ€์ž…์„ ๋ช…์‹œํ•ด์ค„ ํ•„์š”๊ฐ€ ์—†๊ณ  ๋ณ€์ˆ˜๋ช…๊ณผ ๊ฐ’ ์‚ฌ์ด์— ๋“ฑํ˜ธ๋ฅผ ์ด์šฉํ•ด์„œ ์„ ์–ธํ•ด์ค„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

๋ณ€์ˆ˜ ํ‘œ๊ธฐ๋ฒ•

์ฃผ๋กœ ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š” ํ‘œ๊ธฐ๋ฒ•์€ ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

 

์นด๋ฉœ ํ‘œ๊ธฐ๋ฒ•(camel case)

  • resultStatusForDays
  • connectionVendor
  • tableName

๋‚™ํƒ€์˜ ๋“ฑ์ฒ˜๋Ÿผ ์ƒ๊ฒจ์„œ ์ง€์–ด์ง„ ์ด๋ฆ„์ด๊ณ  ์ฒซ ๋‹จ์–ด๋Š” ์†Œ๋ฌธ์ž๋กœํ•˜๊ณ  ๋‹จ์–ด์™€ ๋‹จ์–ด์˜ ๊ตฌ๋ถ„์„ ๋Œ€๋ฌธ์ž๋กœ ํ•ฉ๋‹ˆ๋‹ค.

 

์Šคํ…Œ์ดํฌ ํ‘œ๊ธฐ๋ฒ•(snake case)

  • result_status_for_days
  • connection_vendor
  • table_name

์–ธ๋”๋ฐ”๊ฐ€ ๋ฑ€์ฒ˜๋Ÿผ ์ƒ๊ธด๋ฐ์„œ ์ง€์–ด์ง„ ์ด๋ฆ„์ด๊ณ  ๋ชจ๋“  ๋‹จ์–ด๋ฅผ ์†Œ๋ฌธ์ž๋กœํ•˜๊ณ  ๋‹จ์–ด์™€ ๋‹จ์–ด์˜ ๊ตฌ๋ถ„์„ ์–ธ๋”๋ฐ”๋กœ ํ•ฉ๋‹ˆ๋‹ค.

 

python์—์„œ๋Š” ์ฃผ๋กœ ์Šค๋„ค์ดํฌ ํ‘œ๊ธฐ๋ฒ•์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

 

 

์—ฌ๋Ÿฌ๊ฐ€์ง€ ์‚ฌ์šฉ ์˜ˆ์‹œ

# ๋ฌธ์ž์—ด ๋ณ€์ˆ˜ ์„ ์–ธ
text = 'hihi' # ์ž‘์€ ๋”ฐ์˜ดํ‘œ ์‚ฌ์šฉ
text = "hihi" # ํฐ ๋”ฐ์˜ดํ‘œ ์‚ฌ์šฉ

# ์—ฌ๋Ÿฌ ์ค„ ์‚ฌ์šฉ
text = ''' 
hihi
hihi
'''
text = """
hihi
hihi
"""

# ์ˆซ์ž ๋ณ€์ˆ˜ ์„ ์–ธ
num = 10 # ์ •์ˆ˜
num = 10.5 # ์†Œ์ˆ˜


# ๋…ผ๋ฆฌ ๋ณ€์ˆ˜ ์„ ์–ธ
yes = True
no = False


# ์—ฌ๋Ÿฌ ๋ณ€์ˆ˜ ํ•œ๊ฐ€์ง€ ๊ฐ’์œผ๋กœ ์„ ์–ธ
x = y = 10


# ์—ฌ๋Ÿฌ ๋ณ€์ˆ˜ ๋‹ค๋ฅธ ๊ฐ’์œผ๋กœ ์„ ์–ธ
x, y = 1, 2

 

 

์ •๋ฆฌ

  • ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ๋“ฑํ˜ธ(=) ๊ธฐํ˜ธ๊ฐ€ "๊ฐ™๋‹ค"๋ผ๋Š” ์˜๋ฏธ๊ฐ€ ์•„๋‹ˆ๋ผ "๋Œ€์ž…ํ•œ๋‹ค"์˜ ์˜๋ฏธ
  • Python์—์„œ๋Š” ๋ชจ๋“  ๊ฒƒ์ด ๊ฐ์ฒด๋กœ ๊ตฌํ˜„๋˜์–ด ์žˆ๋‹ค
  • ๋ชจ๋“  ๊ฒƒ์€ ๊ฐ์ฒด๋กœ ๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ณ€์ˆ˜์— ๋ฉ”๋ชจ๋ฆฌ์— ๊ฐ’์ด ์•„๋‹Œ ๊ฐ์ฒด์˜ ์ฃผ์†Œ๋ฅผ ์ €์žฅ
  • ๋ณ€์ˆ˜๋Š” ์šฐ๋ฆฌ๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์˜ ์ฃผ์†Œ๋ฅผ ์‰ฝ๊ฒŒ ์‚ฌ๋žŒ์ด ์ฝ์„ ์ˆ˜ ์žˆ๋„๋ก ํŽธ์˜๋ฅผ ์œ„ํ•ด ์‚ฌ์šฉ
  • ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•˜๋Š”๋ฐ ๊ทœ์น™์ด ์žˆ๋‹ค
  • python์—์„œ๋Š” ์Šค๋„ค์ดํฌ ํ‘œ๊ธฐ๋ฒ•์„ ์ฃผ๋กœ ์‚ฌ์šฉํ•œ๋‹ค.

 

 

 ์ด๋ ‡๊ฒŒ ๋ณ€์ˆ˜์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ดค์Šต๋‹ˆ๋‹ค. ์‹ค์Šต๋ณด๋‹ค๋Š” ์ด๋ก ์ ์ธ ๋‚ด์šฉ์ด ๋” ๋งŽ์•˜๋Š”๋ฐ... ๋งค์šฐ ์ค‘์š”ํ•œ ๋ถ€๋ถ„์ด๋‹ˆ ๊ผญ ์ดํ•ดํ•˜๊ณ  ๋„˜์–ด๊ฐ”์œผ๋ฉด ์ข‹๊ฒ ์Šต๋‹ˆ๋‹ค. ๋น„์ „๊ณต์ž๋“ค์ด ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ์ฒ˜์Œ ํ•  ๋•Œ... ์ด๋Ÿฐ ๊ฐœ๋…์ด ์‰ฝ์ง€ ์•Š์•„์„œ ์‹ค์Šต์„ ๋จผ์ € ์ง„ํ–‰ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋Š”๊ฒŒ ์ข‹์€ ๋ฐฉ๋ฒ•์ผ ์ˆ˜๋„ ์žˆ์ง€๋งŒ... ์ •๋ง ์•ˆ์ข‹์€ ์Šต๊ด€์ธ๊ฒŒ.... ๋„˜์–ด๊ฐ€๋„ ์ฒ˜์Œ์—๋Š” ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š”๋ฐ ์•„๋ฌด๋Ÿฐ ๋ฌธ์ œ๊ฐ€ ์—†์–ด์„œ ๋Œ€์ถฉ ์•Œ์•„๋„ ๋˜๋Š” ๊ฐœ๋…์œผ๋กœ ๋Š๊ปด์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ €๋„ ๊ทธ๋žฌ๊ณ ... ํฐ ๋ฒฝ์— ๋ถ€๋”›ํ˜€ ๋‹ค์‹œ ๊ณต๋ถ€ํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ทจ์—… ๋ฉด์ ‘์—์„œ ๊ธฐ๋ณธ์„ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ๋ฌผ์–ด๋ณด๋Š” ์งˆ๋ฌธ๋“ค์ž…๋‹ˆ๋‹ค. ใ…Žใ…Ž ๋ณ€์ˆ˜๋ฅผ ์ดํ•ดํ•˜๊ณ  ์‚ฌ์šฉํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ใ…Žใ…Ž

 

 ๋ณ€์ˆ˜๋Š” ์ž‘์„ฑ๋  ๋ชจ๋“  Python๊ด€๋ จ๋œ ๊ธ€์—์„œ ์‚ฌ์šฉํ•˜๊ฒŒ๋  ๊ฒƒ ์ž…๋‹ˆ๋‹ค. ์‚ฌ์šฉํ•˜๋Š”๋ฐ ์žˆ์–ด์„œ ํƒ€์ž…์ด๋‚˜ scope์ฒ˜๋Ÿผ ์•Œ์•„์•ผํ•  ๋‚ด์šฉ๋“ค์ด ๋งŽ์€๋ฐ์š”... ๋‹ค๋ฅธ ๊ฐœ๋…๋“ค์„ ์†Œ๊ฐœ ๋ฐ ์‹ค์Šตํ•˜๋ฉด์„œ ๋ณ€์ˆ˜์˜ ์‚ฌ์šฉ๋ฐฉ๋ฒ•์„ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ์ตํž ์ˆ˜ ์žˆ๋„๋ก ๊ตฌ์„ฑํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. 

 

 ์ด๋ฒˆ ๊ธ€์—์„œ๋Š” ๋ณ€์ˆ˜๋ฅผ ์ดํ•ดํ•˜๋Š”๋ฐ ์ง‘์ค‘ํ–ˆ๊ณ  ๊ฐ„๋‹จํ•˜๊ฒŒ ์ •์˜ํ•˜๋Š” ๋ฐฉ๋ฒ• ์ •๋„๋ฅผ ์•Œ์•„๋ดค์Šต๋‹ˆ๋‹ค.

๋Œ“๊ธ€