๐Ÿ‘จ‍๐Ÿ’ป kimtongting
article thumbnail
ํ”„๋กœ์ ํŠธ ์ž๊ฐ€์ง„๋‹จ

๐Ÿ“”ํ”„๋กœ์ ํŠธ ์ž๊ฐ€์ง„๋‹จ ๐Ÿ“„๋†€๋ผ์›€, ๊ทธ๋ฆฌ๊ณ .. ์ด ๊ธ€์˜ ๋‚ด์šฉ์„ ๋ณด๊ณ  ์‹ค๋กœ ๋†€๋ผ์› ๋‹ค. ์„ธ์ƒ์— ์‹ฌ์ง€์–ด ๋‚ด๊ฐ€ ์š”์ƒˆ ์ง„ํ–‰ ์ค‘์ธ ๋‚ด์šฉ๋“ค์ด๋‹ค. ๊ฐ์‚ฌํ•˜๊ฒŒ๋„ ํฌ๊ฒŒ 10๊ฐœ ํ•ญ๋ชฉ์˜ ์ฒดํฌ๋ฆฌ์ŠคํŠธ๋ฅผ ๋งŒ๋“ค์–ด์ฃผ์…จ๊ณ , ๋‹คํ–‰ํžˆ๋„ ๋‚˜๋Š” 10๊ฐœ ํ•ญ๋ชฉ ๋ชจ๋‘์— ์ฒดํฌํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค. ์ •ํ•ด์ง„ ๊ธฐ๊ฐ„์— ๋งž์ถ”์–ด ํ”„๋กœ์ ํŠธ๋ฅผ ๋๋‚ด๊ณ , ๋‹ค์Œ ํ”„๋กœ์ ํŠธ๋ฅผ ์œ„ํ•ด ์ฒ ์ˆ˜ํ•˜๊ธฐ ๊ธ‰๊ธ‰ํ•˜๋‹ค. ์šฐ๋ฆฌ๋Š” ์›”๊ธ‰์Ÿ์ด๋‹ˆ๊นŒ, ๊ทธ๋ ‡๋‹ค๋ณด๋‹ˆ ์ด๋ฏธ ๊ฐœ๋ฐœ์ด ์™„๋ฃŒ๋œ ํ”„๋กœ์ ํŠธ๋Š” ์ด์Šˆ๊ฐ€ ๋ฐœ์ƒํ•˜๊ฑฐ๋‚˜ ์ถ”๊ฐ€ ๊ฐœ๋ฐœ์ด ์กด์žฌํ•˜์ง€ ์•Š์œผ๋ฉด LTS๋กœ ๋ณด๊ณ  ๋‹ค์‹œ ๋ณผ ์ƒ๊ฐ์ด ๋‚˜์ง€ ์•Š๋Š”๋‹ค. ๊ทธ๋Ÿฌ๋‹ค ๋ฌธ๋“ ์—ฐ์ฐจ๊ฐ€ ์Œ“์ด๊ณ , ๋‚ด๊ฐ€ ๊ฐœ๋ฐœํ•œ ํ”„๋กœ์ ํŠธ๋ฅผ ๋ณผ ๋•Œ, ๊ทธ ์ถฉ๊ฒฉ์€.. ์Œ ๋ญ๋ž„๊นŒ ์ƒ๋‹นํžˆ ๋ฏผ๋งํ•˜๋‹ค. ๋‹น์‹œ์— ์ƒ๊ฐ ์—†์ด ์งฐ๋˜ ์ฝ”๋“œ๋Š” ๋ถ€๋„๋Ÿฌ์›€์— ์ˆ˜์ •์„ ํ•˜๊ณ , ๋งŽ์€ ๊ณ ๋ฏผ์„ ํ•˜๋ฉฐ ์งฐ๋˜ ์ฝ”๋“œ๋Š” ์ง€๊ธˆ ๋‹ค์‹œ ๋ด๋„ ๋งค๋ ฅ์ ์ธ ์ฝ”๋“œ๋‹ค. ๋‚˜๋ฅผ ์œ„ํ•ด, ๋™..

article thumbnail
[Spring Boot] Spring Boot ์ง€์› ๊ณ„ํš

