๊ด€๋ฆฌ ๋ฉ”๋‰ด

๋ชฉ๋ก๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (213)

JiYoung Dev ๐Ÿ–ฅ

[์•”ํ˜ธํ™”] PKI(Public Key Infrastructure)์˜ ์ดํ•ด - (1)

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

Study/๋ณด์•ˆ 2023. 12. 5. 23:02
๊ธฐ์ˆ  ๋ฉด์ ‘ ์ค€๋น„ 5. Java ์งˆ๋ฌธ ์ •๋ฆฌ

๐Ÿ’Œ ์ž๋ฐ” ์–ธ์–ด์˜ ํŠน์ง• 1. JVM ์œ„์—์„œ ๋Œ์•„๊ฐ€๊ธฐ ๋•Œ๋ฌธ์— ์šด์˜์ฒด์ œ์— ๋…๋ฆฝ์  2. ๊ฐ์ฒด์ง€ํ–ฅ์–ธ์–ด 3. ๋ฉ€ํ‹ฐ์“ฐ๋ ˆ๋”ฉ์„ ์ง€์› 4. ๋™์  ๋กœ๋”ฉ์„ ์ง€์› 5. ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰ํ„ฐ๊ฐ€ ์žˆ์–ด ์ž๋™์œผ๋กœ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ๋ฅผ ์ง„ํ–‰ ๐Ÿ’Œ JDK์™€ JRE์˜ ์ฐจ์ด์  JRE Java Runtime Enviroment๋กœ ์ž๋ฐ”๋กœ ๋งŒ๋“ค์–ด์ง„ ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์™€ API ๊ทธ๋ฆฌ๊ณ  JVM์„ ํฌํ•จํ•˜๊ณ  ์žˆ์Œ JDK๋Š” Java Development kit๋กœ ์ž๋ฐ”๋ฅผ ๊ฐœ๋ฐœํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์™€ javadoc, javac์™€ ๊ฐ™์€ ๊ฐœ๋ฐœ ๋„๊ตฌ์™€ JRE๋ฅผ ํฌํ•จํ•˜๋Š” ๊ฐœ๋… ๐Ÿ’Œ JVM์ด๋ž€? JVM์ด๋ž€ Java Virtual Machine์œผ๋กœ ๋ฐ”์ดํŠธ ์ฝ”๋“œ์˜ class ํŒŒ์ผ๋กœ ์ปดํŒŒ์ผ๋œ ํŒŒ์ผ์„ CPU๊ฐ€ ์ฝ์„ ์ˆ˜ ์žˆ๋Š” ๋ฐ”์ด๋„ˆ๋ฆฌ ์ฝ”๋“œ๋กœ ๋ณ€ํ™˜์‹œ์ผœ ํ•ด๋‹น ํ”„๋กœ๊ทธ๋žจ์„ ..

Study/Java 2023. 11. 18. 21:07
๊ธฐ์ˆ  ๋ฉด์ ‘ ์ค€๋น„ 4. ์ž๋ฐ” ๋ณ€์ˆ˜์˜ ๋ฐ์ดํ„ฐ ํƒ€์ž… Primitive type & Reference type

