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

๋ชฉ๋ก๋„์ปค (7)

JUINTINATION

Board Clone ํ”„๋กœ์ ํŠธ์— Spring Security๋ฅผ ํ™œ์šฉํ•œ ๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ ๊ตฌํ˜„ํ•˜๊ธฐ

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

Java Spring Boot 2024. 8. 10. 02:28
์Šคํ”„๋ง๋ถ€ํŠธ + MySQL ํ”„๋กœ์ ํŠธ ๋„์ปค๋ผ์ด์ง•ํ•˜๊ธฐ

์ง€๋‚œ๋ฒˆ์— ์ฑ…์„ ๋ณด๋ฉด์„œ ๋”ฐ๋ผ์„œ ๋งŒ๋“  ๊ฐ„๋‹จํ•œ ๊ฒŒ์‹œํŒ ํ”„๋กœ์ ํŠธ์ธ Board-Clone ํ”„๋กœ์ ํŠธ๋ฅผ ๋„์ปค๋ผ์ด์ง•ํ•ด๋ดค๋‹ค. Express.js๋ฅผ ์‚ฌ์šฉํ•œ ์ŠคํผํŠธ ํ”„๋กœ์ ํŠธ์—๋„ ์ ์šฉํ•ด๋ณธ ์ ์ด ์žˆ๋Š”๋ฐ ๊ทธ ๋‚ด์šฉ์„ ๋‚ด๊ฐ€ ์•ˆ ์ ์–ด๋‘ฌ์„œ ์ฒ˜์Œ์— ์กฐ๊ธˆ ํ—ค๋งธ๋‹ค..์—ฌ๋Ÿฌ ๋ธ”๋กœ๊ทธ์™€ ํ•™๊ต ์„ ๋ฐฐ์˜ ๊นƒํ—ˆ๋ธŒ ์ฝ”๋“œ๋ฅผ ์ฐธ๊ณ ํ•ด๊ฐ€๋ฉด์„œ Dockerfile์„ ์ž‘์„ฑํ•ด๋‚˜๊ฐ€๋Š”๋ฐ Express.js๋ฅผ ๋„์ปค๋ผ์ด์ง•ํ•  ๋•Œ์™€ ํฐ ์ฐจ์ด๋Š” ์—†์—ˆ์ง€๋งŒ ์•ฝ๊ฐ„์”ฉ ๋‹ฌ๋ผ์„œ ์ข€ ๋‹นํ™ฉํ•˜๊ธด ํ–ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  jdk 17 ๋ฒ„์ „์œผ๋กœ ํ•œ ์‚ฌ๋žŒ์ด ๋„ˆ๋ฌด ์ ์–ด์„œ ๋น„๊ต๊ตฐ์„ ์ฐพ๊ธฐ๋„ ์‰ฝ์ง€ ์•Š์•˜๋‹ค. ๊ทธ๋ž˜๋„ ์•„๋ฌดํŠผ ์„ฑ๊ณตํ•˜๊ธด ํ–ˆ๋Š”๋ฐ ๊ทธ ๋‚ด์šฉ์„ ๋˜ ๊นŒ๋จน๊ธฐ ์ „์— ์ ์–ด๋ณด์ž.DockerfileFROM gradle:7.3.3-jdk17 AS builderWORKDIR /buildCOPY . /buildRUN ./gradlew ..

StudyNote 2024. 3. 11. 22:51
Express.js๋ฅผ ์‚ฌ์šฉํ•œ ์ŠคํผํŠธ ํ”„๋กœ์ ํŠธ

์งง์€ ์‹œ๊ฐ„๋™์•ˆ ๋งŽ์€ ๋‚ด์šฉ์„ ์ฒ˜์Œ๋ถ€ํ„ฐ ๊ณต๋ถ€ํ•ด์•ผ ํ•˜๋Š๋ผ ํž˜๋“ค์—ˆ์ง€๋งŒ ๋„ˆ๋ฌด๋‚˜๋„ ์žฌ๋ฐŒ์—ˆ๋˜ 3์ฃผ๋™์•ˆ์˜ ์ŠคํผํŠธ ํ”„๋กœ์ ํŠธ๊ฐ€ ๋งˆ๋ฌด๋ฆฌ๋˜์—ˆ๋‹ค. ์—ํŠธ๋ฆฌ์—์„œ ์—ฐ์ˆ˜์—ฐ๊ตฌ์›์œผ๋กœ ๊ทผ๋ฌดํ•˜๋ฉด์„œ ํ‡ด๊ทผ ์ดํ›„์— ์‹œ๊ฐ„์„ ๋‚ด์„œ ํ–ˆ๋˜ ํ”„๋กœ์ ํŠธ๋ผ ์•„์‰ฌ์šด ๋ถ€๋ถ„์ด ๋งŽ์•˜์ง€๋งŒ ๊ทธ๋ž˜๋„ ์ง€๊ธˆ๊นŒ์ง€ ์™„์„ฑํ•œ ํ”„๋กœ์ ํŠธ์˜ ๋‚ด์šฉ์„ ์ ์–ด๋ณด๋ ค๊ณ  ํ•œ๋‹ค.๋ฐฑ์—”๋“œํŒ€ ์ž์œจ ์ฃผ์ œ ์ŠคํผํŠธ ํ”„๋กœ์ ํŠธ (~02/04)์šฐ๋ฆฌ์—๊ฒŒ ์ฃผ์–ด์กŒ๋˜ ์ŠคํผํŠธ ํ”„๋กœ์ ํŠธ์˜ ์กฐ๊ฑด์€ ์•„๋ž˜์™€ ๊ฐ™๋‹ค. 1. MySQL + Prisma ORM + 3๊ฐœ ํ…Œ์ด๋ธ” ์ด์ƒ(1:N, M:N, ์ตœ์†Œ ํ•˜๋‚˜) + ERD 2. ์ธ์ฆ (JWT Token + Passport.js) 3. 3 Layer Architecture (Controller + Service + Repository) 4. Joi Validation -> Middleware๋กœ..

