๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
์‹œ๋„/๊ตญ๋น„์ง€์›

[D+04] JVM๊ณผ JAVA์˜ ๊ตฌ์„ฑ์š”์†Œ

by ๐Ÿ‡๋ฐ•๋ด‰๋ด‰๐Ÿ‡ 2022. 9. 22.

 

 

๊ตญ๋น„์ง€์› D+04

-  JVM๊ณผ JAVA์˜ ๊ตฌ์„ฑ์š”์†Œ -

 


 

์šฐ๋ฆฌ๋Š” ๊ธฐ์กด์— CPU์™€ ๋ฉ”๋ชจ๋ฆฌ์™€์˜ ๊ด€๊ณ„, ํ”„๋กœ๊ทธ๋žจ์ด ์‹คํ–‰๋˜๋Š” ์ปดํŒŒ์ผ ๋ฐฉ์‹, ํ”„๋กœ๊ทธ๋žจ์˜ ๊ตฌ์„ฑ์š”์†Œ์— ๋Œ€ํ•ด ์ด๋ก ์ ์œผ๋กœ ํ•™์Šตํ•ด๋ณด๋Š” ์‹œ๊ฐ„์„ ๊ฐ€์กŒ์—ˆ๋‹ค.

 

์ด์ œ๋ถ€ํ„ฐ๋Š” JAVA๋ผ๋Š” ์–ธ์–ด๋กœ ์œ„์˜ ๋‚ด์šฉ์— ํ•ด๋‹นํ•˜๋Š” ๋‚ด์šฉ์„ ์‹ค์ œ๋กœ ๊ตฌํ˜„ํ•ด๋ณด๋ฉด์„œ ํ•™์Šตํ•ด๋ณด๋„๋ก ํ•˜์ž.


JVM (JAVA Virtual Machine)

JVM์€ ์ž๋ฐ” ๊ฐ€์ƒ๋จธ์‹ ์œผ๋กœ ์ปดํŒŒ์ผ๋œ ๋ฐ”์ดํŠธ์ฝ”๋“œ๋ฅผ ๋จธ์‹ ์„ ํ†ตํ•ด ์šด์˜์ฒด์ œ์™€ ์„œ๋กœ ํ†ต์‹ ํ•˜๋Š” ์—ญํ• ์„ ํ•œ๋‹ค.

๊ทธ๋Ÿฐ๋ฐ ์šฐ๋ฆฌ๋Š” JVM์˜ ๋‹จ์ ์ธ ๋Š๋ฆฐ์†๋„๋ฅผ ๊ฐ์•ˆํ•˜๊ณ  ๊ตณ์ด JVM์„ ๋ผ๊ณ  ์šด์˜์ฒด์ œ์™€ ํ†ต์‹ ์„ ์™œ ํ•ด์•ผํ• ๊นŒ?

 

์œ„์˜ ๊ทธ๋ฆผ์€ ๋งŒ์•ฝ JVM์ด ์—†์„ ๊ฒฝ์šฐ๋ฅผ ์–ด๋–ค ์ƒํ™ฉ์ด ๋ฐœ์ƒ๋ ์ง€ ์•Œ์•„๋ณผ ์ˆ˜ ์žˆ๋Š” ๊ทธ๋ฆผ์ด๋‹ค.

์—ฌ๊ธฐ ๊ฐœ๋ฐœ์ž๊ฐ€ ์ธ์‚ฌ๋ง์„ ์ฐ์–ด์ฃผ๋Š” ์•ฑ์„ ๊ฐœ๋ฐœํ•˜๊ธฐ ์œ„ํ•ด "Hello"๊ฐ€ ์ถœ๋ ฅ๋˜๋Š” ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด ๋ณผ ๊ฒƒ์ด๋‹ค.

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

 

ํ•˜์ง€๋งŒ JVM์ด ์กด์žฌํ• ๊ฒฝ์šฐ ๊ฐœ๋ฐœ์ž๋Š” Hello๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ํ•˜๋‚˜์˜ ์ฝ”๋“œ๋ฅผ JVM์—๋งŒ ๋„ฃ์–ด์ฃผ์–ด๋„ JVM์ด ์•Œ์•„์„œ ์šด์˜์ฒด์ œ์— ๋งž๊ฒŒ ๋ช…๋ น์–ด๋ฅผ ๋ณด๋‚ด๋Š” ์ค€๋‹ค.

 

