๋ฐ˜์‘ํ˜•

์ „์ฒด ๊ธ€ ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ

ํ•ด๋‹น ๊ธ€ 150๊ฑด

tailwindCSS ๋ฅผ ์ ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ํ•ด๋‹น ๊ธ€์„ ๋ณด๋ฉด ๋œ๋‹ค. # spring boot TailwindCSS์™€ ์—ฐ๋™ํ•˜๊ธฐ, ์‚ฌ์šฉ๋ฐฉ๋ฒ•tailwindcss๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์•ž๋‹จ์„ ๊พธ๋ฉฐ๋ณด์ž tailwindcss๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ๋˜ ๋ณต์žกํ•˜๋‹ค.. ์•ˆ์จ๋ณผ ์‚ฌ๋žŒ๋“ค์€ ๋„˜์–ด๊ฐ€๋ฉด ๋œ๋‹ค. ์ผ๋‹จ node.js๊ฐ€ ๋‚œ ์ด๋ฏธ ๊น”๋ ค์žˆ์–ด์„œ ๊ดœ์ฐฎ์€๋ฐ ์•ˆ๊น”๋ ค์žˆ์œผ๋ฉด node.js๋Š” ๋ฌด์กฐ๊ฑด ์„ค์น˜ํ•˜์…”somnote.tistory.com ๊ทธ๋Ÿผ ์ด์ œ ํƒ€์ž„๋ฆฌํ”„๋ฅผ ์‚ฌ์šฉํ•œ html๊ณผ ์ปจํŠธ๋กค๋Ÿฌ๋ฅผ ๋งŒ๋“ค์–ด์„œ ์—ฐ๊ฒฐํ•ด์ฃผ๋ฉด ๋๋‚œ๋‹ค!์ผ๋‹จ ์†Œ์…œ๋กœ๊ทธ์ธ์ด ํ•„์š”ํ•˜๊ธฐ ๋–„๋ฌธ์— ๋กœ๊ทธ์ธ ํ™”๋ฉด์„ 1๊ฐœ ๋งŒ๋“ ๋‹ค. ์ฐธ ํƒ€์ž„๋ฆฌํ”„ ํ…œํ”Œ๋ฆฟ์€ resources/templates ์•„๋ž˜์— ๋งŒ๋“ค๋ฉด ๋œ๋‹ค. login.html ์†Œ์…œ ๋กœ๊ทธ์ธ ๊ตฌ๊ธ€๋กœ ๋กœ๊ทธ์ธํ•˜๊ธฐ..

tailwindcss๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์•ž๋‹จ์„ ๊พธ๋ฉฐ๋ณด์ž tailwindcss๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ๋˜ ๋ณต์žกํ•˜๋‹ค.. ์•ˆ์จ๋ณผ ์‚ฌ๋žŒ๋“ค์€ ๋„˜์–ด๊ฐ€๋ฉด ๋œ๋‹ค. ์ผ๋‹จ node.js๊ฐ€ ๋‚œ ์ด๋ฏธ ๊น”๋ ค์žˆ์–ด์„œ ๊ดœ์ฐฎ์€๋ฐ ์•ˆ๊น”๋ ค์žˆ์œผ๋ฉด node.js๋Š” ๋ฌด์กฐ๊ฑด ์„ค์น˜ํ•˜์…”์•ผ ๋œ๋‹ค.๊ทธ๋‹ค์Œ ํ”„๋กœ์ ํŠธ ๋ฃจํŠธ๊ฒฝ๋กœ์—์„œ cmd๋ฅผ ํ‚จ๋‹ค์Œ ํ•ด์ฃผ๋ฉด๋˜๋Š”๋ฐnpm init -ynpm install -D tailwindcss@3.4.1 postcss autoprefixer๋งŒ์ผ ๋‹ค์šด์ค‘ ์—๋Ÿฌ๊ฐ€ ๋œฌ๋‹ค๋ฉด ํ™˜๊ฒฝ๋ณ€์ˆ˜๋ฅผ ์„ค์ • ์•ˆํ•ด์„œ ๊ทธ๋Ÿฐ๊ฑฐ๊ธฐ๋•Œ๋ฌธ์—C:\Users\์‚ฌ์šฉ์ž๋ช…\AppData\Roaming\npmํ•ด๋‹น ์œ„์น˜๋ฅผ path์— ๊ผญ ๋“ฑ๋กํ•˜๊ณ  cmd์ฐฝ ๊ป๋‹คํ‚จ๋‹ค์Œ ๋‹ค์‹œ ํ•ด๋ณด๋ฉด ๋ ๊ฒƒ์ด๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ๋ฃจํŠธํด๋” ์•„๋ž˜ ํ•ด๋‹น ํŒŒ์ผ 2๊ฐœ๊ฐ€ ์ƒ๊ธด๋‹ค.tailwind.config.jspostcss.config.js..