์˜ˆ์ƒ ์งˆ๋ฌธ 1.์ž๋ฐ” ๋ฐ์ดํ„ฐ ํƒ€์ž… ์ค‘ ๊ธฐ๋ณธํ˜•๊ณผ ์ฐธ์กฐํ˜•์˜ ์ฐจ์ด์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”. ์˜ˆ์ƒ ์งˆ๋ฌธ 2. ์ž๋ฐ”์˜ ์›์‹œํƒ€์ž…๋“ค์€ ๋ฌด์—‡์ด ์žˆ์œผ๋ฉฐ ๊ฐ๊ฐ ๋ช‡ ๋ฐ”์ดํŠธ๋ฅผ ์ฐจ์ง€ํ•˜๋‚˜์š”? ์˜ค๋Š˜์€ ์•„์ฃผ ๊ธฐ๋ณธ์ ์ธ ๋‚ด์šฉ์— ๋Œ€ํ•ด ์ •๋ฆฌํ•˜๊ณ ์ž ํ•œ๋‹ค. ์ž๋ฐ”์˜ ์ž๋ฃŒํ˜•์— ๋Œ€ํ•œ ์ด์•ผ๊ธฐ์ธ๋ฐ ์˜ˆ์ƒ ์งˆ๋ฌธ 2์— ๋Œ€ํ•œ ๋‚ด์šฉ์€ ์•„๋Š” ๋‚ด์šฉ์ด๋‹ˆ ์ž๋ฐ” ๋ฐ์ดํ„ฐ ํƒ€์ž…์˜ ๊ธฐ๋ณธํ˜•๊ณผ ์ฐธ์กฐํ˜•์˜ ์ฐจ์ด์— ๋Œ€ํ•ด ์ข€ ๋” ์ž์„ธํžˆ ์•Œ์•„๋ณด๊ณ ์ž ํ•œ๋‹ค. ๋ณ€์ˆ˜(Variable) ๋ณ€์ˆ˜๋ž€ ๋ฐ์ดํ„ฐ(data)๋ฅผ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•ด ํ”„๋กœ๊ทธ๋žจ์— ์˜ํ•ด ์ด๋ฆ„์„ ํ• ๋‹น๋ฐ›์€ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ์˜๋ฏธํ•œ๋‹ค. ๋ฐ์ดํ„ฐ ํƒ€์ž… ์ž๋ฐ”์—์„œ ๋ฐ์ดํ„ฐ ํƒ€์ž…์ด๋ž€ ๊ฐ’(data)์˜ ์ข…๋ฅ˜(type)์— ๋”ฐ๋ผ ๊ฐ’์ด ์ €์žฅ๋  ๊ณต๊ฐ„์˜ ํฌ๊ธฐ์™€ ์ €์žฅํ˜•์‹์„ ์ •์˜ํ•œ ๊ฒƒ์ด๋‹ค. ์ž๋ฃŒํ˜•์—๋Š” ๋ฌธ์žํ˜•(char), ์ •์ˆ˜ํ˜•(byte, short, int, long), ์‹ค์ˆ˜ํ˜•(..

Study/Java 2023. 11. 8. 12:28
[๋ฐฑ์ค€ 2563] ์ด์ฐจ์› ๋ฐฐ์—ด : ์ƒ‰์ข…์ด

๋‹จ๊ณ„๋ณ„๋กœ ๋ฌธ์ œ ํ’€๊ธฐ ์ค‘ ์ด์ฐจ์› ๋ฐฐ์—ด ๋‹จ๊ณ„์˜ ๋งˆ์ง€๋ง‰ ๋ฌธ์ œ์ด๋‹ค. ์ด์ฐจ์› ๋ฐฐ์—ด์„ ํ†ตํ•ด์„œ ํ’€์–ด์•ผ ํ•˜๋Š”๋ฐ ๋„์ €ํžˆ ์–ด๋–ป๊ฒŒ ์‹œ์ž‘ํ•ด์•ผํ• ์ง€ ๋ชฐ๋ผ ๋‹ค๋ฅธ ๋ถ„๋“ค์˜ ์ฝ”๋“œ๋ฅผ ์ฐธ๊ณ ํ•ด์„œ ํ’€์—ˆ๋‹ค. ์–ด๋–ป๊ฒŒ ํ‘ธ๋Š”์ง€๋งŒ ์•Œ๋ฉด ์ฝ”๋“œ ์ž‘์„ฑ์€ ์‰ฌ์šด ๋ฌธ์ œ์˜€๋Š”๋ฐ, ๋‚˜์—๊ฒŒ ์žˆ์–ด์„œ ์ด ๋ฌธ์ œ์˜ ํ•ต์‹ฌ์€ boolean ํƒ€์ž…์˜ ์ด์ฐจ์› ๋ฐฐ์—ด์„ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด์—ˆ๋‹ค. ์™œ ์ด ๋ฐฉ๋ฒ•์„ ์ƒ๊ฐํ•˜์ง€ ๋ชปํ–ˆ๋ƒ.. ์ด์ œ๊นŒ์ง€ ๋‚ด๊ฐ€ ์จ์˜จ ๋ฐฐ์—ด์€ intํƒ€์ž…์ด๊ฑฐ๋‚˜ ๊ฐ€๋” String ํ˜น์€ Char ํƒ€์ž…์ด๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๋‚ด ๊ธฐ์–ต์ƒ boolean ํƒ€์ž…์€ ์•„์ง๊นŒ์ง€ ์“ด ์ ์€ ์—†๋Š” ๊ฒƒ ๊ฐ™๋‹ค. ๊ทธ๋ž˜์„œ ์ด ๋ฐฉ๋ฒ•์„ ์ƒ๊ฐํ•˜์ง€ ๋ชปํ–ˆ๊ณ , ํฌ๊ธฐ 100์ธ boolean ํƒ€์ž…์˜ ์ด์ฐจ์› ๋ฐฐ์—ด์„ ์ƒ์„ฑํ•˜๊ณ  for๋ฌธ๊ณผ if๋ฌธ์„ ์ ์ ˆํžˆ ํ™œ์šฉํ•˜๋ฉด ํ’€ ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ œ์˜€๋‹ค. ๋ฌธ์ œ ํ’€์ด ๋ฐ ์ฝ”๋“œ ๊ฐ€๋กœ, ์„ธ๋กœ์˜ ํฌ๊ธฐ๊ฐ€ ๊ฐ๊ฐ 100์ธ ์ •์‚ฌ..

๊ธฐ์ˆ  ๋ฉด์ ‘ ์ค€๋น„ 3. ๋ฉ€ํ‹ฐ ์Šค๋ ˆ๋“œ (+ ํ”„๋กœ์„ธ์Šค์™€ ์Šค๋ ˆ๋“œ)

์˜ˆ์ƒ ์งˆ๋ฌธ 1. ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋“œ๋ž€? ์˜ˆ์ƒ ์งˆ๋ฌธ 2. ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ  ํ”„๋กœ์„ธ์Šค(Process)์™€ ์Šค๋ ˆ๋“œ(Thread) ์Šค๋ ˆ๋“œ๋ฅผ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด์„  ํ”„๋กœ์„ธ์Šค์™€ ํ•จ๊ป˜ ์ดํ•ดํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค. ์™œ๋ƒํ•˜๋ฉด ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ์š”์†Œ ์ค‘ ํ•˜๋‚˜๊ฐ€ ์Šค๋ ˆ๋“œ ์ด๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ํ”„๋กœ์„ธ์Šค(Process)๋ž€? ํ”„๋กœ์„ธ์Šค(Process)๋ž€ ๋ฌด์—‡์ผ๊นŒ? ํ”„๋กœ์„ธ์Šค๋ž€ ๋‹จ์ˆœํ•˜๊ฒŒ ๋งํ•˜๋ฉด ์‹คํ–‰ ์ค‘์ธ ํ”„๋กœ๊ทธ๋žจ(program)์ด๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค. ํ•˜๋‚˜์˜ ์ž๋ฐ” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‹คํ–‰์ค‘์ด๋ผ๋ฉด ๊ทธ๊ฒƒ์ด ๋ฐ”๋กœ ํ”„๋กœ์„ธ์Šค์ด๋‹ค. ๋‹ค์‹œ๋งํ•ด, ์‚ฌ์šฉ์ž๊ฐ€ ์ž‘์„ฑํ•œ ํ”„๋กœ๊ทธ๋žจ์ด ์šด์˜์ฒด์ œ์— ์˜ํ•ด ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ํ• ๋‹น๋ฐ›์•„ ์‹คํ–‰ ์ค‘์ธ ๊ฒƒ์„ ๋งํ•œ๋‹ค. ์ด๋Ÿฌํ•œ ํ”„๋กœ์„ธ์Šค๋Š” ํ”„๋กœ๊ทธ๋žจ์— ์‚ฌ์šฉ๋˜๋Š” ๋ฐ์ดํ„ฐ์™€ ๋ฉ”๋ชจ๋ฆฌ ๋“ฑ์˜ ์ž์› ๊ทธ๋ฆฌ๊ณ  ์Šค๋ ˆ๋“œ๋กœ ๊ตฌ์„ฑ๋œ๋‹ค. - ํ”„๋กœ๊ทธ๋žจ : ์ปดํ“จํ„ฐ์—์„œ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ํŒŒ์ผ, ํŒŒ..

Study/Java 2023. 11. 7. 21:36
Java BufferedReader์™€ BufferedWriter ์‚ฌ์šฉ๋ฒ•๊ณผ ๊ธฐ๋ณธ์›๋ฆฌ(I/O)

๋ฐฑ์ค€ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ๋ฅผ ํ’€๋ฉด์„œ ๋น ๋ฅธ ์ž…์ถœ๋ ฅ์„ ์œ„ํ•ด BufferedReader์™€ BufferedWriter๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๋Š” ์‚ฌ์‹ค์„ ์•Œ๊ฒŒ ๋˜์—ˆ๋‹ค. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์—์„œ ๋ฌธ์ œ๋ฅผ ํ’€ ๋•Œ์—๋Š” ์ง์ ‘ ์ž…์ถœ๋ ฅ์„ ์ž‘์„ฑํ•  ํ•„์š”๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์— ๊ธฐ์กด์— ์•Œ๋˜ Scanner์™€ System.out.print()๋ฅผ ์‚ฌ์šฉํ–ˆ๋Š”๋ฐ, ๋ฐฑ์ค€ ๋ฌธ์ œ๋ฅผ ํ’€ ๋•Œ BufferedReader์™€ BufferedWriter๋ฅผ ์ž์ฃผ ์‚ฌ์šฉํ•˜๊ฒŒ ๋  ๊ฒƒ ๊ฐ™์•„ ์ด๋ฒˆ ๊ธฐํšŒ์— ์ •๋ฆฌ๋ฅผ ํ•ด๋ณด๋ ค ํ•œ๋‹ค. ์ž๋ฐ”์—์„œ์˜ ์ž…์ถœ๋ ฅ(I/O) I/O๋ž€ Input๊ณผ Output์˜ ์•ฝ์ž๋กœ ์ž…๋ ฅ๊ณผ ์ถœ๋ ฅ, ์ฆ‰ ์ž…์ถœ๋ ฅ์„ ๋งํ•œ๋‹ค. ์ž…์ถœ๋ ฅ์ด๋ž€, ์ปดํ“จํ„ฐ ๋‚ด๋ถ€ ๋˜๋Š” ์™ธ๋ถ€์˜ ์žฅ์น˜์™€ ํ”„๋กœ๊ทธ๋žจ๊ฐ„์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ ๋ฐ›๋Š” ๊ฒƒ์œผ๋กœ ํ‚ค๋ณด๋“œ๋กœ๋ถ€ํ„ฐ ๋ฐ์ดํ„ฐ๋ฅผ ์ž…๋ ฅ๋ฐ›๊ณ , ํ™”๋ฉด์— ์ถœ๋ ฅํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ ์ž…์ถœ๋ ฅ์˜ ์˜ˆ๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค...

Study/Java 2023. 11. 6. 22:28
๊ธฐ์ˆ  ๋ฉด์ ‘ ์ค€๋น„ 2. ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰์…˜(Garbage Collection)

์˜ˆ์ƒ ์งˆ๋ฌธ. ๊ฐ€๋น„์ง€ ์ฝœ๋ ‰ํ„ฐ๋ž€? ํ•„์š”ํ•œ ์ด์œ ์™€ ๋™์ž‘ ๋ฐฉ์‹ Garbage Collection(๊ฐ€๋น„์ง€ ์ปฌ๋ ‰์…˜, GC)์ด๋ž€? ๋ฉ”๋ชจ๋ฆฌ ๊ธฐ๋ฒ• ์ค‘์˜ ํ•˜๋‚˜๋กœ, ํ”„๋กœ๊ทธ๋žจ์ด ๋™์ ์œผ๋กœ ํ• ๋‹นํ–ˆ๋˜ ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ ์ค‘์—์„œ ํ•„์š”์—†๊ฒŒ ๋œ ์˜์—ญ์„ ํ•ด์ œํ•˜๋Š” ๊ธฐ๋Šฅ์ด๋‹ค. C์–ธ์–ด๋‚˜ C++ ๊ฐ™์€ ์–ธ์–ด๋Š” ์ˆ˜๋™์œผ๋กœ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ด€๋ฆฌํ•˜๋„๋ก ์„ค๊ณ„๋œ ๋ฐ˜๋ฉด, Java์™€ C#๊ณผ ๊ฐ™์€ ์–ธ์–ด์—์„œ๋Š” ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰์…˜์„ ํ†ตํ•ด ์ž๋™์œผ๋กœ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, C์–ธ์–ด๋ฅผ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ ํ•„์š”ํ•œ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ํ†ตํ•ด ์šด์˜์ฒด์ œ๋กœ๋ถ€ํ„ฐ ํ• ๋‹น๋ฐ›์•„ ์‚ฌ์šฉํ•˜๋‹ค๊ฐ€ ๋‹ค ์“ฐ๋ฉด ๋‹ค์‹œ ํ•ด์ œํ•ด์„œ ์šด์˜์ฒด์ œ๋กœ ๋ฐ˜ํ™˜ํ•ด์•ผํ•œ๋‹ค. ๋งŒ์•ฝ ๊ฐœ๋ฐœ์ž๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ๋ฅผ ํ•˜์ง€ ์•Š๋Š”๋‹ค๋ฉด ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ ์  ์ปค์ง€๋‹ค๊ฐ€ ์šด์˜์ฒด์ œ์— ์˜ํ•ด ์‹œ๊ทธ๋„์„ ๋งž๊ณ  ์ฃฝ๊ฒŒ๋œ๋‹ค. ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ•ด์ œํ•˜์ง€ ์•Š์•„์„œ ์ƒ๊ธฐ๋Š” ๋ฒ„๊ทธ '๋ฉ”๋ชจ๋ฆฌ..

Study/Java 2023. 11. 1. 20:25
๊ธฐ์ˆ  ๋ฉด์ ‘ ์ค€๋น„ 1. Java ์–ธ์–ด์˜ ํŠน์ง• (+JVM๊ณผ ์ž๋ฐ”์˜ ์ปดํŒŒ์ผ ๋ฐฉ์‹, JRE vs JDK)

Java๋ž€? ์ฌ ๋งˆ์ดํฌ๋กœ์‹œ์Šคํ…œ์ฆˆ(Sun Microsystems, Inc.)์—์„œ ๊ฐœ๋ฐœํ•˜์—ฌ 1996๋…„ 1์›”์— ๊ณต์‹์ ์œผ๋กœ ๋ฐœํ‘œํ•œ ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์–ธ์–ด ์ดˆ๊ธฐ์— ์ œ์ž„์Šค ๊ณ ์Šฌ๋ง(James Gosling)์ด๋ž€ ์—”์ง€๋‹ˆ์–ด๋ฅผ ์ค‘์‹ฌ์œผ๋กœ ๊ฐ€์ „์ œํ’ˆ์— ์‚ฌ์šฉํ•  ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ๊ฐœ๋ฐœํ•˜๋‹ค ํ”Œ๋žซํผ์— ๋…๋ฆฝ์ ์ด๋ฉด์„œ๋„ ์ ์€ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ƒˆ๋กœ์šด ์–ธ์–ด์˜ ํ•„์š”์„ฑ์„ ๋Š๋ผ๊ณ  ๊ฐœ๋ฐœํ•˜๊ฒŒ ๋œ ์–ธ์–ด Java ์–ธ์–ด์˜ ํŠน์ง• 1. ์ž๋ฐ”๊ฐ€์ƒ๋จธ์‹ (JVM) : ์šด์˜์ฒด์ œ์— ๋…๋ฆฝ์ ์ด๋‹ค. ์ž๋ฐ” ์‘์šฉํ”„๋กœ๊ทธ๋žจ์€ ์šด์˜์ฒด์ œ๋‚˜ ํ•˜๋“œ์›จ์–ด๊ฐ€ ์•„๋‹Œ JVMํ•˜๊ณ ๋งŒ ํ†ต์‹ ํ•˜๊ณ , JVM์ด ์ž๋ฐ” ์‘์šฉํ”„๋กœ๊ทธ๋žจ์œผ๋กœ๋ถ€ํ„ฐ ์ „๋‹ฌ๋ฐ›์€ ๋ช…๋ น์„ ํ•ด๋‹น ์šด์˜์ฒด์ œ๊ฐ€ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ณ€ํ™˜ํ•˜์—ฌ ์ „๋‹ฌํ•œ๋‹ค. ์ž๋ฐ”๋กœ ์ž‘์„ฑ๋œ ํ”„๋กœ๊ทธ๋žจ์€ ์šด์˜์ฒด์ œ์—๋Š” ๋…๋ฆฝ์ ์ด์ง€๋งŒ JVM์€ ์šด์˜์ฒด์ œ์— ์ข…์†์ ์ด๋ฏ€๋กœ ์—ฌ๋Ÿฌ ์šด์˜์ฒด์ œ์— ์„ค์น˜ํ•  ์ˆ˜ ์žˆ..

Study/Java 2023. 10. 31. 19:54
์ •์ˆ˜ํ˜•(byte, short, int, long) ํƒ€์ž…์˜ ํฌ๊ธฐ

๋ฐฑ์ค€์—์„œ 3๊ฐ€์ง€ ์ˆ˜๋ฅผ ๋”ํ•˜๋Š” ๋ฌธ์ œ๋ฅผ ํ’€์—ˆ๋‹ค. ์•„์ฃผ ์‰ฌ์šด ๋ฌธ์ œ์˜€์œผ๋‚˜ ์•„๋ž˜์™€ ๊ฐ™์€ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜์˜€๋‹ค. ํ•ด๋‹น ์—๋Ÿฌ๋Š” ์ •์ˆ˜ํ˜• ๋ฒ”์œ„๋กœ ์ธํ•ด ๋ฐœ์ƒํ•œ ๋ฌธ์ œ์˜€๋‹ค. ๋”ฐ๋ผ์„œ ์ด๋ฒˆ์—๋Š” Java์˜ ์ •์ˆ˜ํ˜• ํƒ€์ž…๊ณผ ๊ฐ ํƒ€์ž…๋ณ„ ํฌ๊ธฐ๋ฅผ ๋‹ค์‹œ ๋ณต์Šตํ•ด๋ณด๊ณ ์ž ํ•œ๋‹ค. Java ์ž๋ฃŒํ˜• ์ •์ˆ˜ํ˜•๋ถ€ํ„ฐ ๋“ค์–ด๊ฐ€๊ธฐ ์ „์— Java์—์„œ๋Š” ์ž๋ฃŒํ˜•์„ ํฌ๊ธฐ '๊ธฐ๋ณธํ˜•(Primitive type)'๊ณผ '์ฐธ์กฐํ˜•(reference type)' ๋‘ ๊ฐ€์ง€๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๋‹ค. ๊ธฐ๋ณธํ˜• ๋ณ€์ˆ˜๋Š” ์‹ค์ œ ๊ฐ’(data)๋ฅผ ์ €์žฅํ•˜๋Š” ๋ฐ˜๋ฉด, ์ฐธ์กฐํ˜• ๋ณ€์ˆ˜๋Š” ์–ด๋–ค ๊ฐ’์ด ์ €์žฅ๋˜์–ด ์žˆ๋Š” ์ฃผ์†Œ(memory address)๋ฅผ ๊ฐ’์œผ๋กœ ๊ฐ–๋Š”๋‹ค. ์ž๋ฐ”์˜ ๊ธฐ๋ณธํ˜• ํƒ€์ž…์€ ์•„๋ž˜์™€ ๊ฐ™๋‹ค. ๋…ผ๋ฆฌํ˜•(boolean) ์ •์ˆ˜ํ˜•(byte, short, int, long) ๋ฌธ์žํ˜•(char) ์‹ค์ˆ˜ํ˜•(float, double)..

Study/Java 2023. 10. 27. 17:09
์ž๋ฐ” ํ”„๋กœ๊ทธ๋žจ ์ž‘์„ฑํ•˜๊ธฐ : Java class์™€ main() ๋ฉ”์„œ๋“œ

7๊ฐœ์›” ๊ฐ„์˜ ํ’€์Šคํƒ ๊ณผ์ •์ด ๋๋‚˜๊ณ  ์ทจ์—…์„ ์ค€๋น„ํ•˜๋ฉด์„œ ๊ฐ€์žฅ ํ•˜๊ณ  ์‹ถ์—ˆ๋˜ ๊ฒƒ์€ ๋ฐ”๋กœ Java๋ฅผ ๋‹ค์‹œ ๊ณต๋ถ€ํ•˜๋Š” ๊ฒƒ์ด์—ˆ๋‹ค. ์งง์€ ์‹œ๊ฐ„ ์•ˆ์— ๋งŽ์€ ๋‚ด์šฉ์„ ๋ฐฐ์šฐ๊ณ  ๋ฐ”๋กœ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋Š๋ผ ๊ธฐ์ดˆ์ ์ธ ๋ถ€๋ถ„์„ ํ™•์‹คํ•˜๊ฒŒ ์ง‘๊ณ  ๋„˜์–ด๊ฐ€์ง€ ๋ชปํ•œ ๊ฒŒ ๋‚ด๋‚ด ๊ฑธ๋ ธ๋Š”๋ฐ, ์ด๋ฒˆ์— ์ฝ”๋”ฉํ…Œ์ŠคํŠธ๋ฅผ ์ค€๋น„ํ•˜๋ฉด์„œ ์• ๋งคํ•˜๊ฒŒ ์•Œ๊ณ  ์žˆ๊ฑฐ๋‚˜, ๋‹ค์‹œ ํ•œ ๋ฒˆ ๋ณต์Šตํ•˜๊ณ  ์‹ถ์—ˆ๋˜ ๋‚ด์šฉ๋“ค์„ ์ •๋ฆฌํ•ด๋ณด๋ ค๊ณ  ํ•œ๋‹ค. ๊ทธ ์ฒซ๋ฒˆ์งธ ๋‚ด์šฉ์€ ๋ฐ”๋กœ 'Java class์™€ main() ๋ฉ”์„œ๋“œ'์ด๋‹ค. ๊ธฐ์กด์—๋Š” ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค๋ฅผ ํ™œ์šฉํ•ด ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต์„ ํ•˜๊ณค ํ–ˆ๋Š”๋ฐ ์ด๋ฒˆ์— ๋ฐฑ์ค€์„ ํ™œ์šฉํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค. ๋ฐฑ์ค€์ด ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‚˜ ๋ฌธ์ œ ์œ ํ˜•์ด ์ž˜ ๋‚˜๋ˆ„์–ด์ ธ ์žˆ์—ˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๋ฐฑ์ค€์ด ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์™€ ๋‹ฌ๋ž๋˜ ์ ์€ ํด๋ž˜์Šค ์ •์˜๋ถ€ํ„ฐ ์ž…์ถœ๋ ฅ ํ•จ์ˆ˜๊นŒ์ง€ ๋‚ด๊ฐ€ ์ง์ ‘ ์ž‘์„ฑํ•ด์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์ด์—ˆ๋‹ค. ์ตœ๊ทผ์—๋Š” ๊ณ„์† Spring..

Study/Java 2023. 10. 27. 16:45