๋Š๋ฆฐ์†๋„๋ผ๋Š” ๋‹จ์ ์„ ๊ฐ€์ง€๊ณ  ์žˆ์ง€๋งŒ ๊ฐœ๋ฐœ์ž ์ž…์žฅ์—์„œ๋Š” ํŽธํ•˜๊ณ  ์ด์‹์„ฑ์„ ๊ณ ๋ คํ•˜์ง€ ์•Š์•„๋„ ๋˜๊ธฐ ๋•Œ๋ฌธ์— JVM์€ ๊ฐœ๋ฐœ์ž์—๊ฒ ๋‹จ๋น„๊ฐ™์€ ์กด์žฌ์ด๋‹ค.

์ด๋Ÿฐ์‹์œผ๋กœ ์ด์‹์„ฑ์ด ํ•ด๊ฒฐ๋˜์ง€๋งŒ ๊ทธ์—๋ฐ˜์— ์„ฑ๋Šฅ์ด ๋–จ์–ด์ง€๋Š” ํ•˜๋‚˜๊ฐ€ ์ข‹์œผ๋ฉด ํ•˜๋‚˜๊ฐ€ ์ข‹์ง€์•Š์€ ์ด๋Ÿฐ๊ด€๊ณ„๋ฅผ trade-off๊ด€๊ณ„๋ผ๊ณ  ํ•œ๋‹ค.

 


JAVA์˜ ๊ตฌ์„ฑ์š”์†Œ

์ดํด๋ฆฝ์Šค ์‹ค์Šต์„ ํ†ตํ•ด ์šฐ๋ฆฌ๊ฐ€ ์•Œ ์ˆ˜ ์žˆ์—ˆ๋˜ ๊ฑด ํ•˜๋‚˜์˜ ์›Œํฌ์ŠคํŽ˜์ด์Šค ์•ˆ์— ํ”„๋กœ์ ํŠธ๊ฐ€ ์žˆ์œผ๋ฉฐ ํ”„๋กœ์ ํŠธ์•ˆ์—๋Š” ์‹ค์งˆ์ ์ธ ํ”„๋กœ๊ทธ๋žจ์„ ๊ตฌ์„ฑํ•˜๋Š” ์—ฌ๋Ÿฌ๊ฐœ์˜ ํด๋ž˜์Šค๋“ค์ด ์กด์žฌํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.

๊ทธ๋Ÿฌ๋ฉด ์šฐ๋ฆฌ๋Š” ์‹ค์ง์ ์ธ ํ”„๋กœ๊ทธ๋žจ ๊ตฌ์„ฑ์š”์†Œ์ธ ํด๋ž˜์Šค์— ๋Œ€ํ•ด ๊นŠ๊ฒŒ ์•Œ์•„๋ณผ ํ•„์š”๊ฐ€ ์žˆ๋‹ค.

 

ํด๋ž˜์Šค๋Š” ํฌ๊ฒŒ ๋‘๊ฐ€์ง€๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋Š”๋ฐ ๋ฐ”๋กœ Data์™€ ํ•จ์ˆ˜์ธ Function์œผ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋‹ค.

์šฐ๋ฆฌ๋Š” ํด๋ž˜์Šค๋ฅผ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด์„œ ๊ฐ๊ฐ์˜ ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ๊ตฌ์ฒด์ ์œผ๋กœ ์•Œ์•„๋ณผ ํ•„์š”๊ฐ€ ์žˆ๋‹ค.

 

1) class์˜ ๊ตฌ์„ฑ์š”์†Œ - ํ•จ์ˆ˜(Function)

์šฐ๋ฆฌ๊ฐ€ ๊ธฐ์กด์— ์•Œ๊ณ ์žˆ๋Š” ํ•จ์ˆ˜์— ๋น—๋Œ€์–ด ์„ค๋ช…ํ•ด ๋ณด์ž๋ฉด x๊ฐ’์•ˆ์— ๊ฐ’์„ ์ž…๋ ฅํ•ด์„œ ๊ณ„์‚ฐํ•˜๋ฉด y์˜ ๊ฐ’์„ ๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค.

ํ•จ์ˆ˜๋Š” ๊ตฌ์ฒดํ™”๋œ ์—ฐ์‚ฐ์ด๋ผ๋Š” ์˜๋ฏธ๋กœ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ์˜ ํ•จ์ˆ˜๋„ x๋ผ๋Š” ์›์ธ์„ ํ•จ์ˆ˜์•ˆ์— ์ž…๋ ฅํ•˜๊ฒŒ ๋˜๋ฉด y๋ผ๋Š” ๊ฒฐ๊ณผ๊ฐ’์ด ๋‚˜์˜ค๋Š” ๋น„์Šทํ•œ ์›๋ฆฌ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋ฉฐ, ๋‹ค๋งŒ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ์˜ ํ•จ์ˆ˜๋Š” ์œ„์˜ ์‚ฌ์ง„์ฒ˜๋Ÿผ ํ‘œํ˜„ํ•ด ์ค€๋‹ค.

