Java ์›์‹œ ํƒ€์ž…

Java ์›์‹œ ํƒ€์ž…

Language
Java

์ž๋ฐ” ์›์‹œ ํƒ€์ž…(8+1)

์›์‹œ ํƒ€์ž…์€ ๊ธฐ๋ณธ ํƒ€์ž…์ด๋‹ค. ์ž๋ฐ”์—์„œ ์›์‹œ ํƒ€์ž…์ด๋ž€, ์ •์ˆ˜, ์‹ค์ˆ˜, ๋ฌธ์ž, ๋…ผ๋ฆฌ ๋ฆฌํ„ฐ๋Ÿด ๋“ฑ์˜ ์‹ค์ œ ๋ฐ์ดํ„ฐ๊ฐ’์„ ์ €์žฅํ•˜๋Š” ํƒ€์ž…์ด๋‹ค. ์ ‘๊ทผ ์†๋„๊ฐ€ ๋น ๋ฅด๊ณ  ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ ๊ฒŒ ์ฐจ์ง€ํ•œ๋‹ค๋Š” ์žฅ์ ์ด ์žˆ๋‹ค.
notion image
  • ์ž๋ฃŒํ˜• (data type) : ๋‚˜์—๊ฒŒ ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ ํƒ€์ž…
 
notion image

Booleans

- boolean ๋ฐ์ดํ„ฐ ํƒ€์ž…์€ true์™€ false๋กœ ๋‚˜ํƒ€๋‚จ. - ์กฐ๊ฑด ํ…Œ์ŠคํŠธ(conditional testing)์— ์ฃผ๋กœ ์“ฐ์ž„.
boolean isJavaFun = true; boolean isFishTasty = false; System.out.println(isJavaFun); // Outputs true System.out.println(isFishTasty); // Outputs false
 

Characters

- "A", "B"์ฒ˜๋Ÿผ ๋‹จ์ผ ๋ฌธ์ž๋ฅผ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•จ.
char myGrade = 'B'; System.out.println(myGrade); //B
 

Number

  1. ์ •์ˆ˜ ํƒ€์ž… (integer types) - โ‘  byte, โ‘ก short, โ‘ข int, โ‘ฃ long
    1.  
      โ‘  byte - (-128 ~ 127) ๊นŒ์ง€์˜ ์ •์ˆ˜๋ฅผ ๋‹ด์„ ์ˆ˜ ์žˆ์Œ. - ํ•ด๋‹น ์ˆซ์ž์˜ ๊ฐ’์„ ๊ฐ€์ง€๋Š” ํŠน์ • ์ƒํ™ฉ์—์„œ int ๋˜๋Š” ๋‹ค๋ฅธ ์ •์ˆ˜ ํƒ€์ž…๋ณด๋‹ค ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์•„๋‚„ ์ˆ˜ ์žˆ์Œ.
      byte myNum = 100; System.out.println(myNum); //100
      โ‘ก short - (-32768 ~ 32767) ๊นŒ์ง€์˜ ์ •์ˆ˜๋ฅผ ๋‹ด์„ ์ˆ˜ ์žˆ์Œ.
      short myNum = 5000; System.out.println(myNum); //5000
      โ‘ข int - (-2147483648 ~ 2147483647) ๊นŒ์ง€์˜ ์ •์ˆ˜๋ฅผ ๋‹ด์„ ์ˆ˜ ์žˆ์Œ. - ๋ณ€์ˆ˜๋ฅผ ๋งŒ๋“ค ๋•Œ ๊ฐ€์žฅ ์„ ํ˜ธํ•˜๋Š” ํƒ€์ž….
      int myNum = 100000; System.out.println(myNum); //100000
      โ‘ฃ long - (- 9223372036854775808 ~ 9223372036854775807) ๊นŒ์ง€์˜ ์ •์ˆ˜๋ฅผ ๋‹ด์„ ์ˆ˜ ์žˆ์Œ. - int๋กœ ์ถฉ๋ถ„ํ•˜์ง€ ์•Š์„ ๋•Œ ์‚ฌ์šฉ. - "L"๋กœ ๋๋‚˜์•ผํ•จ.
      long myNum = 15000000000L; System.out.println(myNum); //15000000000
 