StudyNote 2024. 2. 8. 20:14
๊ฐ„๋‹จํ•œ Express ํ”„๋กœ์ ํŠธ Dockerizing ํ•ด๋ณด๊ธฐ

์ง€๊ธˆ๊นŒ์ง€์˜ ์ŠคํผํŠธ ํ”„๋กœ์ ํŠธ ์ง„ํ–‰์ƒํ™ฉ์„ ์–˜๊ธฐํ•ด๋ณด์ž๋ฉด.. ์•ฝ 2์ฃผ๊ฐ€ ๋„˜๋Š” ์‹œ๊ฐ„๋™์•ˆ ์—ฌ๋Ÿฌ ํ”ผ๋“œ๋ฐฑ์„ ๋ฐ›์•„์˜ค๋ฉฐ ๋ธ”๋กœ๊ทธ์˜ ํ•„์ˆ˜์ ์ธ ๊ธฐ๋Šฅ์€ ๋‹ค ๊ตฌํ˜„ํ–ˆ๋‹ค๊ณ  ํ•  ์ˆ˜ ์žˆ๊ฒ ๋‹ค. ํšŒ์›๊ฐ€์ž…, ๋กœ๊ทธ์ธ, ๊ฒŒ์‹œ๊ธ€ ๋ฐ ์นดํ…Œ๊ณ ๋ฆฌ, ํƒœ๊ทธ, ๋Œ“๊ธ€ ๊ธฐ๋Šฅ ๋“ฑ Notion์— ์ •๋ฆฌํ•œ ๋‚ด์šฉ์„ ๋ด๋„ ๋˜๊ณ  Github์˜ commit message๋ฅผ ์ฝ์–ด๋„ ๋Œ€์ถฉ ์–ด๋–ค ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ–ˆ๋Š”์ง€ ์•Œ ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด๋‹ค. ๊ธฐ๋Šฅ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์—ฌ๋Ÿฌ ์š”๊ตฌ์‚ฌํ•ญ๋“ค์„ ํ•˜๋‚˜ ๋‘˜์”ฉ ํ•ด๊ฒฐํ•ด๊ฐ€๋ฉด์„œ ๋‚ด๊ฐ€ ๊ธ‰์†๋„๋กœ ์„ฑ์žฅ์ค‘์ด๊ตฌ๋‚˜๋ฅผ ๋Š๋ผ๋Š” ์ค‘์ธ๋ฐ ๊ฑฐ์˜ ๋ง‰๋ฐ”์ง€์— ๋‹ค๋‹ค๋ฅธ ์ง€๊ธˆ, ๋˜๋‹ค๋ฅธ ๋ฌธ์ œ๊ฐ€ ์ƒ๊ฒผ๋‹ค. ๋‹ค๋ฆ„์•„๋‹Œ ๋„์ปค๋ผ์ด์ง•์ด๋‹ค. ๋„์ปค(Docker) ๊ฐ€๋ณ๊ฒŒ ์ž…๋ฌธํ•ด๋ณด๊ธฐ - 1๋ถ€ํ„ฐ 3๊นŒ์ง€ ๊ณต๋ถ€ํ•œ ๋‚ด์šฉ๊ณผ ๋ง‰๋ง‰ํ–ˆ๋˜ ๋‚˜์—๊ฒŒ ๊ธธ์žก์ด๊ฐ€ ๋˜์–ด์ค€ ์–ด๋Š ๋ธ”๋กœ๊ทธ์˜ ๋‚ด์šฉ์„ ์ฐธ๊ณ ํ•˜์—ฌ ์ด์ œ Express ํ”„๋กœ์ ํŠธ๋ฅผ ๋„์ปค๋ผ์ด์ง•ํ•ด..

StudyNote 2024. 2. 1. 23:52