๋˜ํ•œ ์›์ธ์ด๋ผ๋Š” ๊ฐ’์€ ์—ฌ๋Ÿฌ ๊ฐœ๊ฐ€ ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ์ง€๋งŒ, ๊ฒฐ๊ณผ๋Š” ๋ฐ˜๋“œ์‹œ ํ•˜๋‚˜๊ฐ€ ๋‚˜์™€์•ผ ํ•œ๋‹ค.

 

์ด๋•Œ, ๋”๋‚˜์•„๊ฐ€ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ ์œผ๋กœ ์šฉ์–ด๋ฅผ ์ •๋ฆฌํ•ด๋ณด๋ฉด ํ•จ์ˆ˜์—์„œ์˜ ์›์ธ์„ ํŒŒ๋ผ๋ฏธํ„ฐ๋ผ๊ณ ํ•˜๋ฉฐ ํ•จ์ˆ˜์—์„œ์˜ ๊ฒฐ๊ณผ๋Š” ๋ฆฌํ„ด๋ฒจ๋ฅ˜๋ผ๊ณ  ํ•œ๋‹ค.

 

ํ•จ์ˆ˜์— ๋Œ€ํ•ด ์–ด๋Š์ •๋„ ์ดํ•ดํ–ˆ๋‹ค๋ฉด ์šฐ๋ฆฌ๋Š” ํ•œ๊ฐ€์ง€ ์•Œ์•„์•ผํ•˜๋Š” ํ•จ์ˆ˜๊ฐ€ ์žˆ๋Š”๋ฐ ๋ฐ”๋กœ mainํ•จ์ˆ˜์ด๋‹ค.

JVM์€ ์™„์„ฑ๋˜์–ด์ง„ ์ฝ”๋“œ๋ฅผ ๋ณด๋ฉด์„œ ์–ด๋–ค ํ•จ์ˆ˜, ์ฆ‰ ๋ฉ”์†Œ๋“œ๋ฅผ ๋จผ์ € ์‹คํ–‰์‹œํ‚ฌ์ง€ ์ฐพ์•„๋ณด๋Š”๋ฐ ์ด๋•Œ ์šฐ๋ฆฌ๋Š” JVM์ด๋ผ๋Š” ๊ฐ€์ƒ๋จธ์‹ ๊ณผ ์•ฝ์†์„ ํ–ˆ๋Š”๋ฐ ๋ฐ”๋กœ JVM์€ main๋ฉ”์†Œ๋“œ๋ผ๊ณ  ํ•˜๋Š”๊ณณ์„ ๊ฐ€์žฅ๋จผ์ € ์‹คํ–‰์‹œํ‚จ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.

๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ์—”ํŠธ๋ฆฌํฌ์ธํŠธ์ธ ๋ฉ”์ธ์— ๊ฐ€์žฅ๋จผ์ € ๋Œ์•„๊ฐ€๊ธธ ์›ํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด์ฃผ๋ฉด ๋œ๋‹ค.

 

2) class์˜ ๊ตฌ์„ฑ์š”์†Œ - Data

ํด๋ž˜์Šค ์•ˆ์—๋Š” ๋ฉ”์†Œ๋“œ ๋ฟ๋งŒ์•„๋‹ˆ๋ผ ๋ฐ์ดํ„ฐ๋„ ํฌํ•จ๋˜์–ด ์žˆ๋Š”๋ฐ ์šฐ๋ฆฌ๋Š” ๋ฐ์ดํ„ฐ๋ผ๋Š” ๊ฐ’์„ ๋„ฃ์–ด์ค„๋•Œ ๋ฐ˜๋“œ์‹œ ๋ฐ์ดํ„ฐ ํƒ€์ž…์„ ์„ค์ •ํ•ด ์ฃผ์–ด์•ผ ํ•œ๋‹ค.

 

• Data Type