2. ์‹ค์ˆ˜ ํƒ€์ž… (floating point types) - โ‘  float, โ‘ก double
๐Ÿ’ก
์‹ค์ˆ˜ ํƒ€์ž…์€ 9.99 ๋“ฑ ์†Œ์ˆ˜์ ์ด ํ•„์š”ํ•œ ์ˆซ์ž๊ฐ€ ํ•„์š”ํ•  ๋•Œ ์‚ฌ์šฉํ•จ.
โ‘  float - (3.4eโˆ’038 ~ 3.4e+038) ๊นŒ์ง€์˜ ์‹ค์ˆ˜๋ฅผ ๋‹ด์„ ์ˆ˜ ์žˆ์Œ.
float myNum = 5.75f; System.out.println(myNum); //5.75
โ‘ก double - (1.7eโˆ’308 ~ 1.7e+308) ๊นŒ์ง€์˜ ์‹ค์ˆ˜๋ฅผ ๋‹ด์„ ์ˆ˜ ์žˆ์Œ. - "d"๋กœ ๋๋‚˜์•ผํ•จ.
double myNum = 19.99d; System.out.println(myNum); //19.99
โ‘ข ๊ณผํ•™์  ์ˆซ์ž ํ‘œํ˜„ - ์‹ค์ˆ˜ ํƒ€์ž…์€ 10์˜ ์ œ๊ณฑ์„ e๋กœ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ์Œ.
float f1 = 35e3f; double d1 = 12E4d; System.out.println(f1); //35000.0 System.out.println(d1); //120000.0
๐Ÿ’ก
float์˜ ๋ณ€์ˆ˜๋Š” 6~7 ์ž๋ฆฟ์ˆ˜๊นŒ์ง€ ์˜ฌ ์ˆ˜ ์žˆ๋Š” ๋ฐ˜๋ฉด, double์˜ ๋ณ€์ˆ˜๋Š” 15 ์ž๋ฆฟ์ˆ˜๊นŒ์ง€ ์˜ฌ ์ˆ˜ ์žˆ์Œ. ๋”ฐ๋ผ์„œ double์„ ์“ฐ๋Š” ๊ฒƒ์ด ์•ˆ์ „ํ•จ.
 

String

- ํ…์ŠคํŠธ๋ฅผ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•จ. - ํ…์ŠคํŠธ๋Š” ""๋กœ ๊ฐ์‹ธ์•ผํ•จ.
String greeting = "Hello World"; System.out.println(greeting); //Hello World
 
๐Ÿ’ก
string ํƒ€์ž…์€ ์ž์ฃผ ์‚ฌ์šฉํ•ด์„œ 9๋ฒˆ์งธ ํƒ€์ž…์ด๋ผ๊ณ ๋„ ๋ถˆ๋ฆผ. ํ•˜์ง€๋งŒ ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ•˜๊ธฐ ๋•Œ๋ฌธ์—(๋‚ด์žฅ ํ•จ์ˆ˜๊ฐ€ ์žˆ๊ธฐ ๋•Œ๋ฌธ์—) ์›์‹œ ํƒ€์ž…์€ ์•„๋‹˜.
๐Ÿ’ก
System.out.println()๋Š” java.lang.system ํด๋ž˜์Šค ๋‚ด๋ถ€์— ์กด์žฌํ•˜๋Š” out ๊ฐ์ฒด๊ฐ€ printstream์˜ ๊ฐ์ฒด์ด๊ธฐ ๋•Œ๋ฌธ์—, printstream์ด ๊ฐ–๊ณ  ์žˆ๋Š” printIn ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ž„.

์™œ ์ด๋ฏธ์ง€๋Š” string ์ผ๊นŒ?

Base 64๋กœ ์ธ์ฝ”๋”ฉํ•˜๋ฉด ๋ฌธ์ž ์—ด์„ ์–ป์„ ์ˆ˜ ์žˆ์Œ.

Base 64

- Base 64๋ž€ ๋ฐ์ดํ„ฐ๋ฅผ 64์ง„๋ฒ•์œผ๋กœ ๋‚˜ํƒ€๋‚ด๋Š” ๊ฒƒ์œผ๋กœ 0๋ถ€ํ„ฐ 63๊นŒ์ง€ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ ์œผ๋กœ ๋‚˜ํƒ€๋ƒ„.
- ์•„์Šคํ‚ค ์ฝ”๋“œ๋กœ ํ‘œํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ๋งŒ๋“ค์–ด์ง.
 
