๐ํ๋ก์ ํธ ์๊ฐ์ง๋จ ๐๋๋ผ์, ๊ทธ๋ฆฌ๊ณ .. ์ด ๊ธ์ ๋ด์ฉ์ ๋ณด๊ณ ์ค๋ก ๋๋ผ์ ๋ค. ์ธ์์ ์ฌ์ง์ด ๋ด๊ฐ ์์ ์งํ ์ค์ธ ๋ด์ฉ๋ค์ด๋ค. ๊ฐ์ฌํ๊ฒ๋ ํฌ๊ฒ 10๊ฐ ํญ๋ชฉ์ ์ฒดํฌ๋ฆฌ์คํธ๋ฅผ ๋ง๋ค์ด์ฃผ์ จ๊ณ , ๋คํํ๋ ๋๋ 10๊ฐ ํญ๋ชฉ ๋ชจ๋์ ์ฒดํฌํ ์ ์์๋ค. ์ ํด์ง ๊ธฐ๊ฐ์ ๋ง์ถ์ด ํ๋ก์ ํธ๋ฅผ ๋๋ด๊ณ , ๋ค์ ํ๋ก์ ํธ๋ฅผ ์ํด ์ฒ ์ํ๊ธฐ ๊ธ๊ธํ๋ค. ์ฐ๋ฆฌ๋ ์๊ธ์์ด๋๊น, ๊ทธ๋ ๋ค๋ณด๋ ์ด๋ฏธ ๊ฐ๋ฐ์ด ์๋ฃ๋ ํ๋ก์ ํธ๋ ์ด์๊ฐ ๋ฐ์ํ๊ฑฐ๋ ์ถ๊ฐ ๊ฐ๋ฐ์ด ์กด์ฌํ์ง ์์ผ๋ฉด LTS๋ก ๋ณด๊ณ ๋ค์ ๋ณผ ์๊ฐ์ด ๋์ง ์๋๋ค. ๊ทธ๋ฌ๋ค ๋ฌธ๋ ์ฐ์ฐจ๊ฐ ์์ด๊ณ , ๋ด๊ฐ ๊ฐ๋ฐํ ํ๋ก์ ํธ๋ฅผ ๋ณผ ๋, ๊ทธ ์ถฉ๊ฒฉ์.. ์ ๋ญ๋๊น ์๋นํ ๋ฏผ๋งํ๋ค. ๋น์์ ์๊ฐ ์์ด ์งฐ๋ ์ฝ๋๋ ๋ถ๋๋ฌ์์ ์์ ์ ํ๊ณ , ๋ง์ ๊ณ ๋ฏผ์ ํ๋ฉฐ ์งฐ๋ ์ฝ๋๋ ์ง๊ธ ๋ค์ ๋ด๋ ๋งค๋ ฅ์ ์ธ ์ฝ๋๋ค. ๋๋ฅผ ์ํด, ๋..
๐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์ ์ตํ์ ๋ฒ..
๐ํ ์ดํ๋ก์ ํธ ๐Front-End ๐React ๐Back-End ๐Spring Boot(2.5.5) ๐DB ๐MySQL or MariaDB ๐API ๐Node.js
๐๋ก๊ทธ ๐๊ฐ์ โจ์ ๋ง์ ํ๋ก์ ํธ์ ์๋น์ค๋ค์ ์ด์ํ๋ค๋ณด๋ฉด ์ฐ๋ฆฌ์ Log ํ์ผ๊ณผ ๋๋ ํ ๋ฆฌ(ํน์ ํด๋)๋ ์ธ์ ๋ ํํ ์ด๋ค. ์ฝ๋ฉํ๋๋ผ ๋ฐ์ ์ฐ๋ฆฌ์๊ฒ ๋ก๊ทธ์ ์ฐ์ ์์๋ ์ ~~๋ฉ๋ฆฌ, ์๋์ง ์ ์ผ ๋ค์ ์๋ค. ์ค๊ณ์ ๋ํ ๊ฒ๋ณด๋ค ๋จ๊ธฐ๋ ๊ฒ์๋ง ์ง์คํ๋ค. ๊ทธ๋ ๋ค ๋ณด๋ ๊ท์ฝ์ด ์๊ณ , ๋ชจ๋ ๊ฑธ ๋จ๊ธด ๋ก๊ทธ์ ํ์ง์ ์ ํ๋ ์ ๋ฐ์ ์๋ค. ๋ก๊ทธ ํ์ผ์ด KB๋ ์๋๊ณ MB๋ ์๋ GB..? ์ฌ์ง์ด ๋์ผํ ๋จ์ด์ ๋ฐ์ดํฐ๋ผ๋? ์ผ์์ ! ๋ฐ์ดํฐ๊ฐ ๋๋ฌด ๋ง์์ ์ฝ๊ธฐ๊ฐ ์ด๋ ต์์! ์์ ๋น์ทํ ๊ฒฝํ์ ๊ฐ์ง ์ ์ด ์๋ค๋ฉด? ์ด ํฌ์คํ ์ด ์ฝ์๋ง ํ์ง ์์๊น ๐๋ก๊ทธ์ '์ ์' ๐๋ก๊ทธ๋ '์ผ์ง[๊ธฐ๋ก]' ์ด๋ผ๋ ๋ป์ ์ง๋๋ค. ์ด ํฌ์คํ ์์ ๋ฐ๋ผ๋ณด๋ ์์ ์ ๋ก๊ทธ๋ ์์คํ ์ด๋ ์๋น์ค ๋ฑ์ ๊ฐ๋ ์ ๋จ๊ธฐ๋ ์ด๋ฒคํธ์ ๋ํ ๊ธฐ๋ก์ด๋ค. ์ฐ๋ฆฌ๋ ์ด ๊ธฐ๋ก..
๐Scheduled ๋๋ ๋ ์ Scheduled ๊ธฐ๋ฅ์ ์ฌ์ฉํ์๋ค๋ฉด, ํ ๋ฒ์ฏค์ ๊ฒช์ด๊ฐ๋ ์ฝ์ค๋ผ๊ณ ์๊ฐํ๋ค. ํนํ๋ ์ด๋ฒ์ Logback ๊ธฐ๋ฅ์ ์ถ๊ฐ ํ๋ฉฐ, Spring ์ค์ผ์ค๋ฌ์์ ๋ก๊ทธ๊ฐ ๋ ๋ฒ์ฉ ์ฐํ๋ ๊ฒ์ ๋ณด๊ณ ์์ฐจ ์ถ์๋ค. ๐์์ธ? ๐์ค์ผ์ค๋ฌ๊ฐ ์ค๋ณต์ผ๋ก ์คํ๋๋ ์์ธ์ ๋ค์ํ๊ฒ ์์ง๋ง, Spring์์๋ ๋ํ์ ์ผ๋ก Bean ์์ฑ์ด ๋ ๋ ๋ฐ์ํ๋ค. Bean์ ์์ฐจ์ ์ผ๋ก @Configuration ์ด๋ ธํ ์ด์ ์ด ์ค์ ๋ config Class ๋ฅผ ์ฝ์ผ๋ฉฐ ์ด์ ๊ด๋ จ๋ ์ค์ ํ์ผ(properties)๋ค์ ํจ๊ป ๋ถ๋ฌ์ค๋ฉฐ Bean์ ๋ฑ๋กํ๊ฒ ๋๋๋ฐ(Create๊ฐ ์๋๋ผ Register์ ๊ฐ๋ ์ด๋ค.) Context์์ ์ค์ผ์ค๋ฌ Bean ์ ๋ฑ๋กํ๊ฒ๋๊ณ , @Component ๋ฑ์ ์ด๋ ธํ ์ด์ ์ผ๋ก ์ธํด scan์ ์ง..
๐Springboot ์ Logback ์ ์ฉํ๊ธฐ ๐์์ ๊ณ๊ธฐ? ์ฐ๋ฆฌ ํ ์ ๋ฌด์ ํธ์์ฑ์ ์ํ ํ๋ก์ธ์ค๋ฅผ ๊ณ ๋ฏผํ๋ค๊ฐ ์ ์ฌ ์๊ฐ์ ๊ฐ๋ณ๊ฒ ๋ง๋ ํ๋ก์ ํธ(๋ฑ๋ก ์๋ฃ ์๋ ๊ฒ์, ์ด์ ํ๋ก์ธ์ค ์ด์ ์ ๋ฌด ์ฒดํฌ, RM ๋ฐ์ก ๋ฑ์ ๊ธฐ๋ฅ์ ํ์ฌํ ์๋ ๋ฐฐ์น ์์คํ )๋ฅผ ํ์์ ๊ฒฉํ๊ฒ ํ์ํด์ฃผ์ด ๊ฐ๋ฐ๊ณ์์ ์คํ ์ด์ง์ผ๋ก ์ฎ๊ธฐ๊ธฐ๋ก ํ๋ค ใ ใ ๋ฐฐ์น ํ๋ก์ธ์ค์ด๋ค ๋ณด๋ Scheduled ๊ธฐ๋ฅ์ ๊ฐ์ง ํ๋ก์ ํธ๋ค. Linux OS ์์ jar๋ก ๊ฐ๋ณ๊ฒ ๊ตฌ๋ํ ๊ณํ์ด์๊ณ , ๊ธฐ์กด์๋ Tomcat์ war๋ก ๋น๋ํด์ lombok์ ๋ก๊ทธ๋ฅผ ์ฐ์์๋ค. ์ด์ ๋ ๋ณ๋ Log ํ์ผ๋ก ๊ด๋ฆฌํ ์์ ์ด๊ธฐ์ ๋ก๊ทธ ๊ฒฝ๋ก๋ ๋ฐ๋ก ์ก์์ฃผ์ด์ผ ํ๋ค. ๐logback-spring.xml ๊ฐ์ฌํ๊ฒ๋ SpringBoot ์์๋ ํ์ผ ๋ช ์นญ๋ง์ผ๋ก ์๋์ผ๋ก ์ธ์ํด์ฃผ๋ ..
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..
์์ ํ๋ก์ ํธ๋ฅผ ์งํํ ๋, ๊ฐ๋ณ์ ๊ฐ๋ฅ์ฑ์ด ์๋ ์ ๋ณด๋ ๋ชจ๋ properties์ ๋ฃ๋๋ค. ํ์์ ๊ฒฝ์ฐ ํ๋ก์ ํธ ๋ฐฐํฌ ์์์ธ 'DEV' -> 'STAGE' -> 'PROD' ์์ 'STAGE' -> 'DEV' ๋ก ๋ด๋ฆฌ๊ฑฐ๋, 'PROD' ๋จ๊ณ์์ ์ฌ์ฉํ ๊ฒฝ์ฐ์ ์ฃผ๋ก ์ฐ๊ณ ์๋ค. config.flag.type ์ 'D', 'S', 'P' ๋ก ๊ตฌ๋ถํ์ฌ config.flag.type์ด 'D' ์ผ ๊ฒฝ์ฐ, DEV ์๋ฒ๋ก ๋ฑ๋กํ config๋ฅผ ๋ถ๋ฌ์ค๊ณ ๋ญ ๊ทธ๋ฐ์์ด๋ค. ์๋ฒ๋ฅผ ์ค๋จํ์ง ์๊ณ ์ด ํ์ผ๋ง์ ์์ ํจ์ผ๋ก์จ ํ๋ก์ ํธ์ ์ค์ ๊ฐ๋ค์ ํธ๋ค๋ง ํ๋ค๋ ์ ์์ ๊ต์ฅํ ์ ์ฉํ๋ค. ํ ์คํธ ์๋๋ฆฌ์ค Spring ๊ตฌ์กฐ๋ก ํ๋ก์ ํธ๋ฅผ ๊ตฌ์ฑํ๋ค๋ฉด ๊ต์ฅํ ์ฌํํ๋ค. ์ด๋ฏธ classpath:resources/application.pr..