๐Ÿ“”Spring Boot ์ง€์› ๊ณ„ํš ํ† ์ด ํ”„๋กœ์ ํŠธ๋ฅผ spring boot๋กœ ์ง„ํ–‰ํ•˜๊ณ ์ž Spring initializr ์„ ์ด์šฉํ•˜์—ฌ ํ”„๋กœ์ ํŠธ๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ์žˆ์—ˆ๋‹ค. ๊ทธ๋Ÿฌ๋˜ ์ค‘, Spring initializr ์—์„œ ์•„๋ž˜์™€ ๊ฐ™์ด 2.5.x ๋ฒ„์ „๋“ค์ด ์‚ฌ๋ผ์ง„ ๊ฒƒ์„ ๋ณด๊ณ  ๋ถ€๋žด๋ถ€๋žด spring boot์˜ ์ง€์› ๊ณ„ํš์„ ๊ณต์œ ํ•˜๊ธฐ ์œ„ํ•ด ํฌ์ŠคํŒ… ํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค. ๐Ÿ‘จ‍๐Ÿ’ปSpring Boot ์˜ 3.0.x ๋ฒ„์ „ ์ถœ์‹œ ์ผ์ •(2022-11-24) ์ด ์ฝ”์•ž์œผ๋กœ ๋‹ค๊ฐ€์˜ด์— ๋”ฐ๋ผ, ์—ฌ๋Ÿฌ ๊ธฐ์—…์—์„œ ๊ธฐ์กด์— ์‚ฌ์šฉ์ค‘์ด๋˜ ๋ ˆ๊ฑฐ์‹œ ๋ฒ„์ „ Spring Boot ์˜ ์—…๋ฐ์ดํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๊ณ  ์žˆ๋‹ค. ํ˜„์žฌ ๊ทผ๋ฌด ์ค‘์ธ ํšŒ์‚ฌ์—์„œ๋„ ์ง€๋‚œ 5์›”, ์šด์˜์ค‘์ธ Spring Boot ํ”„๋กœ์ ํŠธ์˜ ์ตœํ•˜์œ„ ๋ฒ„์ „์„ 2.4.2 ๋ฒ„์ „์œผ๋กœ ๊ณ ์ •์‹œ์ผฐ๋‹ค. ๊ฐœ์ธ์ ์œผ๋กœ ๊ถŒ์žฅํ•˜๋Š” Branch์˜ ์ตœํ•˜์œ„ ๋ฒ„..

article thumbnail
ํ† ์ดํ”„๋กœ์ ํŠธ ์„œ๋น„์Šค ํ”Œ๋กœ์šฐ

๐Ÿ“”ํ† ์ดํ”„๋กœ์ ํŠธ ๐Ÿ“„Front-End ๐Ÿ“React ๐Ÿ“„Back-End ๐Ÿ“Spring Boot(2.5.5) ๐Ÿ“„DB ๐Ÿ“MySQL or MariaDB ๐Ÿ“„API ๐Ÿ“Node.js

article thumbnail
[Log/๋กœ๊ทธ] ๋กœ๊ทธ์— ๋Œ€ํ•œ ์ •์˜์™€ ์„ฑ์ฐฐ , ๊ทธ๋ฆฌ๊ณ ..

