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

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

JiYoung Dev ๐Ÿ–ฅ

JDBC์™€ Spring JDBC ๊ธฐ๋ณธ ์ดํ•ดํ•˜๊ธฐ

JDBC(Java Database Connectivity)JDBC๋Š” ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ์— ์ ‘๊ทผ, ์กฐ์ž‘ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๋Š” ์ž๋ฐ” API์ด๋‹ค. ์ž๋ฐ” ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์ด ๋‹ค์–‘ํ•œ DBMS์— ๋Œ€ํ•ด ์ผ๊ด€๋œ API๋กœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๊ฒฐ, ๊ฒ€์ƒ‰, ์ˆ˜์ •, ๊ด€๋ฆฌ ๋“ฑ์„ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•œ๋‹ค. ๋”ฐ๋ผ์„œ ์ž๋ฐ”๋กœ ๊ฐœ๋ฐœ์‹œ์—๋Š” DBMS ์ข…๋ฅ˜์— ๊ด€๊ณ„์—†์ด JDBC API๋งŒ์„ ์ด์šฉํ•˜๋ฉด ๋œ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ DBMS๋ฅผ ์ œ๊ณตํ•˜๋Š” ํšŒ์‚ฌ์—์„œ JDBC ๋“œ๋ผ์ด๋ฒ„๋ฅผ ์ œ๊ณตํ•˜๋ฉฐ ์ž๋ฐ” ์‘์šฉํ”„๋กœ๊ทธ๋žจ์—์„œ๋Š” JDBC ๋“œ๋ผ์ด๋ฒ„๋ฅผ JDBC ๋งค๋‹ˆ์ €๋ฅผ ํ†ตํ•ด ๋กœ๋“œํ•˜์—ฌ ์‚ฌ์šฉํ•œ๋‹ค.  ๋”ฐ๋ผ์„œ ์‚ฌ์šฉํ•˜๋Š” DBMS๊ฐ€ ๋ฐ”๊ปด๋„ ์ด์— ๋”ฐ๋ฅธ JDBC ๋“œ๋ผ์ด๋ฒ„๋งŒ ๋กœ๋“œํ•˜๋ฉด ๋˜๋ฏ€๋กœ ์ž๋ฐ” ํ”„๋กœ๊ทธ๋žจ์—๋Š” DBMS ๋ณ€๊ฒฝ์— ๋”ฐ๋ฅธ ํ”„๋กœ๊ทธ๋žจ ์ˆ˜์ •์ด ํ•„์š” ์—†๋‹ค.JDBC ๋“œ๋ผ์ด๋ธŒ ๋งค๋‹ˆ์ € : ์ž๋ฐ” API์—์„œ ์ง€..

Study/Java 2024. 11. 19. 22:12
Base64 Encoding vs Base64UrlSafe vs FormData

์šด์˜ํ™˜๊ฒฝ์— ์ ์šฉ๋œ ์†”๋ฃจ์…˜ ์ค‘ Rest API๋ฅผ ํ†ตํ•ด ๋“ฑ๋ก๊ณผ ์กฐํšŒ๋ฅผ ์ง„ํ–‰ํ•˜๋Š” ๋กœ์ง์—์„œ ๋“ฑ๋ก์€ ์ •์ƒ์ ์œผ๋กœ ์ง„ํ–‰๋˜์ง€๋งŒ, ๋“ฑ๋ก๋œ ์ •๋ณด๋กœ ์กฐํšŒ ์‹œ ์กฐํšŒ๊ฐ€ ์•ˆ๋˜๋Š” ํ˜„์ƒ์ด ๋ฐœ์ƒํ•˜์˜€๋‹ค. ํ™•์ธ ๊ฒฐ๊ณผ, ์—ฐ๊ณ„ ์„œ๋น„์Šค์—์„œ ์šฐ๋ฆฌ ์†”๋ฃจ์…˜์˜ RestAPI ์„œ๋ฒ„๋กœ ์š”์ฒญ์„ ๋ณด๋‚ผ ๋•Œ URL์— ์š”์ฒญ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ด์•„์„œ ๋ณด๋‚ด๊ฒŒ ๋˜๋Š”๋ฐ ์ด ๋•Œ user์˜ id๋ฅผ Base64 ์ธ์ฝ”๋”ฉํ•˜์—ฌ ๋ณด๋‚ด๋Š” ๊ฒฐ๊ณผ, Base64 ์ธ์ฝ”๋”ฉ์— ํฌํ•จ๋˜๋Š” ๋ฌธ์ž์—ด ์ค‘ + ๋ฌธ์ž์—ด์ด URL์—์„œ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ Space๋กœ ์ธ์‹๋˜๊ธฐ ๋•Œ๋ฌธ์— ์ •์ƒ์ ์ธ ์กฐํšŒ๊ฐ€ ์ง„ํ–‰๋˜์ง€ ์•Š์•˜๋‹ค.  ํ•ด๋‹น ๋ฌธ์ œ์™€ ๊ด€๋ จํ•˜์—ฌ ์ด๋ฒˆ์—๋Š” Base64์™€ ๊ด€๋ จ๋œ ํฌ์ŠคํŒ…์„ ์ง„ํ–‰ํ•ด ๋ณด์•˜๋‹ค. ๐Ÿ”Ž Base64 Encoding Base64 ์ธ์ฝ”๋”ฉ์ด๋ž€ ์ด์ง„(binary) ๋ฐ์ดํ„ฐ๋ฅผ 6bit์”ฉ ์ž˜๋ผ์„œ 64๊ฐœ์˜ ๋ฌธ์ž(์•„์Šคํ‚ค์ฝ”๋“œ)๋กœ ๋งค..

Study/Java 2024. 11. 5. 21:12
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