์ „์ฒด ๊ธ€ 35

[Spring Boot] AbstractRoutingDataSource

1. AbstractRoutingDataSource๋ž€?AbstractRoutingDataSource๋Š” Spring Framework์—์„œ ์ œ๊ณตํ•˜๋Š” ์œ ์šฉํ•œ ํด๋ž˜์Šค ์ค‘ ํ•˜๋‚˜๋กœ, ๋‹ค์ค‘ ๋ฐ์ดํ„ฐ ์†Œ์Šค ํ™˜๊ฒฝ์—์„œ ๋Ÿฐํƒ€์ž„์— ๋ฐ์ดํ„ฐ ์†Œ์Šค๋ฅผ ๋™์ ์œผ๋กœ ์„ ํƒํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ค๋‹ˆ๋‹ค. Spring์—์„œ ๋ฐ์ดํ„ฐ ์†Œ์Šค๋ฅผ ๋™์ ์œผ๋กœ ์„ ํƒํ•ด์•ผ ํ•˜๋Š” ์ƒํ™ฉ์ด ์ข…์ข… ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ํ•˜๋‚˜์˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์—ฌ๋Ÿฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค(MySQL, Oracle ๋“ฑ)๋ฅผ ๋‹ค๋ฃจ๊ฑฐ๋‚˜, ๋ฉ€ํ‹ฐ ํ…Œ๋„ŒํŠธ ํ™˜๊ฒฝ์—์„œ ํ…Œ๋„ŒํŠธ๋ณ„๋กœ ์„œ๋กœ ๋‹ค๋ฅธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์ด์— ํ•ด๋‹นํ•ฉ๋‹ˆ๋‹ค. AbstractRoutingDataSource๋Š” ์ด๋Ÿฌํ•œ ์š”๊ตฌ์‚ฌํ•ญ์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์ œ๊ณต๋˜๋Š” ์ถ”์ƒ ํด๋ž˜์Šค์ž…๋‹ˆ๋‹ค.AbstractRoutingDataSource๋Š” ๋‹ค์Œ ๋‘ ๊ฐ€์ง€ ์ฃผ์š” ๊ตฌ์„ฑ ์š”์†Œ..

[Spring Boot] MyBatis์˜ SqlSessionFactory์™€ SqlSessionTemplate