๐Ÿ“”๋กœ๊ทธ ๐Ÿ“„๊ฐœ์š” โŒจ์ˆ˜ ๋งŽ์€ ํ”„๋กœ์ ํŠธ์™€ ์„œ๋น„์Šค๋“ค์„ ์šด์˜ํ•˜๋‹ค๋ณด๋ฉด ์šฐ๋ฆฌ์˜ Log ํŒŒ์ผ๊ณผ ๋””๋ ‰ํ† ๋ฆฌ(ํ˜น์€ ํด๋”)๋Š” ์–ธ์ œ๋‚˜ ํƒœํ’ ์ด๋‹ค. ์ฝ”๋”ฉํ•˜๋Š๋ผ ๋ฐ”์œ ์šฐ๋ฆฌ์—๊ฒŒ ๋กœ๊ทธ์˜ ์šฐ์„ ์ˆœ์œ„๋Š” ์ €~~๋ฉ€๋ฆฌ, ์•„๋‹ˆ์ง€ ์ œ์ผ ๋’ค์— ์žˆ๋‹ค. ์„ค๊ณ„์— ๋Œ€ํ•œ ๊ฒƒ๋ณด๋‹ค ๋‚จ๊ธฐ๋Š” ๊ฒƒ์—๋งŒ ์ง‘์ค‘ํ•œ๋‹ค. ๊ทธ๋ ‡๋‹ค ๋ณด๋‹ˆ ๊ทœ์•ฝ์ด ์—†๊ณ , ๋ชจ๋“  ๊ฑธ ๋‚จ๊ธด ๋กœ๊ทธ์˜ ํ’ˆ์งˆ์€ ์ €ํ•˜๋  ์ˆ˜ ๋ฐ–์— ์—†๋‹ค. ๋กœ๊ทธ ํŒŒ์ผ์ด KB๋„ ์•„๋‹ˆ๊ณ  MB๋„ ์•„๋‹Œ GB..? ์‹ฌ์ง€์–ด ๋™์ผํ•œ ๋‹จ์–ด์™€ ๋ฐ์ดํ„ฐ๋ผ๋‹ˆ? ์œผ์•„์•…! ๋ฐ์ดํ„ฐ๊ฐ€ ๋„ˆ๋ฌด ๋งŽ์•„์„œ ์ฝ๊ธฐ๊ฐ€ ์–ด๋ ต์ž–์•„! ์œ„์™€ ๋น„์Šทํ•œ ๊ฒฝํ—˜์„ ๊ฐ€์ง„ ์ ์ด ์žˆ๋‹ค๋ฉด? ์ด ํฌ์ŠคํŒ…์ด ์ฝ์„๋งŒ ํ•˜์ง€ ์•Š์„๊นŒ ๐Ÿ“„๋กœ๊ทธ์˜ '์ •์˜' ๐Ÿ“๋กœ๊ทธ๋Š” '์ผ์ง€[๊ธฐ๋ก]' ์ด๋ผ๋Š” ๋œป์„ ์ง€๋‹Œ๋‹ค. ์ด ํฌ์ŠคํŒ…์—์„œ ๋ฐ”๋ผ๋ณด๋Š” ์‹œ์„ ์˜ ๋กœ๊ทธ๋Š” ์‹œ์Šคํ…œ์ด๋‚˜ ์„œ๋น„์Šค ๋“ฑ์˜ ๊ฐ€๋™ ์‹œ ๋‚จ๊ธฐ๋Š” ์ด๋ฒคํŠธ์— ๋Œ€ํ•œ ๊ธฐ๋ก์ด๋‹ค. ์šฐ๋ฆฌ๋Š” ์ด ๊ธฐ๋ก..

article thumbnail
[Spring Boot]Scheduled duplicate ์Šค์ผ€์ค„๋Ÿฌ ์ค‘๋ณต์‹คํ–‰

๐Ÿ“”Scheduled ๋„ˆ๋ž€ ๋…€์„ Scheduled ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ–ˆ์—ˆ๋‹ค๋ฉด, ํ•œ ๋ฒˆ์ฏค์€ ๊ฒช์–ด๊ฐ€๋Š” ์ฝ”์Šค๋ผ๊ณ  ์ƒ๊ฐํ•œ๋‹ค. ํŠนํžˆ๋‚˜ ์ด๋ฒˆ์— Logback ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ ํ•˜๋ฉฐ, Spring ์Šค์ผ€์ค„๋Ÿฌ์—์„œ ๋กœ๊ทธ๊ฐ€ ๋‘ ๋ฒˆ์”ฉ ์ฐํžˆ๋Š” ๊ฒƒ์„ ๋ณด๊ณ  ์•„์ฐจ ์‹ถ์—ˆ๋‹ค. ๐Ÿ“„์›์ธ? ๐Ÿ“์Šค์ผ€์ค„๋Ÿฌ๊ฐ€ ์ค‘๋ณต์œผ๋กœ ์‹คํ–‰๋˜๋Š” ์›์ธ์€ ๋‹ค์–‘ํ•˜๊ฒŒ ์žˆ์ง€๋งŒ, Spring์—์„œ๋Š” ๋Œ€ํ‘œ์ ์œผ๋กœ Bean ์ƒ์„ฑ์ด ๋  ๋•Œ ๋ฐœ์ƒํ•œ๋‹ค. Bean์€ ์ˆœ์ฐจ์ ์œผ๋กœ @Configuration ์–ด๋…ธํ…Œ์ด์…˜์ด ์„ค์ •๋œ config Class ๋ฅผ ์ฝ์œผ๋ฉฐ ์ด์™€ ๊ด€๋ จ๋œ ์„ค์ • ํŒŒ์ผ(properties)๋“ค์„ ํ•จ๊ป˜ ๋ถˆ๋Ÿฌ์˜ค๋ฉฐ Bean์„ ๋“ฑ๋กํ•˜๊ฒŒ ๋˜๋Š”๋ฐ(Create๊ฐ€ ์•„๋‹ˆ๋ผ Register์˜ ๊ฐœ๋…์ด๋‹ค.) Context์—์„œ ์Šค์ผ€์ค„๋Ÿฌ Bean ์„ ๋“ฑ๋กํ•˜๊ฒŒ๋˜๊ณ , @Component ๋“ฑ์˜ ์–ด๋…ธํ…Œ์ด์…˜์œผ๋กœ ์ธํ•ด scan์„ ์ง„..

