IT/development205 [JavaScript] ํ์ฌ๋ ์ง์ ํน์ ๋ ์ง ๋น๊ต // ์ ๋ ฅ์ผ("yyyymmdd" ํ์)๊ณผ ํ์ฌ๋ ์ง๋ฅผ ๋น๊ต ํ boolean type์ผ๋ก return function isPreviousDay(dt) { //์ ๋ ฅ ๋ ์ง ๋ ์์ผ const year = dt.substring(0, 4); const month = dt.substring(4, 6); const date = dt.substring(6, 8); //yyyy-mm-dd ํฌ๋งท ์ธํ ("-"๋ฅผ ๋ถ์ด์ง ์์ผ๋ฉด Invalid Date๋ก ์ธํ ๋จ) const inputDt = new Date(year + "-" + month + "-" + date); console.log("inputDt : " + inputDt); //ํ์ฌ๋ ์ง const now = new Date(); console.log("now : " + .. IT/development 2023. 6. 13. [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. [mybatis] mybatis oracle merge into mapper.xml SELECT BOARD_SNO_SEQ.NEXTVAL AS boardSno FROM DUAL /* ๊ฒ์๊ธ ๋ฑ๋ก/์์ */ MERGE INTO BOARD_INFO A /* ๋น๊ต ์กฐ๊ฑด(boardSno๊ฐ ๊ฐ์์ง ๋น๊ต) */ USING DUAL ON(A.BOARD_SNO = #{boardSno}) WHEN MATCHED THEN /* update(boardSno๊ฐ ์ผ์นํ๋ฉด update) */ UPDATE TITLE = #{title} , CONTENT = #{content} , MOD_DATE = SYSDATE WHERE BOARD_SNO = #{boardSno} /* insert(boardSno๊ฐ ๋ถ์ผ์น ํ ๊ฒฝ์ฐ insert) */ WHEN NOT MATCHED THEN INSERT ( BO.. IT/development 2023. 6. 3. [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. [thymeleaf] thymeleaf javascript๋ก ๋ณ์ 1๊ฐ ์ด์ ์ ๋ฌ ... //์์ธ ํ์ (2๊ฐ์ ๋งค๊ฐ๋ณ์๋ฅผ ๋ฐ์) function annualViewPop(id, sno) { const width = 750; const height = 600; const left = (window.innerWidth - width) / 2; const top = (window.innerHeight - height) / 2; const popWindow = window.open("/viewPop?empId=" + id + "&annualSno=" + sno, "viewPop", "width=" + width + ", height=" + height + ", left=" + left + ", top=" + top); } ์๋๊ฐ ํต์ฌ th:onclick="ViewPop([[${list.emp.. IT/development 2023. 5. 30. [springBoot] ๊ณตํด์ผ ์กฐํ API Open API ์ด์ฉ service package kr.test.dev.Service.api; import kr.test.dev.Service.annual.AnnualService; import kr.test.dev.Vo.HolidayItemVo; import kr.test.dev.Vo.HolidayResponseVo; import kr.test.dev.Vo.HolidayVo; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.st.. IT/development 2023. 5. 15. [logback] log pattern ์ค์ ${LOG_PATTERN} ${LOG_PATTERN} ๊ฒฐ๊ณผ๊ฐ IT/development 2023. 5. 14. [thymeleaf] if unless ์กฐ๊ฑด ์ญ์ ๋ฐ์ดํฐ๊ฐ ์๋ค. โป ์ฝ์ง์ ์ข ํ๋๋ฐ th:if์ ์กฐ๊ฑด๊ณผ th:unless์ ์กฐ๊ฑด์ ๋์ผํ๊ฒ ์ ์ด์ผ ํ๋ค. IT/development 2023. 5. 13. [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. ์ด์ 1 ยทยทยท 7 8 9 10 11 12 13 ยทยทยท 21 ๋ค์