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

๋ชฉ๋ก์Šคํ”„๋ง ๋ถ€ํŠธ (7)

JUINTINATION

Spring Security RoleHierarchy๋กœ ๊ณ„์ธต๊ถŒํ•œ ์„ค์ •ํ•˜๊ธฐ

์ด์ „ Board Clone ํ”„๋กœ์ ํŠธ์— Spring Security๋ฅผ ์ ์šฉํ•œ ๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ ๊ตฌํ˜„ํ•˜๊ธฐ์—์„œ ๊ฐ ์‚ฌ์šฉ์ž์˜ ์—ญํ• (Role)์— ๋”ฐ๋ผ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” URL์„ ๋‹ค๋ฅด๊ฒŒ ์„ค์ •ํ–ˆ์—ˆ๋‹ค. ์•„๋ž˜๋Š” ์ด๋ฅผ ๋ช…์‹œํ•œ SecurityConfig.java์˜ filterChain ๋ฉ”์„œ๋“œ์˜ ๋‚ด์šฉ์ด๋‹ค. Board Clone ํ”„๋กœ์ ํŠธ์— Spring Security๋ฅผ ํ™œ์šฉํ•œ ๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ ๊ตฌํ˜„ํ•˜๊ธฐํ”„๋กœ์ ํŠธ ์†Œ๊ฐœ๊ธฐ์กด์˜ ์ฝ”๋“œ๋กœ ๋ฐฐ์šฐ๋Š” ์Šคํ”„๋ง ๋ถ€ํŠธ ์›น ํ”„๋กœ์ ํŠธ Board Clone ํ”„๋กœ์ ํŠธ๋Š” ์˜ˆ์ „์— ์Šคํ”„๋ง ๊ณต๋ถ€๋ฅผ ์œ„ํ•ด ETRI์—์„œ ์—ฐ๊ตฌ์—ฐ์ˆ˜์ƒ์œผ๋กœ ๊ทผ๋ฌดํ•  ๋•Œ ๋Œ€์—ฌํ–ˆ๋˜ ์ฝ”๋“œ๋กœ ๋ฐฐ์šฐ๋Š” ์Šคํ”„๋ง ๋ถ€ํŠธ ์›น ํ”„๋กœjuintination.tistory.com@Beanpublic SecurityFilterChain filterChain(HttpSecurity ..

Java Spring Boot 2024. 8. 12. 18:14
Board Clone ํ”„๋กœ์ ํŠธ์— Spring Security๋ฅผ ํ™œ์šฉํ•œ ๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ ๊ตฌํ˜„ํ•˜๊ธฐ

ํ”„๋กœ์ ํŠธ ์†Œ๊ฐœ๊ธฐ์กด์˜ ์ฝ”๋“œ๋กœ ๋ฐฐ์šฐ๋Š” ์Šคํ”„๋ง ๋ถ€ํŠธ ์›น ํ”„๋กœ์ ํŠธ Board Clone ํ”„๋กœ์ ํŠธ๋Š” ์˜ˆ์ „์— ์Šคํ”„๋ง ๊ณต๋ถ€๋ฅผ ์œ„ํ•ด ETRI์—์„œ ์—ฐ๊ตฌ์—ฐ์ˆ˜์ƒ์œผ๋กœ ๊ทผ๋ฌดํ•  ๋•Œ ๋Œ€์—ฌํ–ˆ๋˜ ์ฝ”๋“œ๋กœ ๋ฐฐ์šฐ๋Š” ์Šคํ”„๋ง ๋ถ€ํŠธ ์›น ํ”„๋กœ์ ํŠธ ์ฑ…๊ณผ ํ•ด๋‹น ์ฝ”๋“œ๊ฐ€ ์ ํžŒ ๊นƒํ—ˆ๋ธŒ๋ฅผ ์ฐธ๊ณ ํ•˜์—ฌ ๊ฒŒ์‹œํŒ ํ”„๋กœ์ ํŠธ๋ฅผ ๋”ฐ๋ผ ์น˜๋ฉฐ ๋งŒ๋“  ํ”„๋กœ์ ํŠธ์ด๋‹ค. ์ด ํ”„๋กœ์ ํŠธ๋Š” ๊ฒŒ์‹œํŒ์˜ ํšŒ์›์ด ๊ธ€์„ ์“ฐ๊ฑฐ๋‚˜ ๋Œ“๊ธ€์„ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์ž„์‹œ๋กœ ๋งŒ๋“  ํšŒ์› ๋ฐ์ดํ„ฐ๋กœ๋งŒ ํ…Œ์ŠคํŠธ๋ฅผ ์ง„ํ–‰ํ•˜์˜€์œผ๋ฉฐ ํšŒ์›๊ฐ€์ž… ๋ฐ ๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ์ด ๊ตฌํ˜„๋˜์ง€ ์•Š์•„์„œ ์‹ค์ œ๋กœ ์‚ฌ์šฉ์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ๋ฌธ์ œ์ ์ด ์žˆ์—ˆ๋‹ค. ์Šคํ”„๋ง ๋ถ€ํŠธ ๋ฒ„์ „์ด ์˜ฌ๋ผ๊ฐ€๋ฉด์„œ ์Šคํ”„๋ง ์‹œํ๋ฆฌํ‹ฐ์— ๊ด€๋ จ๋œ ๋งŽ์€ ๊ธฐ๋Šฅ์ด deprecated๋˜๊ณ , ๋ฌธ๋ฒ•์ด ๋ฐ”๋€ ๊ฒฝ์šฐ๊ฐ€ ๋„ˆ๋ฌด ๋งŽ์•„์„œ ๋‹น์‹œ์— ํฌ๊ธฐํ•˜๊ณ  ๋„˜์–ด๊ฐ”์—ˆ๋Š”๋ฐ ์šฐ์—ฐํžˆ ๊ฐœ๋ฐœ์ž ์œ ๋ฏธ๋‹˜์˜ ์Šคํ”„๋ง ์‹œํ๋ฆฌํ‹ฐ ๊ด€๋ จ ์œ ํŠœ๋ธŒ ์žฌ์ƒ๋ชฉ๋ก..

Java Spring Boot 2024. 8. 10. 02:28
Postman์„ ํ™œ์šฉํ•œ API ๋ฌธ์„œ ๋งŒ๋“ค๊ธฐ

์ง€๋‚œ๋ฒˆ์— Swagger๋ฅผ ํ™œ์šฉํ•œ API Specification์— ๋Œ€ํ•œ ๊ธ€์„ ์ž‘์„ฑํ–ˆ์—ˆ๋‹ค. Swagger๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ„๋‹จํ•˜๊ฒŒ API ๋ช…์„ธ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ๋‚ด์šฉ์˜ ๊ธ€์ด์—ˆ๋Š”๋ฐ, ์ด๋Ÿฌํ•œ Swagger ๋ง๊ณ ๋„ ๋‹ค๋ฅธ ์—ฌ๋Ÿฌ ๋ฐฉ๋ฒ•์œผ๋กœ API ๋ฌธ์„œ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค๋Š” ์‚ฌ์‹ค์„ ์•Œ๊ฒŒ ๋˜์—ˆ๋‹ค. Swagger๋ฅผ ํ™œ์šฉํ•œ API SpecificationOpen API Document ๋ช…์„ธ ์ œ์•ˆ์Šคํ”„๋ง๋ถ€ํŠธ๋ฅผ ํ™œ์šฉํ•œ todo-api-server์˜ ๋‚ด์šฉ์„ ๊นƒํ—ˆ๋ธŒ์— ์˜ฌ๋ฆฌ๊ณ  ์–ผ๋งˆ ์ง€๋‚˜์ง€ ์•Š์•˜์„ ๋•Œ ๊ฐ‘์ž๊ธฐ ์•Œ๋ฆผ์ด ์™”๋‹ค. ์ค€ํ˜ธ ํ˜•์ด API ๋ช…์„ธ๋ฅผ ํ•˜๋ฉด ์ข‹๊ฒ ๋‹ค๊ณ  Issue๋ฅผ ๋‚จ๊ธด ๊ฒƒ์ด์—ˆ๋‹ค. ๊ทธ๋ž˜juintination.tistory.comPostman๋‚˜๋Š” Postman์„ ์ง€๊ธˆ๊นŒ์ง€ API ํ…Œ์ŠคํŠธ๋ฅผ ์ง„ํ–‰ํ•  ๋•Œ๋งŒ ์‚ฌ์šฉํ•ด์™”๋‹ค. ์ง€๋‚œ ์ŠคํผํŠธ ํ”„๋กœ์ ํŠธ์—์„œ ์ฒ˜์Œ ์‚ฌ..

StudyNote 2024. 7. 7. 15:38
Swagger๋ฅผ ํ™œ์šฉํ•œ API Specification

Open API Document ๋ช…์„ธ ์ œ์•ˆ์Šคํ”„๋ง๋ถ€ํŠธ๋ฅผ ํ™œ์šฉํ•œ todo-api-server์˜ ๋‚ด์šฉ์„ ๊นƒํ—ˆ๋ธŒ์— ์˜ฌ๋ฆฌ๊ณ  ์–ผ๋งˆ ์ง€๋‚˜์ง€ ์•Š์•˜์„ ๋•Œ ๊ฐ‘์ž๊ธฐ ์•Œ๋ฆผ์ด ์™”๋‹ค. ์ค€ํ˜ธ ํ˜•์ด API ๋ช…์„ธ๋ฅผ ํ•˜๋ฉด ์ข‹๊ฒ ๋‹ค๊ณ  Issue๋ฅผ ๋‚จ๊ธด ๊ฒƒ์ด์—ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๋‚˜๋Š” ์ง€๋‚œ ์ŠคํผํŠธ ํ”„๋กœ์ ํŠธ์—์„œ ์‚ฌ์šฉํ•œ ์ ์ด ์žˆ๋Š” Swagger๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ๋กœ ํ–ˆ๋‹ค. (์ƒค๋ผ์›ƒ ํˆฌ ์ค€ํ˜ธํ˜•) TODO API SERVER with ์Šคํ”„๋ง๋ถ€ํŠธ์ข…๊ฐ•์„ ํ•˜๊ณ  ์ด๋Ÿฐ์ €๋Ÿฐ ๋ฐ€๋ฆฐ ์ผ์„ ์ฒ˜๋ฆฌํ•˜๊ณ  ๋ณด๋‹ˆ ์–ด๋Š์ƒˆ 7์›”.. ๋‚ ์”จ๊ฐ€ ๊ฒฌ๋”œ ์ˆ˜ ์—†์„ ๋งŒํผ ๋”์›Œ์ง€๊ณ  ์ด๋Ÿฌ๋‹ค๊ฐ€ ๋งˆ์ง€๋ง‰ ๋ฐฉํ•™์„ ์•„๋ฌด๊ฒƒ๋„ ์•ˆ ํ•˜๊ณ  ์ข…์ผ ์œ ํŠœ๋ธŒ๋งŒ ๋ณด๋ฉด์„œ ๋ณด๋‚ผ ๊ฒƒ ๊ฐ™์•„์„œ ์˜ˆ์ „์— ์ž‘์„ฑํ–ˆjuintination.tistory.comSwaggerSwagger๋ž€ Restful API๋ฅผ ๋ฌธ์„œํ™”ํ•˜๊ณ , ์‚ฌ์šฉ์ž๊ฐ€ ์‰ฝ๊ฒŒ ํ…Œ์ŠคํŠธํ•˜๊ณ  ํ˜ธ์ถœํ• ..

StudyNote 2024. 7. 1. 23:49
TODO API SERVER with ์Šคํ”„๋ง๋ถ€ํŠธ

์ข…๊ฐ•์„ ํ•˜๊ณ  ์ด๋Ÿฐ์ €๋Ÿฐ ๋ฐ€๋ฆฐ ์ผ์„ ์ฒ˜๋ฆฌํ•˜๊ณ  ๋ณด๋‹ˆ ์–ด๋Š์ƒˆ 7์›”.. ๋‚ ์”จ๊ฐ€ ๊ฒฌ๋”œ ์ˆ˜ ์—†์„ ๋งŒํผ ๋”์›Œ์ง€๊ณ  ์ด๋Ÿฌ๋‹ค๊ฐ€ ๋งˆ์ง€๋ง‰ ๋ฐฉํ•™์„ ์•„๋ฌด๊ฒƒ๋„ ์•ˆ ํ•˜๊ณ  ์ข…์ผ ์œ ํŠœ๋ธŒ๋งŒ ๋ณด๋ฉด์„œ ๋ณด๋‚ผ ๊ฒƒ ๊ฐ™์•„์„œ ์˜ˆ์ „์— ์ž‘์„ฑํ–ˆ์—ˆ๋˜ todo-api-server์˜ ๋‚ด์šฉ์„ ์Šคํ”„๋ง ๋ณต์Šต ๊ฒธ ์ž‘์„ฑํ•ด ๋ณด๊ณ ์ž ํ•œ๋‹ค.์ง€๋‚œ ํ•™๊ธฐ์— ์ธํ”„๋Ÿฐ ๊ฐ•์˜(์ฝ”๋“œ๋กœ ๋ฐฐ์šฐ๋Š” React with ์Šคํ”„๋ง๋ถ€ํ„ฐ API์„œ๋ฒ„)๋ฅผ ๋ณด๋ฉด์„œ ์ž‘์„ฑํ•˜์˜€์œผ๋ฉฐ, ์›๋ณธ ์†Œ์Šค์ฝ”๋“œ๋Š” ๋‹ค์Œ ๋งํฌ์— ๊ณต๊ฐœ๋˜์–ด ์žˆ๋‹ค. ์ฝ”๋“œ๋กœ ๋ฐฐ์šฐ๋Š” React with ์Šคํ”„๋ง๋ถ€ํŠธ API์„œ๋ฒ„ ๊ฐ•์˜ | ๊ตฌ๋ฉ๊ฐ€๊ฒŒ์ฝ”๋”ฉ๋‹จ - ์ธํ”„๋Ÿฐ๊ตฌ๋ฉ๊ฐ€๊ฒŒ์ฝ”๋”ฉ๋‹จ | ์Šคํ”„๋ง ๋ถ€ํŠธ(Spring Boot ver3.1(3.2 ํ˜ธํ™˜))๋กœ ์ œ์ž‘๋˜๋Š” API ์„œ๋ฒ„์™€ ๋ฆฌ์•กํŠธ์˜ ์—ฐ๋™ ํ”„๋กœ์ ํŠธ ์™„์„ฑํ•˜๊ธฐ! ํฌํŠธํด๋ฆฌ์˜ค ์ž‘์„ฑ ๋ถ€ํŠธ์บ ํ”„ ๊ณผ์ • ์ „์ฒด๋ฅผ ๊ฐ•์˜๋กœ ์ œ์ž‘, '๊ตฌ์Šฌ์ด ์„œ ๋ง..

Java Spring Boot 2024. 7. 1. 19:39
์ฝ”๋“œ๋กœ ๋ฐฐ์šฐ๋Š” ์Šคํ”„๋ง ๋ถ€ํŠธ ์›น ํ”„๋กœ์ ํŠธ Board Clone

์ง€๋‚œ Mac OS ์ž๋ฐ” ๋ฒ„์ „ ์—ฌ๋Ÿฌ ๊ฐœ ๊ด€๋ฆฌํ•˜๊ธฐ ๊ธ€์—์„œ ์ž ๊น ์–ธ๊ธ‰ํ–ˆ๋“ฏ์ด ์Šคํ”„๋ง์„ ์“ธ ์ผ์ด ์ƒ๊ฒจ์„œ jdk 17 ๋ฒ„์ „์„ ์„ค์น˜ํ–ˆ์—ˆ๋‹ค. ์ดํ›„์— ETRI์—์„œ ๋Œ€์—ฌํ•œ ์ฝ”๋“œ๋กœ ๋ฐฐ์šฐ๋Š” ์Šคํ”„๋ง ๋ถ€ํŠธ ์›น ํ”„๋กœ์ ํŠธ ์ฑ…๊ณผ ํ•ด๋‹น ์ฝ”๋“œ๊ฐ€ ์ ํžŒ ๊นƒํ—ˆ๋ธŒ๋ฅผ ์ฐธ๊ณ ํ•˜์—ฌ ๊ฒŒ์‹œํŒ ํ”„๋กœ์ ํŠธ๋ฅผ ๋”ฐ๋ผ ์น˜๋ฉด์„œ ์Šคํ”„๋ง ๊ณต๋ถ€๋ฅผ ์‹œ์ž‘ํ–ˆ๋‹ค. ๋ฌผ๋ก  ์ฑ…์˜ ๋ฒ„์ „๊ณผ ์ง€๊ธˆ ๋ฒ„์ „์ด ๋งŽ์ด ๋‹ฌ๋ผ์ ธ์„œ ์˜ค๋ฅ˜๊ฐ€ ๋งŽ์ด ๋ฐœ์ƒํ–ˆ๊ณ  ๊ด€๋ จ ๋‚ด์šฉ์€ ๋„ค์ด๋ฒ„ ์นดํŽ˜์˜ QnA ๊ฒŒ์‹œํŒ๋„ ์ฐธ๊ณ ํ–ˆ๋‹ค. ์ด์ œ ๊ทธ ๋‚ด์šฉ์„ ์ฐจ๊ทผ์ฐจ๊ทผ ๋”ฐ๋ผ๊ฐ€๋ณด์ž. ๊ตฌ๋ฉ๊ฐ€๊ฒŒ์ฝ”๋”ฉ๋‹จ : ๋„ค์ด๋ฒ„ ์นดํŽ˜์•ˆ๋…•ํ•˜์„ธ์š”? ๊ตฌ๋ฉ๊ฐ€๊ฒŒ ์ฝ”๋”ฉ๋‹จ์˜ ํ™œ๋™์„ ์œ„ํ•œ ์นดํŽ˜์ž…๋‹ˆ๋‹ค.cafe.naver.comํ”„๋กœ์ ํŠธ ์ƒ์„ฑstart.spring.io์—์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด Thymeleaf, Lombok, Spring Data JPA, Spring Web, Spring B..

Java Spring Boot 2024. 3. 10. 23:09