๐Ÿ’ป ๊ฐœ๋ฐœ ์ผ์ง€/SpringBoot

๐Ÿ’ก JWT + SpringSecurity๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํšŒ์›๊ฐ€์ž… Rest API ๊ตฌํ˜„ โžก๏ธ 2ํƒ„ ๋ฐ”๋กœ๊ฐ€๊ธฐ: JWT ๋กœ๊ทธ์ธ ๋ฐ ํšŒ์› ์ •๋ณด ์กฐํšŒ โžก๏ธ 3ํƒ„ ๋ฐ”๋กœ๊ฐ€๊ธฐ: Refresh Token ๊ฐœ๋ฐœํ™˜๊ฒฝ SpringBoot 3.1.4 kotlin / java 17 MariaDB ๊ธฐ๋ณธ JPA ์„ค์ •์€ ๋‹ค๋ฃจ์ง€ ์•Š๋Š”๋‹ค. ๋ฏธ๋ฆฌ ์„ค์ •ํ•œ ์ƒํƒœ์˜ ํ”„๋กœ์ ํŠธ์ž„์„ ๊ฐ€์ •!!! 1. build.gradle.kts ์„ค์ • dependencies { ... implementation("org.springframework.boot:spring-boot-starter-security") implementation("io.jsonwebtoken:jjwt-api:0.11.5") runtimeOnly("io.jsonwebtoken:jjwt-impl:0..
Scavenger๋ž€? Naver DEVIEW 2023 - ๋‹น์‹ ์˜ ์ฝ”๋“œ๋Š” ์ƒ๊ฐ๋ณด๋‹ค ๋งŽ์ด ์ฃฝ์–ด์žˆ๋‹ค. ๋ฐœํ‘œ์˜์ƒ | GITHUB GitHub - naver/scavenger: A runtime dead code analysis tool A runtime dead code analysis tool. Contribute to naver/scavenger development by creating an account on GitHub. github.com - ๋Ÿฐํƒ€์ž„ Dead Code ๋ถ„์„ ๋„๊ตฌ - ๋ฉ”์†Œ๋“œ ํ˜ธ์ถœ ๊ธฐ๋ก์„ ์ˆ˜์ง‘ํ•˜์—ฌ ์‹œ๊ฐํ™” - Java Agent ๋ฐฉ์‹ ์‚ฌ์šฉ => ์œ ์ง€๋ณด์ˆ˜ ์šฉ์ด, ์ปดํŒŒ์ผ ๋ฐ ํ…Œ์ŠคํŠธ ์†๋„ ํ–ฅ์ƒ! ์ปดํฌ๋„ŒํŠธ - Agent: ์ฝ”๋“œ ๋ฒ ์ด์Šค๋ฅผ ์Šค์บ”ํ•˜๊ณ , ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋‚ด ๋ฉ”์†Œ๋“œ ํ˜ธ์ถœ ์ •๋ณด๋ฅผ ์ฃผ๊ธฐ์ ์œผ๋กœ Co..
Caffeine Cache ๋ž€? ๋กœ์ปฌ์บ์‹œ๋Š” ํ•ด๋‹น ๊ธฐ๊ธฐ์—์„œ๋งŒ ์‚ฌ์šฉ๋˜๋Š” ์บ์‹œ์ด๋‹ค. ์†๋„๊ฐ€ ๋น ๋ฅด์ง€๋งŒ ๋ถ„์‚ฐ ์‹œ์Šคํ…œ์ผ ๊ฒฝ์šฐ ๋ฐ์ดํ„ฐ ์ •ํ•ฉ์„ฑ์ด ๊นจ์งˆ ์ˆ˜ ์žˆ๋‹ค. ๋น„์ฆˆ๋‹ˆ์Šค ์š”๊ตฌ์‚ฌํ•ญ์— ๋”ฐ๋ผ ์–ด๋Š์ •๋„๊นŒ์ง€ ์ •ํ•ฉ์„ฑ์„ ๋งž์ถฐ์•ผํ• ์ง€, ์–ผ๋งˆ๋‚˜ ์†๋„๊ฐ€ ์ค‘์š”ํ• ์ง€์— ๋”ฐ๋ผ ์บ์‹œ๋ฅผ ์„ ํƒํ•œ๋‹ค. Caffeine Cache๋Š” java ์บ์‹ฑ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ค‘ ๋†’์€ ์„ฑ๋Šฅ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์บ์‹œ์ด๋‹ค. Caffeine์€ Window TinyLfu eviction ์ •์ฑ…์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š”๋ฐ, ์ด๋Š” ์ตœ์ ์˜ ์ ์ค‘๋ฅ ์„ ์ œ๊ณตํ•œ๋‹ค. Setting build.gradle.kts dependencies { implementation("org.springframework.boot:spring-boot-starter-cache") implementation("com.github.b..
์œ„์™€ ๊ฐ™์€ ํ˜•ํƒœ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์•„ ๊ฐ์ฒด๋กœ ๋ณ€ํ™˜ ๊ธฐ๋Œ€ํ•œ ๊ฐ์ฒด ํ˜•์‹์€ ์•„๋ž˜์™€ ๊ฐ™๋‹ค. Payload(id = "...", payload = List(Map("..." to "...")) ์•„๋ž˜ ์ฝ”๋“œ๋กœ ํŒŒ์‹ฑ ์ง„ํ–‰ /* build.gradle.kts */ implementation("com.fasterxml.jackson.module:jackson-module-kotlin") /* parsing logic */ jacksonObjectMapper().readValue(msg, PayLoad::class.java) ํ•˜์ง€๋งŒ com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.util.ArrayL..
์ ์ด
'๐Ÿ’ป ๊ฐœ๋ฐœ ์ผ์ง€/SpringBoot' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๊ธ€ ๋ชฉ๋ก (2 Page)