article thumbnail
[Spring] Spring Boot Logback / ์Šคํ”„๋ง ๋กœ๊ทธ ์„ค์ •

๐Ÿ“”Springboot ์— Logback ์ ์šฉํ•˜๊ธฐ ๐Ÿ“„์‹œ์ž‘ ๊ณ„๊ธฐ? ์šฐ๋ฆฌ ํŒ€ ์—…๋ฌด์˜ ํŽธ์˜์„ฑ์„ ์œ„ํ•œ ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ณ ๋ฏผํ•˜๋‹ค๊ฐ€ ์ ์‹ฌ ์‹œ๊ฐ„์— ๊ฐ€๋ณ๊ฒŒ ๋งŒ๋“  ํ”„๋กœ์ ํŠธ(๋“ฑ๋ก ์ž๋ฃŒ ์ž๋™ ๊ฒ€์ˆ˜, ์šด์˜ ํ”„๋กœ์„ธ์Šค ์ด์ƒ ์œ ๋ฌด ์ฒดํฌ, RM ๋ฐœ์†ก ๋“ฑ์˜ ๊ธฐ๋Šฅ์„ ํƒ‘์žฌํ•œ ์ž๋™ ๋ฐฐ์น˜ ์‹œ์Šคํ…œ)๋ฅผ ํŒ€์—์„œ ๊ฒฉํ•˜๊ฒŒ ํ™˜์˜ํ•ด์ฃผ์–ด ๊ฐœ๋ฐœ๊ณ„์—์„œ ์Šคํ…Œ์ด์ง•์œผ๋กœ ์˜ฎ๊ธฐ๊ธฐ๋กœ ํ–ˆ๋‹ค ใ…Žใ…Ž ๋ฐฐ์น˜ ํ”„๋กœ์„ธ์Šค์ด๋‹ค ๋ณด๋‹ˆ Scheduled ๊ธฐ๋Šฅ์„ ๊ฐ€์ง„ ํ”„๋กœ์ ํŠธ๋‹ค. Linux OS ์—์„œ jar๋กœ ๊ฐ€๋ณ๊ฒŒ ๊ตฌ๋™ํ•  ๊ณ„ํš์ด์—ˆ๊ณ , ๊ธฐ์กด์—๋Š” Tomcat์— war๋กœ ๋นŒ๋“œํ•ด์„œ lombok์˜ ๋กœ๊ทธ๋ฅผ ์ฐ์—ˆ์—ˆ๋‹ค. ์ด์ œ๋Š” ๋ณ„๋„ Log ํŒŒ์ผ๋กœ ๊ด€๋ฆฌํ•  ์˜ˆ์ • ์ด๊ธฐ์— ๋กœ๊ทธ ๊ฒฝ๋กœ๋Š” ๋”ฐ๋กœ ์žก์•„์ฃผ์–ด์•ผ ํ–ˆ๋‹ค. ๐Ÿ“logback-spring.xml ๊ฐ์‚ฌํ•˜๊ฒŒ๋„ SpringBoot ์—์„œ๋Š” ํŒŒ์ผ ๋ช…์นญ๋งŒ์œผ๋กœ ์ž๋™์œผ๋กœ ์ธ์‹ํ•ด์ฃผ๋Š” ..

article thumbnail
[NestJS] NestJS ์„ค์น˜ํ•˜๊ธฐ(๋‹จ์ˆœ ์„ค์น˜ ๋ฐ ์‹คํ–‰)