ํ๋ฆ„ ์ดํ•ดํ•˜๊ธฐspring boot์—์„œ ๊ตฌ๊ธ€ ์†Œ์…œ ๋กœ๊ทธ์ธ ํ•˜๋Š” ๋ฐฉ๋ฒ•์˜ ๊ธฐ๋ณธ ํ๋ฆ„์€ ์•„๋ž˜์™€ ๊ฐ™๋‹ค.[๊ตฌ๊ธ€ ๋กœ๊ทธ์ธ ํด๋ฆญ] ↓[๊ตฌ๊ธ€ ๋กœ๊ทธ์ธ → redirect URI๋กœ ํ† ํฐ ๋ฐ˜ํ™˜] ↓[Spring Security๊ฐ€ ํ† ํฐ ๋ฐ›์•„์„œ ์‚ฌ์šฉ์ž ์ •๋ณด ํš๋“] ↓[์ž๋™ ๋กœ๊ทธ์ธ or DB ์‚ฌ์šฉ์ž ๋“ฑ๋ก] ์ฒ˜์Œ์—” ์„ค์ •ํ• ๊ฒƒ๋„ ๋งŽ๊ณ  ํ• ๊ฒƒ๋„ ๋งŽ์•„์„œ ๊ต‰์žฅํžˆ ๊ท€์ฐฎ๊ณ  ์ง€๋ฃจํ•˜์ง€๋งŒ ํ•œ๋ฒˆ ์ œ๋Œ€๋กœ ์ตํ˜€๋‘๋ฉด ๋‹ค๋ฅธ ์†Œ์…œ๋กœ๊ทธ์ธ๋„ ๋น„์Šทํ•œ ๊ตฌ์กฐ๊ธฐ ๋•Œ๋ฌธ์— ์ง€๊ธˆ ์ง€์‹์„ ์จ๋จน์œผ๋ฉด ๋œ๋‹ค. ํด๋ผ์ด์–ธํŠธ ์•„์ด๋”” ๋งŒ๋“ค๊ธฐ Google ํด๋ผ์šฐ๋“œ ํ”Œ๋žซํผ๋กœ๊ทธ์ธ Google ํด๋ผ์šฐ๋“œ ํ”Œ๋žซํผ์œผ๋กœ ์ด๋™accounts.google.comํ•ด๋‹น ์‚ฌ์ดํŠธ์— ์ ‘์†ํ•˜์—ฌ ์ƒˆํ”„๋กœ์ ํŠธ๋ฅผ ์ƒ์„ฑํ•˜๊ณ  API๋ฐ ์„œ๋น„์Šค์— ๋“ค์–ด๊ฐ€ Oauth ๋™์˜ ํ™”๋ฉด์„ ์„ ํƒํ•œ๋‹ค.์‹œ์ž‘ํ•˜๊ธฐ๋ฅผ ๋ˆ„๋ฅด๋ฉด ๋ญ๋ญ๋ฅผ ์ ์œผ๋ผ๊ณ ํ•˜๋Š”๋ฐ..

๊ธฐ์กด ํ…œํ”Œ๋ฆฟ์ด(hml, hwp) ์žˆ๊ณ  ํ•ด๋‹น ํ…œํ”Œ๋ฆฟ์„ ๋ณ€ํ™˜ํ•  ๋•Œ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์„ค๋ช…ํ•œ ๋‚ด์šฉ ์˜ˆ๋ฅผ ๋“ค์–ด ๋„์„œ๊ด€ ๋Œ€์ถœ ๋ชฉ๋ก ๋ฆฌํฌํŠธ๋ผ๊ณ  ํ•ด๋ณด์ž.ํ…œํ”Œ๋ฆฟ์—๋Š” ๋ฐ์ดํ„ฐ ์‹œ์ž‘ ์œ„์น˜์— ๋งˆ์ปค๋ฅผ ์‚ฝ์ž…ํ•ด๋‘”๋‹ค.#BOOK_ROW#ํ•ด๋‹น ๋งˆ์ปค๋Š” ์„ฑ์ ํ‘œ ํ‘œ ์•ˆ์—์„œ ๋ฐ์ดํ„ฐ๊ฐ€ ์‚ฝ์ž…๋  ์‹œ์ž‘ ์œ„์น˜๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค.ํ…œํ”Œ๋ฆฟ์˜ TABLE ํƒœ๊ทธ๋Š” ๋ณดํ†ต ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋‹ค. ์œ„ ํƒœ๊ทธ๋Š” 3๋ฒˆ์งธ ROW์•ˆ์— ์ฒซ๋ฒˆ์งธ CELL์— ๋“ค์–ด๊ฐ€ ์žˆ๋Š” ๋‚ด์šฉ์ด ๋ ๊ฒƒ์ด๋‹ค. ... ... ... ... ... ๊ทธ๋ ‡๋‹ค๋ฉด ํ•ต์‹ฌ ๋กœ์ง์€ ์ด๋ ‡๊ฒŒ ๋  ๊ฒƒ์ด๋‹ค.#BOOK_ROW# ๋งˆ์ปค๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋ธ”๋Ÿญ์„ ๋ณต์‚ฌ๊ฐ ๋‚ด๋ถ€์˜ ํƒœ๊ทธ๋ฅผ replaceALL๋กœ ์ˆœ์ฐจ ์น˜ํ™˜RowAddr๋Š” ๋ฐ˜๋“œ์‹œ ๊ฐ๊ฐ ๋‹ค๋ฅด๊ฒŒ ์„ค์ •ํ•ด์•ผ ํ•จ (2 + i) ํƒœ๊ทธ ์•ˆ RowCount ๊ฐ’๋„ ๋ฐ˜๋“œ์‹œ ๊ฐฑ์‹ ํ•ด์•ผ ๋ฌธ์„œ ..

๋ฐ˜์‘ํ˜•