์ ๊ท ํํ์(๋ณด์กฐ์ ๋ชฉ * ์ธ์ ์ฐ์ด๋๊ฐ? ๐๊ฐ๋ฐ์ ํ๋ค๋ณด๋ฉด, ์ ํจ์ฑ ๊ฒ์ฆ์ ์ํด ์ ๊ท ํํ์์ ์ฌ์ฉํ ๋๊ฐ ์๋ค. ์ซ์๋ง ์ ๋ ฅ, ์๋ฌธ์๋ง ์ ๋ ฅ, ์ฐ๋ฝ์ฒ์ '-' ๋ฅผ ํฌํจํ์ฌ ์ ๋ ฅ ๋ฑ๋ฑ.. ์ ํ์ ๋๊ณ ์ ํ ๋ ์ฌ์ฉํ๋ค. ์ด์ ์์ฃผ ์ฐ์ด๋ ํํ์์ ๋ฏธ๋ฆฌ ๋ง๋ค์ด๋์ด ๊ณต์ ํ๊ณ ์ ํ๋ค. ์ ๊ท ํํ์ ์ค๋ช ^[0-9]*$ ์ซ์ ^[a-zA-Z]*$ ์๋ฌธ์ ^[๊ฐ-ํฃ]*$ ํ๊ธ \\w+@\\w+\\.\\w+(\\.\\w+)? E-Mail ^\d{2,3}-\d{3,4}-\d{4}$ ์ ํ๋ฒํธ ^01(?:0|1|[6-9])-(?:\d{3}|\d{4})-\d{4}$ ํด๋์ ํ๋ฒํธ \d{6} \- [1-4]\d{6} ์ฃผ๋ฏผ๋ฑ๋ก๋ฒํธ ^\d{3}-\d{2}$ ์ฐํธ๋ฒํธ ์์ฑ ๋ฐฉ๋ฒ์ ์๋์ ๊ฐ๋ค. #์ฐ๋ฝ์ฒ ์ํ @Pattern(reg..
@SuppressWarnings 1. ์ธ์ ์ฐ์ผ๊น? ๐IDE๋ฅผ ์ฌ์ฉํ๋ค ๋ณด๋ฉด ์ปดํ์ผ ๊ฒฝ๊ณ ๋ฅผ ๋ด๋ณด๋ด๋ ๊ฒฝ์ฐ๊ฐ ์๋ค. ์ฌ์ฉํ์ง ์๋ ์ฝ๋ ๋๋ ๋ถํ์ํ ์ฝ๋ ๋ฑ์ ๊ถ์ฅํ์ง ์๋ ์ฝ๋๋ฅผ ์์ฑํ ๊ฒฝ์ฐ์ ํด๋นํ๋ค. @SuppressWarnings๋ ์ด๋ฐ ๊ฒฝ๊ณ ๋ฅผ ์ ์ธํ ๋ ์ฌ์ฉํ๋ค. ๐จ๐ป๐ปโจ all : ๋ชจ๋ ๊ฒฝ๊ณ cast : ์บ์คํธ ์ฐ์ฐ์ ๊ด๋ จ ๊ฒฝ๊ณ dep-ann : ์ฌ์ฉํ์ง ๋ง์์ผ ํ ์ฃผ์ ๊ด๋ จ ๊ฒฝ๊ณ deprecation : ์ฌ์ฉํ์ง ๋ง์์ผ ํ (๊ถ์ฅ๋์ง ์๋ ๊ธฐ๋ฅ) ๋ฉ์๋ ๊ด๋ จ ๊ฒฝ๊ณ fallthrough : switch ๋ฌธ์์ break ๋๋ฝ ๊ด๋ จ ๊ฒฝ๊ณ finally : ๋ฐํํ์ง ์๋ finally ๋ธ๋ก ๊ด๋ จ ๊ฒฝ๊ณ null : null ๋ถ์ ๊ด๋ จ ๊ฒฝ๊ณ rawtypes : ์ ๋ค๋ฆญ์ ์ฌ์ฉํ๋ ํด๋์ค ๋งค๊ฐ ๋ณ์๊ฐ ๋ถ..
๐Springboot ์ Logback ์ ์ฉํ๊ธฐ ๐์์ ๊ณ๊ธฐ? ์ฐ๋ฆฌ ํ ์ ๋ฌด์ ํธ์์ฑ์ ์ํ ํ๋ก์ธ์ค๋ฅผ ๊ณ ๋ฏผํ๋ค๊ฐ ์ ์ฌ ์๊ฐ์ ๊ฐ๋ณ๊ฒ ๋ง๋ ํ๋ก์ ํธ(๋ฑ๋ก ์๋ฃ ์๋ ๊ฒ์, ์ด์ ํ๋ก์ธ์ค ์ด์ ์ ๋ฌด ์ฒดํฌ, RM ๋ฐ์ก ๋ฑ์ ๊ธฐ๋ฅ์ ํ์ฌํ ์๋ ๋ฐฐ์น ์์คํ )๋ฅผ ํ์์ ๊ฒฉํ๊ฒ ํ์ํด์ฃผ์ด ๊ฐ๋ฐ๊ณ์์ ์คํ ์ด์ง์ผ๋ก ์ฎ๊ธฐ๊ธฐ๋ก ํ๋ค ใ ใ ๋ฐฐ์น ํ๋ก์ธ์ค์ด๋ค ๋ณด๋ Scheduled ๊ธฐ๋ฅ์ ๊ฐ์ง ํ๋ก์ ํธ๋ค. Linux OS ์์ jar๋ก ๊ฐ๋ณ๊ฒ ๊ตฌ๋ํ ๊ณํ์ด์๊ณ , ๊ธฐ์กด์๋ Tomcat์ war๋ก ๋น๋ํด์ lombok์ ๋ก๊ทธ๋ฅผ ์ฐ์์๋ค. ์ด์ ๋ ๋ณ๋ Log ํ์ผ๋ก ๊ด๋ฆฌํ ์์ ์ด๊ธฐ์ ๋ก๊ทธ ๊ฒฝ๋ก๋ ๋ฐ๋ก ์ก์์ฃผ์ด์ผ ํ๋ค. ๐logback-spring.xml ๊ฐ์ฌํ๊ฒ๋ SpringBoot ์์๋ ํ์ผ ๋ช ์นญ๋ง์ผ๋ก ์๋์ผ๋ก ์ธ์ํด์ฃผ๋ ..
์์ ํ๋ก์ ํธ๋ฅผ ์งํํ ๋, ๊ฐ๋ณ์ ๊ฐ๋ฅ์ฑ์ด ์๋ ์ ๋ณด๋ ๋ชจ๋ properties์ ๋ฃ๋๋ค. ํ์์ ๊ฒฝ์ฐ ํ๋ก์ ํธ ๋ฐฐํฌ ์์์ธ 'DEV' -> 'STAGE' -> 'PROD' ์์ 'STAGE' -> 'DEV' ๋ก ๋ด๋ฆฌ๊ฑฐ๋, 'PROD' ๋จ๊ณ์์ ์ฌ์ฉํ ๊ฒฝ์ฐ์ ์ฃผ๋ก ์ฐ๊ณ ์๋ค. config.flag.type ์ 'D', 'S', 'P' ๋ก ๊ตฌ๋ถํ์ฌ config.flag.type์ด 'D' ์ผ ๊ฒฝ์ฐ, DEV ์๋ฒ๋ก ๋ฑ๋กํ config๋ฅผ ๋ถ๋ฌ์ค๊ณ ๋ญ ๊ทธ๋ฐ์์ด๋ค. ์๋ฒ๋ฅผ ์ค๋จํ์ง ์๊ณ ์ด ํ์ผ๋ง์ ์์ ํจ์ผ๋ก์จ ํ๋ก์ ํธ์ ์ค์ ๊ฐ๋ค์ ํธ๋ค๋ง ํ๋ค๋ ์ ์์ ๊ต์ฅํ ์ ์ฉํ๋ค. ํ ์คํธ ์๋๋ฆฌ์ค Spring ๊ตฌ์กฐ๋ก ํ๋ก์ ํธ๋ฅผ ๊ตฌ์ฑํ๋ค๋ฉด ๊ต์ฅํ ์ฌํํ๋ค. ์ด๋ฏธ classpath:resources/application.pr..
SMTP(Simple Mail Transfer Protocol) * SMTP๋? ๐Simple Mail Transfer Protocol์ ์ฝ์๋ก ์ ์ ๋ฉ์ผ ์ ์ก์ ์ํ ํ์ค ํ๋กํ ์ฝ์ด๋ค. (์ด๋ฉ์ผ์ ์ก์์ ํ๋ ์๋ฒ๋ฅผ SMTP ์๋ฒ๋ผ๊ณ ํ๋ค) * ์๋๋ฐฉ์์? ์ด๋ฉ์ผ ํด๋ผ์ด์ธํธ์ ๋ฉ์ผ ์๋ฒ ๊ฐ์ ๋ฐ์ดํฐ ๊ตํ ํ๋ก์ธ์ค๋ฅผ ๊ฑฐ์ณ ๋์ํ๋ค. SMTP ์ฐ๊ฒฐ: ํด๋ผ์ด์ธํธ์ ์๋ฒ ๊ฐ TCP ์ฐ๊ฒฐ๋ก ์ด๋ฉ์ผ ์ ์ก ํ๋ก์ธ์ค๋ฅผ ์์ ์ด๋ฉ์ผ ๋ฐ์ดํฐ ์ ์ก: ํด๋ผ์ด์ธํธ๊ฐ ์ด๋ฉ์ผ ํค๋(๋์ ๋ฐ ์ ๋ชฉ ์ค ํฌํจ), ์ด๋ฉ์ผ ๋ณธ๋ฌธ, ๊ธฐํ ์ถ๊ฐ ๊ตฌ์ฑ ์์๋ก ์ด๋ฃจ์ด์ง ์ค์ ์ด๋ฉ์ผ ์ฝํ ์ธ ์ ํจ๊ป ์ผ๋ จ์ ๋ช ๋ น์ ์๋ฒ์ ๋ณด๋ ๋ฉ์ผ ์ ์ก ์์ด์ ํธ(MTA): MTA๋ ์์ ์์ ์ด๋ฉ์ผ ์ฃผ์ ๋๋ฉ์ธ์ ํ์ธํ๊ณ ๋ฐ์ ์์ ๋ค๋ฅผ ๊ฒฝ์ฐ ์์ ์์ IP์ฃผ์๋ฅผ ์ฐพ๋๋ก ..
๐SMTP For Gmail ๐Gmail ๋ฒ์ ๐Batch ํ๋ก์ธ์ค๋ฅผ ๊ฐ๋ฐํ๋ ์ค, ํน์ ์๋์ ๋ฐ๊ณ ์ถ์ ๊ฒฝ์ฐ๊ฐ ์๊ฒผ๋ค. Batch ์์๊ณผ ์๋ฃ ์์ ์ด๋ผ๋์ง, Schedule ์ ๋ฐ๋ฅธ ๋ฐ์ดํฐ ํ์ธ์ด๋ผ๋์ง.. ๊ทธ๋ฐ ์๊ฐ์ ์ํด SMTP Library ๋ฅผ ์ฌ์ฉํด์ ์ฌํํ๊ฒ ๊ตฌ์ถํด๋ดค๋ค. ์ฌ๊ธฐ์์ ํ์ฅ์ฑ์ ์ผ๋์ ๋๊ณ ์ถ๊ฐ ๊ฐ๋ฐ์ ํ๋ฉด ๋์ฑ ๋ฉ์ง ์ฝ๋๊ฐ ๋ ๊ฒ์ด๋ค. ์๋๋ ๋ฐ๋ก ๊ตฌํํ ์๋๋ฆฌ์ค์ด๋ค. * ์์ ์๋ฅผ ๊ณ ์ ํ๋๋ก * ํ์ ์ฐธ์กฐ๋ก ๋๋ฅผ ๊ณ ์ ํ๋๋ก * ํ ๋ฉ์ผ์ ์๋ ์์ฑํ๋๋ก * ์กฐ๊ฑด์ ๋ฐ๋ฅธ ๋ฉ์ผ ๋ด์ฉ์ด ๋ค๋ฅด๊ฒ ์ ์ก๋๋๋ก * ํน์ ํ๋ผ๋ฏธํฐ๋ฅผ ํตํด์๋ ๋ฉ์ผ์ด ์ ์ก๋๋๋ก ๐จ๐ป๐ปโจ package smtp; import java.util.ArrayList; import java.util.List; impor..
์ ๋ ฅ๋ฐ์ ์ซ์๋งํผ์ ๋๋ค ๋น๋ฐ๋ฒํธ ์์ฑ ์์ฒญ์ฌํญ์ ์ํด, ๋น๋ฐ๋ฒํธ ์ด๊ธฐํ ์ ๋๋ค ๊ฐ์ผ๋ก ๋น๋ฐ๋ฒํธ๋ฅผ ์์ฑํด๋ฌ๋ผ๊ณ ํ์๋ค. ์ซ์, ์ ๋์๋ฌธ์๋ฅผ ์์ด์ ํน์ ์๋ฆฟ ์๋ก ๋ง์ด๋ค. ์ผ๋จ์ ์๊ตฌ์กฐ๊ฑด์ ๋ง๊ฒ๋ ๋น ๋ฅด๊ฒ ์งํํ์๋ค. private static String getRandomPassword(int passwordLength) { char[] pwdcharSet = new char[] { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z', 'A', 'B', 'C', 'D', 'E', ..
*์์์ ํตํด ํด๋น ์์์ ๊ฐ๋งน์ ์ ๋ณด๋ฅผ ๊ฐ์ ธ์ค์. java - controller //๊ฐ๋งน์ ๋ชฉ๋ก @RequestMapping(value = "/aJaxUserOrgList.do", method = RequestMethod.GET) public void aJaxUserOrgList(HttpSession session, HttpServletRequest request, HttpServletResponse response) { //Controller์์ ๋ฐ๋ก write๋ฅผ ํด์ค ์์ ์ด๊ธฐ์ ๋ฐํํ์ void. ๋์ ๋ฐ๋ผ ์์ //Log4j2.logger.info(Log4j2.log + getClass + Util.getMethodName()); //javascript์์ ํธ์ถํ Parameter. String..