๐Ÿš€ SqlSessionFactory๋ž€?SqlSessionFactory๋Š” SqlSession์„ ์ƒ์„ฑํ•˜๋Š” ๊ณต์žฅ์ž…๋‹ˆ๋‹ค.์—ญํ• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ์ƒํ˜ธ์ž‘์šฉํ•˜๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•œ SqlSession ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„ค์ • ์ •๋ณด(์˜ˆ: JDBC URL, ์‚ฌ์šฉ์ž ์ด๋ฆ„, ๋น„๋ฐ€๋ฒˆํ˜ธ)๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ SqlSession์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.ํŠน์ง•๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๊ฒฐ: SqlSessionFactory๋ฅผ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๊ฒฐ๊ณผ SQL ์‹คํ–‰์„ ๋‹ด๋‹นํ•  SqlSession์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.์ˆ˜๋™ ๊ด€๋ฆฌ: ๊ฐœ๋ฐœ์ž๊ฐ€ ์ง์ ‘ SqlSession์„ ์—ด๊ณ  ๋‹ซ์•„์•ผ ํ•˜๋ฉฐ, ํŠธ๋žœ์žญ์…˜๋„ ๋ช…์‹œ์ ์œผ๋กœ ๊ด€๋ฆฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.์‚ฌ์šฉ ์˜ˆ์‹œ123InputStream inputStream = Resources.getResourceAsStream("mybatis-co..

[React.js] React ์ƒํƒœ ๋Œ์–ด์˜ฌ๋ฆฌ๊ธฐ (Lifting State Up)

React ์ƒํƒœ ๋Œ์–ด์˜ฌ๋ฆฌ๊ธฐ (Lifting State Up)๋ž€ ๋ฌด์—‡์ธ๊ฐ€?React์—์„œ ์ปดํฌ๋„ŒํŠธ ๊ฐ„ ์ƒํƒœ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๊ฒƒ์€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„ค๊ณ„์˜ ํ•ต์‹ฌ ์š”์†Œ์ž…๋‹ˆ๋‹ค. ์ปดํฌ๋„ŒํŠธ๊ฐ€ ์„œ๋กœ ๋…๋ฆฝ์ ์œผ๋กœ ๋™์ž‘ํ•˜๋ฉด์„œ๋„ ๋ฐ์ดํ„ฐ๊ฐ€ ํ•„์š”ํ•  ๋•Œ ์–ด๋–ป๊ฒŒ ํšจ์œจ์ ์œผ๋กœ ๊ตํ™˜ํ•  ์ˆ˜ ์žˆ์„๊นŒ์š”? ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด "์ƒํƒœ ๋Œ์–ด์˜ฌ๋ฆฌ๊ธฐ (Lifting State Up)"๋ผ๋Š” ํŒจํ„ด์ด ์ž์ฃผ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.๐Ÿš€ ์ƒํƒœ ๋Œ์–ด์˜ฌ๋ฆฌ๊ธฐ์˜ ๊ฐœ๋…์ƒํƒœ ๋Œ์–ด์˜ฌ๋ฆฌ๊ธฐ๋ž€ React์—์„œ ๋‘ ๊ฐœ ์ด์ƒ์˜ ์ปดํฌ๋„ŒํŠธ๊ฐ€ ๋™์ผํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ํ•„์š”๋กœ ํ•  ๋•Œ, ๊ทธ ๋ฐ์ดํ„ฐ๋ฅผ ์ตœ์ƒ์œ„ ๊ณตํ†ต ์กฐ์ƒ (Common Ancestor) ์ปดํฌ๋„ŒํŠธ๋กœ ์ด๋™์‹œํ‚ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์ด๋กœ ์ธํ•ด ํ•˜์œ„ ์ปดํฌ๋„ŒํŠธ๋Š” props๋ฅผ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ๊ณต์œ ํ•˜๊ณ , ์ตœ์ƒ์œ„ ์ปดํฌ๋„ŒํŠธ๋Š” ์ƒํƒœ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ์—ญํ• ์„ ๋งก์Šต๋‹ˆ๋‹ค.๐Ÿš€ ์™œ ์ƒํƒœ๋ฅผ ๋Œ์–ด์˜ฌ๋ ค..

Framework/React.js 2024.12.25

[SQL] Oracle ๊ณ„์ธตํ˜• ์งˆ์˜ (START WITH, CONNECT BY, ORDER SIBLINGS BY, SYS_CONNECT_BY_PATH)

๐Ÿš€ ๊ณ„์ธตํ˜• ์งˆ์˜ (START WITH, CONNECT BY)๊ณ„์ธตํ˜• ์งˆ์˜๋ฅผ ์ด์šฉํ•ด EMP ํ…Œ์ด๋ธ”์—์„œ ์‚ฌ์›๊ฐ„์˜ ์„œ์—ด์„ ์ถœ๋ ฅํ•œ๋‹ค.START WITH์™€ CONNECT BY ์ ˆ์„ ์ด์šฉํ•˜๋ฉด LEVEL์„ ์ถœ๋ ฅํ•  ์ˆ˜ ์žˆ๋‹ค.START WITH ์ ˆ์€ ๋ฃจํŠธ๋…ธ๋“œ๋ฅผ ์ง€์ • CONNECT BY ์ ˆ์€ ๋ถ€๋ชจ๋…ธ๋“œ์™€ ์ž์‹๋…ธ๋“œ ๊ฐ„์˜ ๊ด€๊ณ„๋ฅผ ์ง€์ •์šฐ์„  EMP ํ…Œ์ด๋ธ”์˜ ์ „์ฒด ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋ฉด ์•„๋ž˜์™€ ๊ฐ™๋‹ค.์œ„์™€ ๊ฐ™์€ ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ์„๋•Œ EMPNO์™€ MGR๋ฅผ ๋ณด๋ฉด ์ƒํ•˜๊ด€๊ณ„๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. MGR๊ฐ€ ์ƒ์œ„์ด๋‹ค. ์ƒํ•˜๊ด€๊ณ„๋ฅผ ๊ฐ„๋‹จํžˆ ๋‚˜ํƒ€๋‚ด๋ฉด ์•„๋ž˜ ๊ทธ๋ฆผ๊ณผ ๊ฐ™๋‹ค.ํ•˜๋‚˜ ์˜ˆ๋ฅผ ๋“ค์ž๋ฉด KING์€ ๋ฃจํŠธ์ด๊ณ  BLAKE, CLARK, JONES์˜ ๊ฒฝ์šฐ KING์˜ ํ•˜์œ„ ๊ด€๊ณ„๋‹ค. JONES๋ฅผ ๋ณด๋ฉด SCOTT๊ณผ FORD๊ฐ€ ํ•˜์œ„ ๊ด€๊ณ„์ด๋ฉฐ FORD๋ฅผ ๋ณด๋ฉด SMITH๊ฐ€ ํ•˜์œ„ ๊ด€๊ณ„์ธ..

[Spring Boot] Spring AOP๋ฅผ ํ™œ์šฉํ•œ Logging

๊ธฐ๋ณธ์ ์œผ๋กœ ํ•จ์ˆ˜ ์‹œ์ž‘ ์ „, ์ข…๋ฃŒ ํ›„, ์—๋Ÿฌ ๋ฐœ์ƒ ํ›„ ์‹œ์ ์„ ๊ธฐ์ค€์œผ๋กœ ์ž๋™์œผ๋กœ ๋กœ๊ทธ๋ฅผ ์ƒ์„ฑํ•˜๋„๋ก Aspect๋ฅผ ๋งŒ๋“ค์–ด์„œ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. execution() ์•ˆ์—์„œ ๋กœ๊ทธ๋ฅผ ์ž๋™์œผ๋กœ ๋‚จ๊ธธ ๋ฒ”์œ„๋ฅผ ์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋กœ๊น…์ด ํ•„์š”ํ•˜์ง€ ์•Š์€ ํ•จ์ˆ˜๋“ค์€ @NoLogging ์–ด๋…ธํ…Œ์ด์…˜์„ ๋งŒ๋“ค์–ด์„œ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. (๋ฏผ๊ฐ ์ •๋ณด๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๊ฑฐ๋‚˜ ๋กœ๊น…์ด ํ•„์š”ํ•˜์ง€ ์•Š๋Š” ํ•จ์ˆ˜ ๋“ฑ) Advice ์‹คํ–‰ ์‹œ์  ์„ค๋ช… @Before ํ•จ์ˆ˜ ์‹œ์ž‘ ์ „ ํ•จ์ˆ˜๊ฐ€ ์†ํ•œ ํด๋ž˜์Šค ์ด๋ฆ„, ํ•จ์ˆ˜ ์ด๋ฆ„, ํ•จ์ˆ˜๋กœ ๋“ค์–ด์˜จ ํŒŒ๋ผ๋ฏธํ„ฐ(args) ๋“ฑ์„ ๋กœ๊ทธ๋กœ ๋‚จ๊น๋‹ˆ๋‹ค. @AfterReturning ํ•จ์ˆ˜ ์‹œ์ž‘ ํ›„ ํ•จ์ˆ˜๊ฐ€ ์†ํ•œ ํด๋ž˜์Šค ์ด๋ฆ„, ํ•จ์ˆ˜ ์ด๋ฆ„, ํ•จ์ˆ˜๊ฐ€ ๋ฐ˜ํ™˜ํ•œ ๊ฐ’(result) ๋“ฑ์„ ๋กœ๊ทธ๋กœ ๋‚จ๊น๋‹ˆ๋‹ค. @AfterThrowing ์—๋Ÿฌ ๋ฐœ์ƒ ํ›„ ํ•จ์ˆ˜๊ฐ€ ์†..

[Spring Boot] ์ž์ฃผ ์“ฐ์ด๋Š” Spring Boot Annotation (Controller, Service, Model)

๐Ÿš€ Controller Annotation Annotation ์˜์—ญ Description @RestController Class Spring์˜ ์ปดํฌ๋„ŒํŠธ ์Šค์บ” ๋Œ€์ƒ์ด ๋˜๋„๋ก ํ•˜๊ณ  HTTP ์š”์ฒญ๊ณผ ์‘๋‹ต์„ ์ž๋™์œผ๋กœ ๋งคํ•‘๋˜๋„๋ก ํ•˜๋Š” ๋“ฑ Spring์—์„œ Controller๋กœ ๋™์ž‘ํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ธฐ๋ณธ์ ์ธ ๋™์ž‘์„ ๋‹ด๊ณ ์žˆ๋Š” ์–ด๋…ธํ…Œ์ด์…˜์ž…๋‹ˆ๋‹ค. @Controller์™€ @RequestBody๊ฐ€ ํ•ฉ์ณ์ง„ ์–ด๋…ธํ…Œ์ด์…˜์œผ๋กœ RESTful ์›น ์„œ๋น„์Šค์—์„œ ์ฃผ๋กœ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. @RequiredArgsConstructor Class Spring 4.3๋ถ€ํ„ฐ๋Š” @Autowired๋ฅผ ํ†ตํ•œ ์˜์กด์„ฑ ์ฃผ์ž…๋ณด๋‹ค ์ƒ์„ฑ์ž๋ฅผ ํ†ตํ•œ ์˜์กด์„ฑ ์ฃผ์ž…์„ ๊ถŒ์žฅํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. @RequiredArgsConstructor๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ƒ์„ฑ์ž ์ฝ”๋“œ๋ฅผ ๋”ฐ๋กœ ์ ์ง€ ์•Š์•„๋„ ๋ฉ๋‹ˆ๋‹ค. ..

[Spring Boot] @ExceptionHandler, @ControllerAdvice (Exception ๊ณตํ†ต ์ฒ˜๋ฆฌ)

๐Ÿš€ Exception ๊ณตํ†ต ์ฒ˜๋ฆฌ ๋ณดํ†ต ์˜ˆ์™ธ๋Š” 3๊ฐ€์ง€ ๋ฐฉ๋ฒ•์œผ๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค. ์˜ˆ์™ธ ๋ณต๊ตฌ : ์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ์˜ˆ์™ธ ์ƒํ™ฉ์— ์•Œ๋งž๊ฒŒ ์ฒ˜๋ฆฌํ•˜์—ฌ ๋ณต๊ตฌํ•œ๋‹ค. (try, catch) ์˜ˆ์™ธ ํšŒํ”ผ : ์˜ˆ์™ธ๋ฅผ ์ง์ ‘ ์ฒ˜๋ฆฌํ•˜์ง€ ์•Š๊ณ  ์˜ˆ์™ธ๋ฅผ ์ƒ์œ„ ๋ฉ”์†Œ๋“œ์— ์œ„์ž„ํ•œ๋‹ค. (throw) ์˜ˆ์™ธ ์ „ํ™˜ : ์˜ˆ์™ธ๋ฅผ ์œ„์ž„ํ•˜๋˜ ๋ฐœ์ƒํ•œ ์˜ˆ์™ธ๋ฅผ ๊ทธ๋Œ€๋กœ ์œ„์ž„ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹Œ ์ ์ ˆํ•œ ์˜ˆ์™ธ๋กœ ์ „ํ™˜ํ•˜์—ฌ ์œ„์ž„ํ•œ๋‹ค. (restTemplate.doExecute) ์ด๋•Œ ์˜ˆ์™ธ ๋ณต๊ตฌ์— ๋Œ€ํ•œ ๋ฒ”์œ„๋Š” ์•„๋ž˜์™€ ๊ฐ™๋‹ค. ๋ฉ”์†Œ๋“œ ์˜์—ญ : ๋ฉ”์†Œ๋“œ ์˜์—ญ์€ ์ข…์†๋œ ๋ณต๊ตฌ ๊ธฐ๋Šฅ์œผ๋กœ ๋‹จ์ˆœํžˆ try, catch ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค. ํด๋ž˜์Šค ์˜์—ญ : ํด๋ž˜์Šค ๋‚ด ๊ณตํ†ต ์˜ˆ์™ธ ๋ณต๊ตฌ๋Š” @ExceptionHandler๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค. ์ „์—ญ ์˜์—ญ : ์—ฌ๋Ÿฌ ํด๋ž˜์Šค์˜ ๊ณตํ†ต ์˜ˆ์™ธ ๋ณต๊ตฌ๋Š” @ControllerA..

[Spring Boot] Filter, Interceptor, AOP ์ฐจ์ด ๋ฐ ์ •๋ฆฌ

Spring Boot๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๊ณตํ†ต ๊ธฐ๋Šฅ์„ ๊ฐœ๋ฐœํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๋Š”๋ฐ ๋งค์šฐ ํšจ๊ณผ์ ์ธ ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค. ์˜ˆ๋ฅผ๋“ค์–ด ๋กœ๊ทธ์ธ ๊ด€๋ จ (์„ธ์…˜ ์ฒดํฌ) ์ฒ˜๋ฆฌ, ๊ถŒํ•œ ์ฒดํฌ, XSS(Cross Site Script) ๋ฐฉ์–ด, PC์™€ ๋ชจ๋ฐ”์ผ์›น์˜ ๋ถ„๊ธฐ์ฒ˜๋ฆฌ, ๋กœ๊ทธ, ํŽ˜์ด์ง€ ์ธ์ฝ”๋”ฉ ๋ณ€ํ™ฉ ๋“ฑ์ด ์žˆ๋‹ค. ์ด๋Ÿฌํ•œ ๊ธฐ๋Šฅ ์ค‘์—๋Š” Filter, Interceptor, Aspect-Oriented Programming (AOP) ๋“ฑ์ด ์žˆ๋‹ค. ๊ฐ๊ฐ์˜ ๊ธฐ๋Šฅ์€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์š”์ฒญ ์ฒ˜๋ฆฌ ๊ณผ์ •์—์„œ ์•ž, ์ค‘๊ฐ„, ๋’ค์— ์ถ”๊ฐ€ํ•˜์—ฌ ํŠน์ •ํ•œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋„๋ก ํ•ด์ฃผ๋ฉฐ, ์ฝ”๋“œ์˜ ์žฌ์‚ฌ์šฉ์„ฑ๊ณผ ๋ชจ๋“ˆ์„ฑ์„ ๋†’์—ฌ์ค€๋‹ค. (๋ชจ๋“  ํŽ˜์ด์ง€๋งˆ๋‹ค ๊ณตํ†ต ์—…๋ฌด์— ๊ด€๋ จ๋œ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋ฉด ์ค‘๋ณต๋œ ์ฝ”๋“œ๊ฐ€ ๋งŽ์•„์ง€๊ณ  ์„œ๋ฒ„์— ๋ถ€ํ•˜๋ฅผ ์ค„ ์ˆ˜๋„ ์žˆ์œผ๋ฉฐ ์†Œ์Šค ๊ด€๋ฆฌ๋„ ์–ด๋ ต๋‹ค.) Intercep..

[Linux] SSH pem key ์ƒ์„ฑ (EC2์— SSH ์—ฐ๊ฒฐํ•˜๊ธฐ)

AWS EC2์— ํŒŒ์ผ์„ ์—…๋กœ๋“œํ•ด์•ผํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์ƒ๊ฒผ๋‹ค. EC2 ํ‚คํŽ˜์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํด๋ผ์ด์–ธํŠธ์—์„œ ์ ‘๊ทผํ•  ์ˆ˜๋„ ์žˆ์ง€๋งŒ EC2 ์ธ์Šคํ„ด์Šค ํ‚คํŽ˜์–ด๋Š” ๊ด€๋ฆฌ์ž๊ฐ€ ๋”ฐ๋กœ ์žˆ๊ณ  ๊ถŒํ•œ์ด ์—†์–ด ์ƒ์„ฑ์ด ์–ด๋ ต๋‹ค. ์ด๋Ÿฐ ๊ฒฝ์šฐ ํด๋ผ์–ธํŠธ์—์„œ ์ƒ์„ฑํ•œ Public key๋ฅผ ์ด์šฉํ•˜์—ฌ EC2์— SSH ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•˜๋‹ค. ๋ฐฉ๋ฒ•์€ ์•„๋ž˜์™€ ๊ฐ™๋‹ค. 1. Client์—์„œ SSH ๋กœ๊ทธ์ธ์„ ์œ„ํ•œ RSA(๊ณต๊ฐœํ‚ค-๊ฐœ์ธํ‚ค)๋ฅผ ์ƒ์„ฑํ•œ๋‹ค. 2. Server์— authorized_keys ํŒŒ์ผ์„ ์ƒ์„ฑํ•œ๋‹ค. 3. Client์—์„œ Public key๋ฅผ ๋ณต์‚ฌํ•œ๋‹ค. 4. Server์˜ authorized_keys์— ๋ถ™์—ฌ ๋„ฃ๋Š”๋‹ค. 5. Client์˜ Private Key๋ฅผ .pem ํ™•์žฅ์ž๋กœ ๋ณ€๊ฒฝํ•œ๋‹ค. 6. Client์—์„œ key ํ…Œ์ŠคํŠธ๋ฅผ ์ง„ํ–‰ํ•˜์—ฌ ์—ฐ๊ฒฐ์„ ํ™•์ธํ•œ๋‹ค. ๊ตฌ์ฒด์ ์ธ ๋ฐฉ..

[Spring Boot] ์ •์  ํŒŒ์ผ ๋กœ๋“œ ์‹œ URL์— Jsessionid ๋ถ™๋Š” ๊ฒฝ์šฐ ํ•ด๊ฒฐ

ํ”„๋กœ์ ํŠธ์—์„œ ๋ฐฐํฌ๋œ QA ํ™˜๊ฒฝ์˜ ๋กœ๊ทธ์ธ ํ™”๋ฉด์ด ์ตœ์ดˆ ๋กœ๋”ฉ ์‹œ์— ํ™”๋ฉด ๊นจ์ง ํ˜„์ƒ์ด ๋ฐœ์ƒํ–ˆ๋‹ค. ์ƒˆ๋กœ๊ณ ์นจ์ด๋‚˜ ์žฌ์ ‘์†ํ•  ๊ฒฝ์šฐ์—๋Š” ์ •์ƒ์ ์œผ๋กœ ๋กœ๋”ฉ์ด ๋˜๋Š” ์ด์ƒํ•œ ํ˜„์ƒ์ด ์ง€์†๋๋‹ค. 1. ์›์ธ ํŒŒ์•… ๐Ÿ˜ต ์ฒ˜์Œ์—๋Š” css์˜ ๊ฒฝ๋กœ๊ฐ€ ๋ฌธ์ œ๋ผ ํŒ๋‹จ๋˜์–ด ์ ˆ๋Œ€๊ฒฝ๋กœ๋กœ๋„ ๋ฐ”๊พธ๊ณ  '/'์„ ๋ถ™์—ฌ๋„ ๋ณด๋ฉฐ ์‹œ๋„ํ•ด๋ณด์•˜์œผ๋‚˜ ํ˜„์ƒ์€ ๋™์ผํ–ˆ๋‹ค. ํ•œ ์‹œ๊ฐ„๋™์•ˆ ์‚ฝ์งˆํ•œ ๋์— ์›์ธ์„ ํŒŒ์•…ํ–ˆ๋Š”๋ฐ, ๊ฐœ๋ฐœ์ž ๋„๊ตฌ (F12)๋กœ HTML์˜ Element๋ฅผ ๋ณด๋‹ˆ URL ๋’ค์— jsessionid๊ฐ€ ๋ถ™์–ด์žˆ์—ˆ๋‹ค!! ์ด๋Š” Tomcat ์„œ๋ฒ„์—์„œ Spring Framework์—์„œ ํƒœ๊ทธ๋ฅผ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ ์ตœ์ดˆ ํ˜ธ์ถœ์‹œ URL์— Jsessionid๊ฐ€ ๋ถ™์—ฌ์ง€๋Š” ํ˜„์ƒ ๋•Œ๋ฌธ์ด์˜€๋‹ค. ์ด๋Š” ๋ฒ„๊ทธ๊ฐ€ ์•„๋‹Œ ์˜๋„์ ์œผ๋กœ ์„ค๊ณ„๋œ ๊ฒƒ์ด๋‹ค. (Tymeleaf ํ…œํ”Œ๋ฆฟ ์—”์ง„์„ ์‚ฌ์šฉ์ค‘์ด์˜€๋‹ค) ๊ทธ๋Ÿผ ์™œ ์ด๋ ‡๊ฒŒ ..

๋ฐ˜์‘ํ˜•