์žฅ์ 
  • ์„œ๋ฒ„์— ์ด๋ฏธ์ง€๋ฅผ ๋„ฃ์ง€ ์•Š์•„๋„ ๋˜๋ฏ€๋กœ ๊ฐ„๋‹จํ•œ ๊ตฌํ˜„ ๊ฐ€๋Šฅ.
  • ๋ Œ๋”์‹œ, ๋ฌธ์„œ๋กœ๋”ฉ๊ณผ ๊ฐ™์ด ๋กœ๋”ฉ๋˜๊ธฐ์— ๋Š๊ธฐ์ง€ ์•Š๊ณ  ๋ถˆ๋ ค์˜ด.
๋‹จ์ 
  • ์ฝ”๋”ฉ์‹œ ๊ฐ€๋…์„ฑ์ด ๋–จ์–ด์ง.
  • ์šฉ๋Ÿ‰์ด ์ปค์ง. 256๊ฐ€์ง€๋ฅผ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐ”์ดํŠธ๋ฅผ printableํ•œ 64๊ฐ€์ง€๋ฅผ ์‚ฌ์šฉํ•ด์„œ ํ‘œํ˜„ํ•˜๊ธฐ ๋•Œ๋ฌธ. Base64 ์ธ์ฝ”๋”ฉ์„ ์‚ฌ์šฉํ•˜๋ฉด ์›๋ณธ๋ณด๋‹ค 33%์˜ ํฌ๊ธฐ๊ฐ€ ์ฆ๊ฐ€ํ•จ.

์›๋ฆฌ

์ปดํ“จํ„ฐ๋Š” 2์ง„์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š”๋ฐ ์ด๋ฅผ 64์ง„์ˆ˜๋กœ ํ‘œํ˜„ํ•˜๊ธฐ ์œ„ํ•ด์„œ 2^6 ์ฆ‰, 6๋น„ํŠธ 2์ง„์ˆ˜ ์—ด์ด ํ•„์š”. ํ•˜์ง€๋งŒ ๋Œ€๊ฐœ ์ปดํ“จํ„ฐ๋Š” 8๋น„ํŠธ์”ฉ ์—ฎ์–ด์ง„ ๋ฐ”์ดํŠธ๋ฅผ ๊ธฐ๋ณธ ์ •๋„ ๋‹จ์œ„๋กœ ์‚ฌ์šฉ. ๋”ฐ๋ผ์„œ 6๋น„ํŠธ์™€ 8๋น„ํŠธ์˜ ์ตœ์†Œ ๊ณต๋ฐฐ์ˆ˜ 24๋น„ํŠธ๋ฅผ ์‚ฌ์šฉ. ์ฆ‰, Base 64๋Š” 24๋น„ํŠธ๋งˆ๋‹ค 6๋น„ํŠธ์”ฉ ์ชผ๊ฐœ์–ด ๋ฌธ์ž 4๊ฐœ๋ฅผ ๋งŒ๋“ฆ.
๋‹ค๋งŒ, ์ž…๋ ฅ๋˜๋Š” ์ •๋ณด๊ฐ€ ๋ชจ๋‘ 24๋น„ํŠธ์”ฉ ๋–จ์–ด์ง„๋‹ค๋Š” ๋ณด์žฅ์ด ์—†์œผ๋ฏ€๋กœ ๋‚˜๋ˆ„์–ด ๋–จ์–ด์ง€์ง€ ์•Š๋Š” ๋ถ€๋ถ„์€ = ๋ฌธ์ž๋กœ ์ฑ„์›€.
notion image

๋น„ํŠธ์™€ ๋ฐ”์ดํŠธ

- 1 bit ๋Š” 2 ์ง„์ˆ˜ ํ•œ ์ž๋ฆฌ๋ฅผ ๋งํ•˜๋ฉฐ ํ‘œํ˜„๊ฐ€๋Šฅํ•œ ๊ฐ€์ง“์ˆ˜๋Š” 2๊ฐœ. ์ˆซ์ž๋กœ ์น˜๋ฉด 0 ~ 1.
- 1 byte ๋Š” 8 bit๋ฅผ ๋งํ•˜๋ฉฐ 2 ์ง„์ˆ˜ 8 ์ž๋ฆฌ์— ํ•ด๋‹นํ•˜๊ณ  ํ‘œํ˜„๊ฐ€๋Šฅํ•œ ๊ฐ€์ง“์ˆ˜๋Š” 2^8๊ฐœ์ธ 256๊ฐœ(์ง„๋ฒ•). ์ˆซ
์ž๋กœ ์น˜๋ฉด 0 ~ 255.
  • 1 byte = 8 bit = 2^8์˜ ๊ฒฝ์šฐ๋กœ ํ‘œํ˜„
  • ์ง„์ˆ˜๋Š” ์ง„๋ฒ•์œผ๋กœ ๋งŒ๋“ค์–ด์ง„ ์ˆ˜

