SpringBoot49 [springBoot] daum SMTP ๋ฉ์ผ ๋ฐ์ก daum์ SMTP๋ฅผ ์ด์ฉํด์ ๋ฉ์ผ ๋ฐ์กํ๋ ์์ ๊ฐ๋ฐํ๊ฒฝ: springBoot 2.7.14, gradle ์ ํ์กฐ๊ฑด(daum smtp ํ์ฑํ) ์ค์ > IAMP/POP3(์ ๊ธฐ์ ์ ๋ณด๋ฅผ ํ๋กํผํฐ์ ๊ธฐ์ ) ์์กด์ฑ ์ถ๊ฐ(gradle) implementation 'org.springframework.boot:spring-boot-starter-mail' application.yml์ smtp ์ค์ ์ถ๊ฐ spring: mail: host: smtp.daum.net port: 465 username: #์ก์ ๋ฉ์ผ์ฃผ์(๋ณด๋ด๋ ๋ฉ์ผ ์ฃผ์) password: #์ก์ ๋ฉ์ผ ์ฃผ์์ ๋น๋ฐ๋ฒํธ(์ฌ๊ธฐ์ 2์ฐจ ์ธ์ฆ ์ฑ ๋น๋ฐ๋ฒํธ ์ ๋ ฅํจ) properties: #tls ์ค์ mail: smtp: auth: true ssl: enable:.. IT/development 2023. 8. 22. [springBoot] ์๋ก ๋ค๋ฅธ branch๋ฅผ ๋์์ ๋์ฐ๋ ค๋ฉด? ๊ฑฐ์ฐฝํ ๋ฐฉ๋ฒ์ ์๋๊ณ ๋งค์ฐ ๊ฐ๋จํ๋ค. ์ฌ์ด ์ดํด๋ฅผ ์ํด ์์ค์ ์จ ๋ณด๊ฒ ๋ค. A๋ผ๋ branch๋ springBoot, thymeleaf, javascript/jQuery๋ก ๊ฐ๋ฐ ๋์ด ์๋ ์ํ์ด๊ณ B๋ผ๋ branch๋ A branch์์ ์๋ก branch๋ฅผ ๋ด ๋ธ๋์น๋ค. B branch์์ ํด๋ผ์ด์ธํธ ์ฌ์ด๋๋ฅผ javascript/jQuery๋ฅผ Vue.js๋ก ์ ํํ๋ ์์ ์ ํ๊ธฐ ์ํด์๋ค. A branch์์ ๊ธฐ์กด์ ๋๋ ๊ธฐ๋ฅ์ ์ ์งํ๋ฉด์ ํ๊ฒฝ๋ง ๋ณํ๋๋ ์ํฉ์ด๋ค. ์ด ๋ A branch์ ํ๋ฉด์ ๋ณด๋ฉด์ ๊ฐ๋ฐํ๋๊ฒ ๋น์ฐํ ํธํ๋ค. ์ด๋ฐ ์ํฉ์ด๋ผ๊ณ ๊ฐ์ ํ์ ๋ ๋ช ๊ฐ์ง ๋ฐฉ๋ฒ์ด ์๊ฒ ์ง๋ง ๋ด ๊ฒฝ์ฐ๋ ์๋์ฒ๋ผ ํ๋ค. A branch๋ port ๋ณ๊ฒฝ ํ build ํด์ jarํ์ผ๋ก ๋ก์ปฌ์์ ๋์ฐ๊ณ B branch.. IT/development 2023. 8. 12. [IDE] IntelliJ ํญ ์ข/์ฐ ์ด๋(feat. Tab Shifter) ํ๋ฌ๊ทธ์ธ ์ค์น ํ์(Tab Shifter) ์ฐ์ธก ํญ ์ด๋: ctrl + alt + shift + ] ์ข์ธก ํญ ์ด๋: ctrl + alt + shift + [ ํญ์ ๋๋๊ณ ๊ฐ๋ฐํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์๋ฐ ์ด ๊ฒฝ์ฐ ํค๋ณด๋๋ก๋ง ์ด๋ํ ์ ์์ผ๋ ์๋นํ ๋ง๊ฐํ๋ค. IT/development 2023. 6. 22. [thymeleaf] js์์ thymeleaf๊ฐ ์ฌ์ฉํ๊ธฐ js์์ thymeleaf์์ ์ฌ์ฉํ๊ธฐ //th:inline="javascript" ๋ช ์ํด์ผ ํจ IT/development 2023. 6. 21. [springBoot] spring security passwordEncode ๋ชฉ์ฐจ ddl /* ์ฌ์ฉ์ */ CREATE TABLE "USER_INFO" ("USER_NO" NUMBER NOT NULL ENABLE, "USER_ID" VARCHAR2(20) NOT NULL ENABLE, "USER_PASSWORD" VARCHAR2(250) NOT NULL ENABLE, "USER_NAME" VARCHAR2(20) NOT NULL ENABLE, "USER_EMAIL" VARCHAR2(20) NOT NULL ENABLE, "USE_YN" CHAR(1) DEFAULT 'Y' NOT NULL ENABLE, "REG_DATE" DATE DEFAULT SYSDATE NOT NULL ENABLE, "MOD_DATE" DATE DEFAULT SYSDATE, CONSTRAINT "USER_INFO.. IT/development 2023. 6. 4. [springBoot/thymeleaf] ajax ํ์ด์ง๋ค์ด์ sample(feat. study์ฉ) ๋ชฉ์ฐจ ddl(Oracle) /* ๊ฒ์ํ */ CREATE TABLE "BOARD_INFO" ("BOARD_NO" NUMBER NOT NULL ENABLE, "TITLE" VARCHAR2(50) NOT NULL ENABLE, "CONTENT" VARCHAR2(4000) NOT NULL ENABLE, "USER_ID" VARCHAR2(20) NOT NULL ENABLE, "USE_YN" CHAR(1) DEFAULT 'Y' NOT NULL ENABLE, "REG_DATE" DATE DEFAULT SYSDATE NOT NULL ENABLE, "MOD_DATE" DATE, CONSTRAINT "BOARD_INFO_PK" PRIMARY KEY ("BOARD_NO") ); COMMENT ON COLUMN BOARD_.. IT/development 2023. 6. 4. [spring] springBoot ajax json๊ณผ file ์ ์ก controller /** * ๊ฒ์๊ธ ๋ฑ๋ก ์ฒ๋ฆฌ(๋น๋๊ธฐ) * @param boardVo * @param files * @return */ @PostMapping(value = "/regAjax") @ResponseBody public Integer regAjax(@RequestPart(value = "boardVo") BoardVo boardVo, @RequestPart(value = "files", required = false) List files, HttpSession session) throws IOException, Exception { //ํ ์คํธ๋๊น try catch๋ก ์์ธ์ฒ๋ฆฌ ํ์ง ์๊ณ ๊ทธ๋ฅ throws๋ก ๋์ก๋ค. UserVo userInfo = getUserSessionInfo(sessio.. IT/development 2023. 6. 3. [logback] log pattern ์ค์ ${LOG_PATTERN} ${LOG_PATTERN} ๊ฒฐ๊ณผ๊ฐ IT/development 2023. 5. 14. [logback] logback ํ์ผ ์์ฑ [%d{yyyy-MM-dd HH:mm:ss.SSS}] %-3level [%logger{0}:%line] : %msg %n [%d{yyyy-MM-dd HH:mm:ss.SSS}] %-3level [%logger{0}:%line] SQL : %n%msg %n ${LOG_DIR}/${LOG_FILE_NAME}.log [%d{yyyy-MM-dd HH:mm:ss.SSS}] %-3level [%logger{0}:%line] : %msg %n IT/development 2023. 5. 13. [springBoot] springBoot Interceptor ๋ก๊ทธ์ธ ์ฒดํฌ LoginInterceptor package study.thboard2.common.interceptor; import lombok.extern.slf4j.Slf4j; import org.springframework.web.servlet.HandlerInterceptor; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; @Slf4j //๋ก๊ทธ์ธ ์ธํฐ์ ํฐ public class LoginInterceptor implements HandlerInterceptor { //์๋์ฒ๋ผ ์์กด์ฑ ์ฃผ์ ํ๋ ค๋ฉด config์์ @Bean์ผ๋ก.. IT/development 2023. 5. 13. ์ด์ 1 2 3 4 5 ๋ค์