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

react38

[Spring, React] Keycloak์ด ์ œ๊ณตํ•˜๋Š” ๊ธฐ๋Šฅ๊ณผ ์‚ฌ์šฉ ์ „ ์•Œ์•„์•ผํ•  ๊ฐœ๋… ์ •๋ฆฌ ๊ตฌ์ธ๊ตฌ์ง์„ ์‚ดํŽด๋ณด๋ฉด,๋ณดํŽธ์ ์œผ๋กœ ๊ฒฝ๋ ฅ์ง ๊ฐœ๋ฐœ์ž์—๊ฒŒ ์š”๊ตฌ๋˜๋Š” ๊ฒƒ๋“ค์ด ์žˆ๋‹ค.๊ทธ๋ฆฌ๊ณ  ๊ทธ ์ค‘ ๊ณตํ†ต์ ์œผ๋กœ ๋“ฑ์žฅํ•˜๋Š”๊ฒŒ Keycloak์ด์—ˆ๋‹ค.๋„๋Œ€์ฒด Keycloak์ด ๋ญ๊ธธ๋ž˜ ๋งŽ์€ ๊ณณ์—์„œ ์‚ฌ์šฉํ•˜๊ธธ ์›ํ•˜๋Š”๊ฑธ๊นŒ?Keycloak์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ž. 1. Keycloak์˜ ๊ธฐ๋Šฅ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ๋กœ๊ทธ์ธ ์–‘์‹์„ ์ฒ˜๋ฆฌํ•˜๊ฑฐ๋‚˜ ์‚ฌ์šฉ์ž๋ฅผ ์ธ์ฆํ•˜๊ณ  ์‚ฌ์šฉ์ž ์ •๋ณด๋ฅผ ์ €์žฅํ•  ํ•„์š”๊ฐ€ ์—†์ด Keycloak์„ ํ†ตํ•ด ์ธ์ฆํ•œ๋‹ค.Single Sign-On : Keycloak์— ํ•œ ๋ฒˆ ๋กœ๊ทธ์ธํ•˜๋ฉด ๋‹ค๋ฅธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ์ ‘์†ํ•  ๋•Œ ๋‹ค์‹œ ๋กœ๊ทธ์ธํ•  ํ•„์š”๊ฐ€ ์—†๋‹ค. ์‚ฌ์šฉ์ž๋Š” ์—ฌ๋Ÿฌ ์„œ๋น„์Šค์— ๊ฐ๊ฐ ๋กœ๊ทธ์ธ ํ•  ํ•„์š”๊ฐ€ ์—†์ด ํ•œ ๋ฒˆ์˜ ์ธ์ฆ์ด๋ฉด ๋ชจ๋“  ์—ฐ๊ฒฐ๋œ ์•ฑ์„ ์ด์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด ๊ธฐ๋Šฅ์€ ๋กœ๊ทธ์•„์›ƒ๋„ ๊ทธ๋Œ€๋กœ ์ ์šฉ๋œ๋‹ค.Identity Brokering and Social L.. 2026. 3. 19.
[Spring, React] jsx์™€ css ํŒŒ์ผ ์—ฐ๊ฒฐ, ์—ฐ๊ฒฐ๋œ css๊ฐ€ ์•„๋‹ˆ์–ด๋„ jsx ํŽ˜์ด์ง€์— ์˜ํ–ฅ์„ ์ฃผ๋Š” ๊ฒฝ์šฐ ๊ณ ๊ฐ ๊ด€๋ฆฌ ํŽ˜์ด์ง€๋ฅผ ์ฐธ๊ณ ํ•˜์—ฌ๊ด€๋ฆฌ์ž ๊ด€๋ฆฌ ํŽ˜์ด์ง€๋ฅผ ๋งŒ๋“ค๊ณ  ์žˆ๋‹ค.๋ถ„๋ช… ๊ฐ ํŽ˜์ด์ง€์— css ํŒŒ์ผ์„ ๋‹ค๋ฅด๊ฒŒ ์—ฐ๊ฒฐ์‹œ์ผฐ๋Š”๋ฐ,์™œ ์ˆ˜์ •์ด ๋™์‹œ์— ๋˜๋Š”๊ฑธ๊นŒ? 1. ํ™”๋ฉด์•„๋ž˜์™€ ๊ฐ™์€ ํ™”๋ฉด์„ ๋งŒ๋“ค์—ˆ๋‹ค. ์•„๋ž˜ ํŽ˜์ด์ง€๋Š” ๊ด€๋ฆฌ์ž๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ํŽ˜์ด์ง€ ์ค‘ ๊ฒ€์ƒ‰์ฐฝ ํ™”๋ฉด์ด๋‹ค. ์ด ํŽ˜์ด์ง€๋ฅผ ๋งŒ๋“œ๋Š”๋ฐ, ์ „์— ๋ฏธ๋ฆฌ ๋งŒ๋“ค์—ˆ๋˜ ๊ณ ๊ฐ ๊ด€๋ฆฌ ํŽ˜์ด์ง€์˜ ๊ฒ€์ƒ‰์ฐฝ ์ฝ”๋“œ๋ฅผ ๊ทธ๋Œ€๋กœ ๊ฐ€์ ธ์™”๋‹ค. 2. ๋ฌธ์ œ์™€ ์›์ธ๋ฌธ์ œ๊ณ ๊ฐ ๊ด€๋ฆฌ ํŽ˜์ด์ง€ ์ค‘ ๊ฒ€์ƒ‰์„ ๋‹ด๋‹นํ•˜๋Š” jsx๋Š” CustomerAdd.jsx์ด๋‹ค. ์ด jsx๋Š” CustomerTable.css์™€ ์—ฐ๊ฒฐ๋˜์–ด์žˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ด€๋ฆฌ์ž ๊ด€๋ฆฌ ํŽ˜์ด์ง€ ์ค‘ ๊ฒ€์ƒ‰์„ ๋‹ด๋‹นํ•˜๋Š” jsx๋Š” AdminAdd.jsx์ด๋‹ค. ์ด jsx๋Š” PermissionSetting.css์™€ ์—ฐ๊ฒฐ๋˜์–ด์žˆ๋‹ค.๊ทธ๋Ÿฐ๋ฐ PermissionSetting.css๋ฅผ.. 2026. 3. 17.
[Spring, React, Mac] Elasticsearch๋ฅผ ์œ„ํ•ด Docker ์„ค์น˜ํ•˜๊ธฐ. ์•žํฌ์ŠคํŒ…์—์„œ Elasticsearch ์„ค์น˜๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ดค๋‹ค.๊ทธ ์ค‘ Docker๋ฅผ ์ด์šฉํ•œ ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•ด๋ณด๋ คํ•œ๋‹ค. 1. Elasticsearch & Docker [Docker์— ๋Œ€ํ•ด์„œ] [Spring, React] Docker์— ๋Œ€ํ•ด์„œ ์‰ฝ๊ฒŒ ์•Œ์•„๋ณด๊ธฐ!ElasticSearch๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋‹ค์–‘ํ•œ ๋ฐฉ๋ฒ• ์ค‘Docker๋ฅผ ํ†ตํ•ด ์„ค์น˜ํ•˜๊ณ  ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ์—ˆ๋‹ค.Docker๊ฐ€ ๋ฌด์—‡์ด๊ณ  ์–ด๋–ป๊ฒŒ ์ด๋ค„์ง€๋Š”์ง€์•Œ์•„๋ณด๊ฒ ๋‹ค. 1. Docker์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‹ ์†ํ•˜๊ฒŒ ๊ตฌ์ถ•, ํ…Œ์ŠคํŠธ ๋ฐ ๋ฐฐํฌํ• post-this.tistory.com Docker๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‹ ์†ํ•˜๊ฒŒ ๊ตฌ์ถ•, ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ์†Œํ”„ํŠธ์›จ์–ด ํ”Œ๋žซํผ์ด๋‹ค. ์ด๋•Œ ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ์ปจํ…Œ์ด๋„ˆ๋ผ๋Š” ํ‘œ์ค€ํ™”๋œ ์œ ๋‹›์œผ๋กœ ํŒจํ‚ค์ง•ํ•œ๋‹ค.์ด ์ปจํ…Œ์ด๋„ˆ์—๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ, ์‹œ์Šคํ…œ ๋„๊ตฌ, ์ฝ”๋“œ, ๋Ÿฐ.. 2026. 3. 10.
[Spring, React] Elasticsearch๊ฐ€ ๋ฌด์—‡์ผ๊นŒ? ์ข€ ๋” ๋‹ค์–‘ํ•œ ๊ฒ€์ƒ‰ ํ™˜๊ฒฝ์„ ์ œ๊ณตํ•˜๊ณ  ์‹ถ์–ด์„œElasticsearch๋ฅผ ๋„ฃ์–ด๋ณด๊ธฐ๋กœ ํ–ˆ๋‹ค.๊ทธ๋Ÿฐ๋ฐ ์ •ํ™•ํžˆ Elasticsearch๊ฐ€ ์–ด๋–ค ๊ฒƒ์ด๋ฉฐ, ๋ฌด์Šจ ๊ธฐ๋Šฅ์ด ์žˆ์„๊นŒ? 1. ElasticsearchElasticsearch๋Š” ๋ถ„์‚ฐํ˜• RESTful ๊ฒ€์ƒ‰ ๋ฐ ๋ถ„์„ ์—”์ง„์ด๋‹ค.→ ์—ฌ๊ธฐ์„œ ๋ถ„์‚ฐํ˜• RESTful ์ด๋ž€ ๋ง์ด ์ดํ•ดํ•˜๊ธฐ ์–ด๋ ค์šธ ๊ฒƒ ๊ฐ™๋‹ค. ๋ถ„์‚ฐํ˜•์€ ์—ฌ๋Ÿฌ ๋Œ€์˜ ์ปดํ“จํ„ฐ๋ฅผ ํ•˜๋‚˜๋กœ ๋ฌถ์–ด ๋ฐ์ดํ„ฐ๋ฅผ ๋‚˜๋ˆ„์–ด ์ €์žฅํ•œ๋‹ค๋Š” ๋œป์ด๋‹ค. ๋ฐ์ดํ„ฐ๊ฐ€ ๋Š˜์–ด๋‚˜๋ฉด ์ปดํ“จํ„ฐ๋งŒ ๋” ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜, ์ปดํ“จํ„ฐ๊ฐ€ ํ•œ ๋Œ€๊ฐ€ ๊ณ ์žฅ์ด ๋‚˜๋„ ๋‹ค๋ฅธ ์ปดํ“จํ„ฐ์— ๋ณต์‚ฌ๋ณธ์ด ์žˆ์–ด ๋ฐ์ดํ„ฐ๊ฐ€ ์•ˆ์ „ํ•˜๋‹ค๋Š” ์žฅ์ ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  RESTful ํ†ต์‹  ๋ฐฉ์‹์€ GET, POST, DELET๋ฅผ ์จ์„œ ์š”์ฒญ์„ ๋ณด๋‚ด๋“ฏ Elasticsearch๋„ ์šฐ๋ฆฌ๊ฐ€ ์“ฐ๋Š” ์›น ๊ธฐ์ˆ  ๋ฐฉ์‹์œผ๋กœ ์ฃผ๊ณ  ๋ฐ›์„ ์ˆ˜.. 2026. 2. 28.
[Spring, React] ํŽ˜์ด์ง€๋„ค์ด์…˜, ๊ณ ๊ฐ 10๋ช…๋งŒ ๋ณด์—ฌ์ฃผ๊ณ  ํŽ˜์ด์ง€ ๋„˜๊ธฐ๊ธฐ. ๊ณ ๊ฐ ๋ช…๋‹จ ํ‘œ๋ฅผ ๋งŒ๋“ค์—ˆ๋‹ค.๊ทธ๋Ÿผ ์ด์ œ 10๋ช…์˜ ์ •๋ณด๋งŒ ๋ณด์ด๋„๋ก๋งŒ๋“ค๊ณ ์‹ถ๋‹ค. 1. ๋™์ž‘ํ™”๋ฉด 2. ํŽ˜์ด์ง€๋„ค์ด์…˜ ๊ฒ€์ƒ‰ํ•ด์„œ ์ฐพ์•„๋ณธ ํŽ˜์ด์ง€๋„ค์ด์…˜์€, ๋ฐฉ๋Œ€ํ•œ ์ •๋ณด ์ค‘ ์‚ฌ์šฉ์ž์—๊ฒŒ ํ•„์š”ํ•œ ์ •๋ณด๋ฅผ ์„ ๋ณ„ํ•˜์—ฌ ์ผ๋ถ€๋ถ„๋งŒ ๋ณด์—ฌ์ฃผ๋Š” ๊ธฐ์ˆ ์„ ๋งํ•˜๋Š” ๊ฒƒ ๊ฐ™๋‹ค. ์•„๋ฌด๋ž˜๋„ ๊ตฌ๊ธ€์— ๊ฒ€์ƒ‰ํ–ˆ์„ ๋•Œ ๊ตฌ๊ธ€์ด ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๋ชจ๋“  ์ •๋ณด๋ฅผ ๋‹ค ๋ณด์—ฌ์ค€๋‹ค๋ฉด ์•„๋งˆ ์‚ฌ์šฉ์ž์˜ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ๊ฐ๋‹นํ•˜์ง€ ๋ชปํ•  ๊ฒƒ์ด๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋ฌด์—‡๋ณด๋‹ค ๊ธฐ๋Šฅ์— ์˜๋ฏธ๊ฐ€ ์—†์–ด์งˆ ๋“ฏ ํ•˜๋‹ค. ๊ทธ๋ž˜์„œ ์ด ํŽ˜์ด์ง€๋„ค์ด์…˜ ๊ธฐ๋Šฅ์„ ํ™œ์šฉํ•˜์—ฌ ์‚ฌ์šฉ์ž์˜ ๋ฉ”๋ชจ๋ฆฌ์™€ ์‹œ๊ฐ„์„ ์•„๋ผ๋Š” ๋“ฏ ํ•˜๋‹ค. ์ผ๋‹จ ๋‚ด๊ฐ€ ํ•œ ํ”„๋กœ์ ํŠธ๋Š” ์ด๋ฏธ ๊ณ ๊ฐ ์ •๋ณด๊ฐ€ ๊ธฐ์ž…๋œ ์ƒํƒœ์ด๊ณ  ๊ทธ๊ฑธ ๊ด€๋ฆฌํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ๊ฑฐ๊ธฐ๋‹ค ๊ณ ๊ฐ ๋ช…๋‹จ์ด ๊ทธ๋ฆฌ ๋ฐฉ๋Œ€ํ•œ ์–‘์ด ์•„๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๊ทธ๋ฆฌ ์–ด๋ ต์ง€ ์•Š์€ ํŽ˜์ด์ง€๋„ค์ด์…˜์„ ๊ตฌํ˜„ํ•ด๋„ ๋˜๊ฒ ๋‹ค๋Š” ์ƒ๊ฐ์„ ํ–ˆ๋‹ค. ์•„๋ž˜ ๋ง.. 2026. 2. 18.
[Spring, React] ๊ณ ๊ฐ ๋ช…๋‹จ์„ ๊ด€๋ฆฌํ•  ํ…Œ์ด๋ธ”(ํ‘œ) ๋งŒ๋“ค๊ธฐ! ๊ณ ๊ฐ ์ •๋ณด๋ฅผ ๋ณด์—ฌ์ค„ํ‘œ๋ฅผ ๋งŒ๋“ค์–ด๋ณด์ž! 1. ํ™”๋ฉด๊ณ ๊ฐ ์ •๋ณด๊ฐ€ ํ™”๋ฉด์— ๋ณด์ด๋„๋ก ํ•˜๋ฉฐ, ๋งจ ๋์— ์ˆ˜์ •๊ณผ ์‚ญ์ œ ๋ฒ„ํŠผ์ด ๋‚˜์˜ค๋„๋ก ๋งŒ๋“ค์–ด๋ณผ ๊ฒƒ์ด๋‹ค. 2. ์ „์ฒด ์ฝ”๋“œ {columns.map((data, i) => ( ))} {columns.map((data, i) => ( .. 2026. 2. 16.