๋ฐ์ดํ„ฐ์•ˆ์—๋Š” ๋ฐ์ดํ„ฐํƒ€์ž…์„ ๋ฐ˜๋“œ์‹œ ํฌํ•จํ•˜๋Š”๋ฐ ๋ฐ์ดํ„ฐํƒ€์ž…์ด ํ•„์š”ํ•œ ์ด์œ ๋Š” ์ปดํ“จํ„ฐ๋Š” ์œ ํ•œ์„ฑ์ด๋ผ๋Š” ํŠน์ง•์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š”๋ฐ ์ฆ‰, ์ปดํ“จํ„ฐ ๋ฉ”๋ชจ๋ฆฌ์˜ ํ•œ๊ณ„๊ฐ€ ์ •ํ•ด์ ธ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ์ดํ„ฐ๋ฅผ ์ž…๋ ฅํ• ๋•Œ ๋ฉ”๋ชจ๋ฆฌ์•ˆ์— ์ฐจ์ง€ํ•  ๊ณต๊ฐ„์„ ์„ค์ •ํ•˜๊ณ  ๊ทธ ์•ˆ์— ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ด๋„๋ก ํ•ด์•ผํ•œ๋‹ค.

 

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

 

• Data Type - ์ •์ˆ˜ํ˜•

๊ฐ€์žฅ ๋ณดํŽธ์ ์œผ๋กœ ๋งŽ์ด ์‚ฌ์šฉ๋˜๋Š” ๊ฒƒ์€ intํ˜•์ธ๋ฐ ์ด์œ ๋Š” 2๊ฐ€์ง€์ด๋‹ค.

 

์ฒซ๋ฒˆ์งธ ์ด์œ ๋Š” ์šฐ๋ฆฌ ์ปดํ“จํ„ฐ์˜ ๋ฉ”๋ชจ๋ฆฌํฌ๊ธฐ๋Š” 16G ์ •๋„ ๋˜๋Š”๋ฐ 16๊ธฐ๊ฐ€๋ฅผ ๋ฐ”์ดํŠธ๋กœ ํ‘œํ˜„ํ•˜๋ฉด ์•ฝ 171์–ต ๋ฐ”์ดํŠธ์ด๊ธฐ๋•Œ๋ฌธ์— ๋‚ด๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ๊ณต๊ฐ„์„ ์ ˆ์•ฝํ•œ๋‹ค๊ณ  short์™€ byte๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๋Š” ๊ฒƒ์€ 171์–ตํฌ๊ธฐ์˜ ๋ฉ”๋ชจ๋ฆฌ์—๊ฒŒ๋Š” ๋ณ„์ฐจ์ด๊ฐ€ ์—†๊ธฐ๋•Œ๋ฌธ์— ๋„ˆ๋ฌด ์ž‘์€ ํƒ€์ž…์€ ์ž˜ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.

 

๋‘๋ฒˆ์งธ ์ด์œ ๋Š” ๋ฉ”๋ชจ๋ฆฌ์— ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ 64๋น„ํŠธ์งœ๋ฆฌ ๋ฒ„์Šค๋กœ cpu์— ์ „์†กํ•œ๋‹ค๊ณ  ํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜์ž.

๋ฒ„์Šค๋Š” 32๋น„ํŠธ๋กœ ๋‚˜๋ˆ ์„œ ๊ด€๋ฆฌํ•˜๊ฒŒ ๋˜๋Š”๋ฐ ์ด๊ฒƒ์„ ์šฐ๋ฆฌ๋Š” ์ฑ„๋„์ด๋ผ๊ณ  ํ•œ๋‹ค.

 

2๊ฐœ์˜ ์ฑ„๋„์— ๊ฐ ๋ฐ์ดํ„ฐ intํ˜•๊ณผ shortํ˜•์„ ๋„ฃ์—ˆ์„๋•Œ intํ˜•์€ ๋”ฑ ๋“ค์–ด๋งž๋Š” ๊ฒƒ์ด ๋ณด์ด์ง€๋งŒ shortํ˜•์˜ ๊ฒฝ์šฐ ๊ณต๊ฐ„์ด ๋‚จ์•„์žˆ๋‹ค๊ณ  ํ•ด์„œ ๋น„์›Œ๋‘๊ฑฐ๋‚˜ ๋‹ค๋ฅธ๋ฐ์ดํ„ฐ๊ฐ€ ์ถ”๊ฐ€์ ์œผ๋กœ ๋“ค์–ด๊ฐ€๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ padding data๋ผ๋Š” ์˜๋ฏธ์—†๋Š” ๊ฐ’์„ ์ธ์œ„์ ์œผ๋กœ ๋„ฃ์–ด๋ฒ„๋ฆฐ๋‹ค.