NestJS ์„ค์น˜ ์‚ฌ์ „์„ค์น˜ Node.js ๋ฅผ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค. Node.js ๋งํฌ : nodejs.org/ko/ Node.js Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine. nodejs.org ๋ณธ์ธ์—๊ฒŒ ๋งž๋Š” ๋ฒ„์ „์„ ์„ค์น˜ํ•˜์„ธ์š” : ) ์„ค์น˜๊ฐ€ ์™„๋ฃŒ๋˜๋ฉด, ํ„ฐ๋ฏธ๋„ ์ฐฝ์„ ์—ด๊ณ , ์•„๋ž˜ ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•˜์—ฌ ์ œ๋Œ€๋กœ ์„ค์น˜ํ–ˆ๋Š”์ง€ ํ™•์ธํ•ด๋ด…๋‹ˆ๋‹ค. $ node -v NestJS ์„ค์น˜ Node.js๋ฅผ ์„ค์น˜ํ•˜๊ฒŒ ๋˜๋ฉด ๊ธฐ๋ณธ์ ์œผ๋กœ npm์ด ์ž๋™์œผ๋กœ ์„ค์น˜๋˜๋Š”๋ฐ, npm ๋ช…๋ น์–ด๋ฅผ ์ด์šฉํ•ด ์ „์—ญ(-g)์œผ๋กœ nestjs๋ฅผ ์„ค์น˜(i)ํ•ฉ๋‹ˆ๋‹ค. npm i -g @nestjs/cli ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ ์ ๋‹นํ•œ ํด๋”๋ฅผ ๊ณจ๋ผ ํ”„๋กœ์ ํŠธ๋ฅผ ์ƒ์„ฑํ•ด๋ณด๋„๋ก ํ•ฉ๋‹ˆ๋‹ค. ์ €๋Š” ์—ฌ๊ธฐ์„œ 'nestPr..

article thumbnail
[Spring Property / Spring Scheduler] ์Šคํ”„๋ง ํ”„๋กœํผํ‹ฐ ์ ์šฉ / ์Šค์ผ€์ค„๋Ÿฌ / Spring Scheduler

์„œ์‹ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•  ๋•Œ, ๊ฐ€๋ณ€์˜ ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ๋Š” ์ •๋ณด๋Š” ๋ชจ๋‘ properties์— ๋„ฃ๋Š”๋‹ค. ํ•„์ž์˜ ๊ฒฝ์šฐ ํ”„๋กœ์ ํŠธ ๋ฐฐํฌ ์ˆœ์„œ์ธ 'DEV' -> 'STAGE' -> 'PROD' ์—์„œ 'STAGE' -> 'DEV' ๋กœ ๋‚ด๋ฆฌ๊ฑฐ๋‚˜, 'PROD' ๋‹จ๊ณ„์—์„œ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ์— ์ฃผ๋กœ ์“ฐ๊ณ  ์žˆ๋‹ค. config.flag.type ์— 'D', 'S', 'P' ๋กœ ๊ตฌ๋ถ„ํ•˜์—ฌ config.flag.type์ด 'D' ์ผ ๊ฒฝ์šฐ, DEV ์„œ๋ฒ„๋กœ ๋“ฑ๋กํ•œ config๋ฅผ ๋ถˆ๋Ÿฌ์˜ค๊ณ  ๋ญ ๊ทธ๋Ÿฐ์‹์ด๋‹ค. ์„œ๋ฒ„๋ฅผ ์ค‘๋‹จํ•˜์ง€ ์•Š๊ณ  ์ด ํŒŒ์ผ๋งŒ์„ ์ˆ˜์ •ํ•จ์œผ๋กœ์จ ํ”„๋กœ์ ํŠธ์˜ ์„ค์ • ๊ฐ’๋“ค์„ ํ•ธ๋“ค๋ง ํ•œ๋‹ค๋Š” ์ ์—์„œ ๊ต‰์žฅํžˆ ์œ ์šฉํ•˜๋‹ค. ํ…Œ์ŠคํŠธ ์‹œ๋‚˜๋ฆฌ์˜ค Spring ๊ตฌ์กฐ๋กœ ํ”„๋กœ์ ํŠธ๋ฅผ ๊ตฌ์„ฑํ–ˆ๋‹ค๋ฉด ๊ต‰์žฅํžˆ ์‹ฌํ”Œํ•˜๋‹ค. ์ด๋ฏธ classpath:resources/application.pr..