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

๋ชฉ๋กStudy/Java (14)

JiYoung Dev ๐Ÿ–ฅ

Spring Security ์ ์šฉ๊ธฐ (1) Spring Security๋ž€?

์ƒˆ๋กญ๊ฒŒ ํ”„๋กœ์ ํŠธ๋ฅผ ์‹œ์ž‘ํ•˜๋ฉด์„œ ์ ์šฉํ•ด๋ณด๊ณ  ์‹ถ์—ˆ๋˜ ๊ธฐ์ˆ  ์ค‘ ํ•˜๋‚˜์ธ Spring Security. ์–ด๋– ํ•œ ๊ธฐ์ˆ ์ด๋ฉฐ ์–ด๋– ํ•œ ์›๋ฆฌ๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ๋™์ž‘ํ•˜๋Š”์ง€, ๊ทธ๋ฆฌ๊ณ  ์‹ค์ œ ํ”„๋กœ์ ํŠธ์— ์ ์šฉํ•˜๋Š” ๊ฒƒ๊นŒ์ง€ ํ•˜๋‚˜ ํ•˜๋‚˜ ํฌ์ŠคํŒ…ํ•ด๋ณด๊ณ ์ž ํ•œ๋‹ค. ์ด๋ฒˆ ํฌ์ŠคํŒ…์€ Spring Security ์ ์šฉ๊ธฐ์˜ ์ฒซ ๋ฒˆ์งธ ํŒŒํŠธ, Spring Security๋ž€ ๋ฌด์—ˆ์ธ์ง€์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•ด๋ณด๊ณ ์ž ํ•œ๋‹ค. ๋ชฉ์ฐจ 1. Spring Security ๊ฐœ๋… 2. Spring Security ํŠน์ง• 3. Architecture ๐Ÿค Spring Security ๊ฐœ๋… Spring Security๋Š” ์ธ์ฆ, ๊ถŒํ•œ ๋ถ€์—ฌ ๋ฐ ์ผ๋ฐ˜์ ์ธ ๊ณต๊ฒฉ์— ๋Œ€ํ•œ ๋ณดํ˜ธ๋ฅผ ์ œ๊ณตํ•˜๋Š” Spring ํ”„๋ ˆ์ž„์›Œํฌ์ด๋‹ค. ๊ฐœ๋ฐœ์„ ํ•  ๋•Œ ๊ธฐ๋Šฅ ๋ถ€๋ถ„์—์„œ ๊ฐ€์žฅ ๋จผ์ € ์ž‘์—…ํ•˜๋Š” ๋ถ€๋ถ„์ด ๋ฐ”๋กœ ํšŒ์›๊ฐ€์ž…, ๋กœ๊ทธ์ธ, ๋กœ๊ทธ์•„์›ƒ๊ณผ ..

Study/Java 2024. 4. 22. 22:25
๊ธฐ์ˆ  ๋ฉด์ ‘ ์ค€๋น„ 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
๊ธฐ์ˆ  ๋ฉด์ ‘ ์ค€๋น„ 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