๊ทธ๋ ‡๊ฒŒ ๋˜๋ฉด intํ˜•์€ shortํ˜•๋ณด๋‹ค ํฌ๊ธฐ๊ฐ€ ํผ์—๋„ ์–ด๋– ํ•œ ๊ณผ์ •์—†์ด ๋ฐ”๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, short์€ ๋ฉ”๋ชจ๋ฆฌ์˜ ๊ณต๊ฐ„์„ ์ ˆ์•ฝํ•  ์ˆ˜๋Š” ์žˆ์ง€๋งŒ ์ฑ„๋„์•ˆ ๋น„์›Œ์ง„ ๊ณต๊ฐ„์— padding data๋ฅผ ๋„ฃ๋Š” ์‹œ๊ฐ„์ด ํ”Œ๋Ÿฌ์Šค๋˜์–ด ์˜คํžˆ๋ ค int๋ณด๋‹ค ์‹œ๊ฐ„์ด ์˜ค๋ž˜ ๊ฑธ๋ฆฐ๋‹ค.

 

๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ์šฐ๋ฆฌ๋Š” ๋ณดํ†ต intํ˜•์„ ๋งŽ์ด ์„ ํ˜ธํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

 

• Data Type - ์‹ค์ˆ˜ํ˜•

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

 

์‹ค์ˆ˜ํ˜•์—์„œ ์šฐ๋ฆฌ๊ฐ€ ๋ณดํŽธ์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ๊ฒƒ์€ doubleํ˜•์ธ๋ฐ ์™œ๋ƒํ•˜๋ฉด doubleํ˜•์ด ํฌ๊ธฐ๊ฐ€ ์ข€ ๋” ํฌ๊ธฐ ๋•Œ๋ฌธ์— floatํ˜•๋ณด๋‹ค ํ•ด์ƒ๋„๊ฐ€ ๋†’๋‹ค๋Š” ์˜๋ฏธ๋กœ ํ•ด์„๋˜์–ด ํ•ด์ƒ๋„๊ฐ€ ๋” ๋†’์€ doubleํ˜•์„ ์‚ฌ์šฉํ•œ๋‹ค๊ณ  ํ•œ๋‹ค.

ํ•˜์ง€๋งŒ ์‹ค์ˆ˜ํ˜•๊ฐ™์€ ๊ฒฝ์šฐ๋Š” ๋ณดํŽธ์ ์œผ๋กœ ์‚ฌ์šฉ๋œ๋‹ค๊ณ  ํ•ด์„œ doubleํ˜•์„ ๋ฌด์กฐ๊ฑด ์‚ฌ์šฉํ•œ๋‹ค๊ธฐ๋ณด๋‹ค๋Š” ๊ฐ ํƒ€์ž…์ด ๊ฐ€์ง€๊ณ  ์žˆ๋Š” bit rule์ด ์กด์žฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํ•˜๋‚˜๋กœ ํ†ต์ผํ•ด์„œ ์‚ฌ์šฉํ•ด ์ฃผ๋Š”๊ฒŒ ๊ฐ€์žฅ ์ข‹์€ ๋ฐฉ๋ฒ•์ด๋‹ค.

 

• Data Type - ๋…ผ๋ฆฌํ˜•

๋…ผ๋ฆฌํ˜•์€ ์‹์ด ์ง„๋ฆฌ๊ฐ’โœฆ์ง„๋ฆฌ๊ฐ’ = ์ง„๋ฆฌ๊ฐ’ ์œผ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ์œผ๋ฉฐ ์ด๋•Œ์˜ ์ง„๋ฆฌ๊ฐ’์€ True๋‚˜ False๋ฅผ ์˜๋ฏธํ•˜๊ณ  โœฆ๋Š” ๋…ผ๋ฆฌ์—ฐ์‚ฐ์ž๋กœ์จ AND์—ฐ์‚ฐ์ž ๋˜๋Š” OR์—ฐ์‚ฐ์ž์ด๋‹ค.

 

๋…ผ๋ฆฌ์—ฐ์‚ฐ์ž์—์„œ AND๋Š” ๋…ผ๋ฆฌ๊ณฑ์œผ๋กœ ๋ชจ๋“ ๊ฐ’์ด True์—ฌ์•ผ True๋ผ๋Š” ๊ฒฐ๊ณผ๋ฅผ ๊ฐ€์ ธ์˜ค๊ณ , OR๊ฐ™์€ ๊ฒฝ์šฐ๋Š” ๋…ผ๋ฆฌํ•ฉ์€ ํ•œ๊ฐœ์˜ ๊ฐ’์ด๋ผ๋„ True์ด๋ฉด True๊ฐ’์„ ๊ฐ€์ ธ์˜ค๋Š” ํŠน์ง•์ด ์žˆ๋‹ค.

 