์˜ˆ์‹œ

์–ด๋–ค ์•„์ด์ฝ˜์„ Base64๋กœ ์ธ์ฝ”๋”ฉํ•˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™์€ ๋ฌธ์ž๊ฐ’์„ ์–ป์„ ์ˆ˜ ์žˆ์Œ.
data:image/gif;base64,R0lGODlhDwAOAPYBAAAAAP///+Pj5MzS6qy33bfA4sDI5dne8I6e0JGg0Zim1Jqo1aGu2H6SyZOj0HWMxYWYytbY3V98vLG801p9ulN6u2SHw0JvtYiix8vU4TBmsDBmrx9fqyJgrEB1uGCOxRpeqoGjygdXpwlYpw5aqBVhrGOUx6C+3N/p8+/0+dzd3gBVpQNWpgtdphBgqxpmqxpnqyBqsDB1tmqbx3CfzJe62Z+/3a/K46/J4r/V6c/f7t/q9AJaoQhcpAlcpVuSwh9sqC10rF+Xv5G20cXY5cba5wxnnZu7zXKfthhxmS6EloezvVqcqFeeqJq+w1SjqYC0sajNysrh3drp4trn4fD49O/18vb6+Pf5+OXs6Pz9/Pv8+////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAAAPAA4AAAeYgAEBThYVFxocJCwrL4KCW0gIDxIUGyAiKys6jlMhCg0TKhgdI5kzjksGDA4RKgInLpkwglhHAwQJEBmCOrErOAFUNQcFCx4uN4IpMis/AUwrJh8lKy45gjvMLQFPmZkymwG9mT4oVU2ZMSmCNt5ARYJaUDwrNgE03kHrjgFRRisxvAnhx09KEm9DCBLMoqQHEYUKrVyBGAgAOw==

๋ฌธ์ž ์—ด์˜ ์˜๋ฏธ

- ๋ฌธ์ž์—ด : ๋ฌธ์ž์˜ ์—ด. ํ•œ ๋ฌธ์ž๋‹น 2byte๋กœ 10๊ธ€์ž๋ผ๋ฉด 20byte์ž„. - Base 64์—์„œ์˜ ๋ฌธ์ž์—ด : 64์ง„๋ฒ• ์•„์Šคํ‚ค ์ฝ”๋“œ๋กœ ์ด๋ฃจ์–ด์ง„ ์—ด.
- ๋ฌธ์ž๊ฐ’ : 2 byte๋กœ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ž์˜ ๊ฐ’. char์€ 256๊ฐœ์˜ ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ๊ฐ€์ง„ 2 byte์ด๊ธฐ ๋•Œ๋ฌธ.

๋งˆ์น˜๋ฉฐ

๋‹จ์ˆœํžˆ ์ž๋ฐ” ์›์‹œ ํƒ€์ž…์„ ์ •์˜๋กœ๋งŒ ๋๋‚˜๋Š” ๊ฒŒ ์•„๋‹ˆ๋ผ ์™œ, ์–ด๋–ป๊ฒŒ ์‚ฌ์šฉ๋˜๋Š”์ง€๋ฅผ ์•Œ์•„๋ณด์•˜๋‹ค. ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์ด๋Ÿฐ ์›์‹œ ํƒ€์ž…์ด ์‹ค์ œ ์›นํŽ˜์ด์ง€์—์„œ๋Š” ์–ด๋–ป๊ฒŒ ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ๋Š”์ง€ ์‚ฌ๋ก€๋ฅผ ํ™•์ธํ•˜๊ณ , ๋‹ด๊ธด ์›์‹œ ํƒ€์ž…์„ ์‚ฌ์šฉํ•œ ์ด์œ ์— ๋Œ€ํ•ด ๊นŠ๊ฒŒ ์ƒ๊ฐํ•ด๋ณด๋Š” ์‹œ๊ฐ„์ด์—ˆ๋‹ค. ํŠนํžˆ, ์•„์Šคํ‚ค์ฝ”๋“œ๋‚˜ ๋น„ํŠธ์™€ ๋ฐ”์ดํŠธ ๋“ฑ ์ˆซ์ž์— ๋Œ€ํ•ด ๋” ๋งŽ์€ ์ง€์‹์„ ์•Œ๊ฒŒ ๋œ ์ ์ด ์ข‹์•˜๋‹ค.