๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

Spring Boot18

2์žฅ: ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑํ•˜๊ธฐ Table of Contents ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋ž€ TDD ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋ฅผ ๋จผ์ € ์ž‘์„ฑํ•˜๋Š” ํ…Œ์ŠคํŠธ ์ฃผ๋„ ๊ฐœ๋ฐœ 1. ํ•ญ์ƒ ์‹คํŒจํ•˜๋Š” ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ 2. ํ…Œ์ŠคํŠธ๊ฐ€ ํ†ต๊ณผํ•˜๋Š” ํ”„๋กœ๋•์…˜ ์ฝ”๋“œ ์ž‘์„ฑ 3. ํ…Œ์ŠคํŠธ๊ฐ€ ํ†ต๊ณผํ•˜๋ฉด ํ”„๋กœ๋•์…˜ ์ฝ”๋“œ ๋ฆฌํŒฉํ† ๋ง ์ด๋ ‡๊ฒŒ ์„ธ ๋‹จ๊ณ„๋ฅผ ๋Œ์•„๊ฐ€๋ฉด์„œ ๊ฐœ๋ฐœํ•˜๋Š” ๊ณผ์ •์„ ๊ฑฐ์นœ๋‹ค. ๋‹จ์œ„ํ…Œ์ŠคํŠธ - ๊ธฐ๋Šฅ ๋‹จ์œ„์˜ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ - ํ•„์š”์„ฑ ๊ฐœ๋ฐœ ๋‹จ๊ณ„ ์ดˆ๊ธฐ์— ๋ฌธ์ œ ๋ฐœ๊ฒฌํ•˜๋„๋ก ๋„์™€์คŒ ์ถ”ํ›„ ์ฝ”๋“œ ๋ฆฌํŒฉํ† ๋ง, ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์—…๊ทธ๋ ˆ์ด๋“œ ๋“ฑ์—์„œ ๊ธฐ์กด ๊ธฐ๋Šฅ์˜ ๋™์ž‘์„ ํ™•์ธ ๊ฐ€๋Šฅ ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ๋ถˆํ™•์‹ค์„ฑ ๊ฐ์†Œ์‹œํ‚ด ์‹œ์Šคํ…œ์— ๋Œ€ํ•œ ์‹ค์ œ ๋ฌธ์„œ๋กœ ์ œ๊ณต ๊ฐ€๋Šฅ - ์ž๋ฐ”์—์„œ๋Š” JUnit์ด๋ผ๋Š” ํ…Œ์ŠคํŠธ ํ”„๋ ˆ์ž„์›Œํฌ๊ฐ€ ์‚ฌ์šฉ๋จ Controller ์ž‘์„ฑ ์ผ๋ฐ˜์ ์œผ๋กœ ํŒจํ‚ค์ง€๋ช…์€ ์›น ์‚ฌ์ดํŠธ ์ฃผ์†Œ์˜ ์—ญ์ˆœ์œผ๋กœ ์„ค์ • ๋ฉ”์ธ ํด๋ž˜์Šค package com.oli.. 2022. 6. 13.
1์žฅ: ์ธํ…”๋ฆฌ์ œ์ด ์‚ฌ์šฉํ•˜๊ธฐ (์ˆ˜์ •์ค‘) Table of Contents ์ธํ…”๋ฆฌ์ œ์ด ์†Œ๊ฐœ ๋ฐ ์„ค์น˜ ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ Gradle ํ”„๋กœ์ ํŠธ -> Spring Boot ํ”„๋กœ์ ํŠธ Git, Github ์—ฐ๋™ํ•˜๊ธฐ 2022. 6. 13.
Spring Boot์™€ Spring Security ํ”„๋กœ์ ํŠธ์— Swagger ์ ์šฉํ•˜๊ธฐ ์ด๊ธ€์˜ ๋ชฉ์ ์€ ํ”„๋กœ์ ํŠธ API ๊ฐœ๋ฐœ์„ ์–ด๋А์ •๋„ ๋งˆ์น˜๊ณ  Swagger๋ฅผ ์ ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ •๋ฆฌํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ์ ์šฉํ•˜๊ธฐ์— ์•ž์„œ ์ด ํ”„๋กœ์ ํŠธ๋Š” Spring Boot 2.6.2์™€ Spring Security๊ฐ€ ์ ์šฉ๋˜์—ˆ๋‹ค. 1. build.gradle์— ์˜์กด์„ฑ ์ถ”๊ฐ€ //for Swagger implementation group: 'io.springfox', name: 'springfox-swagger2', version: '2.9.2' implementation group: 'io.springfox', name: 'springfox-swagger-ui', version: '2.9.2' 2. SwaggerConfig ํด๋ž˜์Šค ์ƒ์„ฑ config ํŒจํ‚ค์ง€ ๋‚ด์— SwaggerConfig ํด๋ž˜์Šค๋ฅผ ์ƒ์„ฑํ•ด์ค€ ๋’ค ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ฝ”๋“œ๋ฅผ.. 2022. 6. 10.
[Spring Security] JWT Tutorial (5) ํšŒ์›๊ฐ€์ž…, ๊ถŒํ•œ ๊ฒ€์ฆ SecurityUtil ํด๋ž˜์Šค ์ƒ์„ฑ package com.oliviarla.tutorial.util; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.security.core.Authentication; import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.security.core.userdetails.UserDetails; import java.util.Optional; public class SecurityUtil { private static final Logger logger.. 2022. 4. 28.
[Spring Security] JWT Tutorial (4) Repository ์ƒ์„ฑ, ๋กœ๊ทธ์ธ DTO ๊ณ„์ธต ์ƒ์„ฑ LoginDto package com.oliviarla.tutorial.dto; import lombok.*; import javax.validation.constraints.NotNull; import javax.validation.constraints.Size; @Getter @Setter @Builder @AllArgsConstructor @NoArgsConstructor public class LoginDto { @NotNull @Size(min = 3, max = 50) private String username; @NotNull @Size(min = 3, max = 100) private String password; } TokenDto package com.oliviarla.. 2022. 4. 28.
[Spring Security] JWT Tutorial (3) JWT ์ฝ”๋“œ, Security ์„ค์ • ์ถ”๊ฐ€ application.properties jwt.header=Authorization jwt.secret=4oCYb2xpdmlhcmxhLXNwcmluZy1ib290LWp3dC10dXRvcmlhbC1zZWNyZXQtb2xpdmlhcmxhLXNwcmluZy1ib290LWp3dC10dXRvcmlhbC1zZWNyZXTigJkK jwt.token-validity-in-seconds=86400 secret ํ•ญ๋ชฉ์€ ํ„ฐ๋ฏธ๋„ ๋ช…๋ น์–ด๋กœ secret key๋ฅผ base64๋กœ ์ธ์ฝ”๋”ฉํ•ด ์ฑ„์›Œ๋„ฃ์Œ echo ‘silvernine-tech-spring-boot-jwt-tutorial-secret-silvernine-tech-spring-boot-jwt-tutorial-secret’|base64 build.gradle compileOn.. 2022. 4. 28.