• Data Type - ๋ฌธ์žํ˜•

๋ฌธ์žํ˜•์—๋Š” char์™€ String์ด ์žˆ๋Š”๋ฐ ์ด๋•Œ String์€ ๊ธฐ๋ณธํƒ€์ž…์ด ์•„๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ ๋ฌธ์ž์—ด์„ ์ž…๋ ฅํ• ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด๊ธฐ๋•Œ๋ฌธ์— ํ‘œ์— ๋„ฃ์–ด๋†จ์„ ๋ฟ ์ฐธ๊ณ ๋งŒ ํ•˜๋„๋ก ํ•œ๋‹ค.

 

char์˜ ๋ฌธ์ž๋ฅผ ํ•ด์„ํ•  ๋•Œ 2bit์ค‘์—์„œ ์ฒซ๋ฒˆ์งธ์˜ ๊ฐ’์ด 0์œผ๋กœ๋งŒ ์ด๋ฃจ์–ด์กŒ์„ ๊ฒฝ์šฐ์—” ๋‘๋ฒˆ์งธ ์นธ์„ ์•„์Šคํ‚ค์ฝ”๋“œ๋กœ ํ•ด์„ํ•ด์•ผํ•˜๋ฉฐ, ์•ž๋ถ€๋ถ„์˜ ๊ฐ’์ด 0์œผ๋กœ๋งŒ ์ด๋ฃจ์–ด์ ธ์žˆ์ง€ ์•Š์•˜์„ ๊ฒฝ์šฐ์—” 2๋ฒˆ์งธ์นธ์„ ์œ ๋‹ˆ์ฝ”๋“œ๋กœ ํ•ด์„ํ•ด์•ผํ•œ๋‹ค.

 

ํƒ€์ž…๋ณ€ํ™˜

๋ฐ์ดํ„ฐ์˜ ํƒ€์ž…์„ ๋ณ€ํ™˜ํ•˜๋Š”๋ฐ์—๋Š” ์—ฌ๋Ÿฌ ๋ฐฉ๋ฒ•์ด ์žˆ๊ฒ ์ง€๋งŒ ๊ฐ€์žฅ ์ค‘์š”ํ•œ๊ฒƒ์€ ์›์น™์„ ์ง€ํ‚ค๋Š” ๊ฒƒ์ธ๋ฐ ํƒ€์ž…๋ณ€ํ™˜์˜ ์›์น™ 2๊ฐ€์ง€์ค‘ ํ•˜๋‚˜๋Š” ์ƒ์‹์ด ์žˆ์–ด์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด ๋…ผ๋ฆฌํ˜• booleanํ˜•์„ ์ •์ˆ˜ํ˜• int๋กœ ๋ณ€ํ™˜ํ•  ์ˆ˜ ์žˆ์„๊นŒ? ์ด๋Ÿฐ ๋‹ต์„ ํ•˜๊ธฐ ์• ๋งคํ•œ ๊ฒƒ๋“ค์€ ์• ์ดˆ์— ํ˜•๋ณ€ํ™˜์„ ํ•˜์ง€ ์•Š๊ณ  ์ฐจ๋ผ๋ฆฌ ์ƒˆ๋กœ์šด ์ฝ”๋“œ๋ฅผ ๋‹ค์‹œ์งœ๋Š”๊ฒŒ ๋‚ซ๋‹ค.

๋‘๋ฒˆ์งธ๋Š” ๊ธฐ์™•์ด๋ฉด ๊ฐ™์€ ํ˜•์‹์„ ๊ฐ€์ง„ ๊ฒƒ๋“ค๋ผ๋ฆฌ ๋ณ€ํ™˜ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

ํ•˜์ง€๋งŒ ์ด๊ฒƒ๋“ค๋„ ์ž ์žฌ์ ์ธ ์˜ค๋ฅ˜๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์„ ํ™•๋ฅ ์ด ์žˆ๊ธฐ๋•Œ๋ฌธ์— ๊ฐ€๊ธ‰์ ์œผ๋กœ ํ˜•๋ณ€ํ™˜์€ ํ”ผํ•˜๋Š”๊ฒŒ ์ข‹๋‹ค.

 

 

๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€