2025/11151 [thyemeleaf] form 검색값 유지 코드로 대체함 form태그에 th:object로 서버에서 form 데이터를 받을 Vo 입력controller에서도 UserVo로 데이터를 받도록 설정@GetMapping(value = "list")public Object testList(@ModelAttribute("userVo") UserVo userVo) { ... 생략}그 후 화면의 input과 같은 엘리먼트 태그에 th:field="*{vo에 담긴 필드명}"을 선언하면 된다. 💻 it/development 2025. 11. 24. [JavaScript] 날짜 사이 일수 계산 //시작일, 종료일 사이 일수 계산(yyyymmdd 형식)function calDiffDays(startDate, endDate) { //시작일 const strDt = new Date(startDate.substring(0,4), startDate.substring(4,6), startDate.substring(6,8)); //종료일 const endDt = new Date(endDate.substring(0,4), endDate.substring(4,6), endDate.substring(6,8)); //일수 차이(절대값) let diffDays = Math.abs(endDt.getTime() - strDt.getTime()); //하루(밀리세컨드)로 나눈 뒤 반.. 💻 it/development 2025. 11. 24. [mybatis] 검색(Oracle) /* 게시글 목록 조회 */ SELECT ROWNUM AS no , T1.boardNo , T1.title , T1.content , T1.writer , T1.createDate , T1.updateDate FROM (SELECT BOARD_NO AS boardNo , TITLE AS title , CONTENT AS content , WRITER AS writer , TO_CHAR(CREATE_DATE, 'YYYY-MM-DD') AS createDate .. 💻 it/development 2025. 11. 24. [mybatis] selectkey값 return(Oracle) SELECT BOARD_NO_SEQ.NEXTVAL FROM DUAL /* 게시글 작성 */ INSERT INTO BOARD ( BOARD_NO , TITLE , CONTENT , WRITER , CREATE_DATE ) VALUES ( #{boardNo} , #{title} , #{content} , #{writer} , SYSDATE ) .. 💻 it/development 2025. 11. 24. [springBoot] UrlResource 사용 시 경로 에러 첨부파일 업로드 시 application.yml에 설정해 둔 물리 경로에는 정상적으로 저장되고DB 테이블에도 잘 저장되는 상태이 상태에서 파일 다운로드 하기 위한 코드에서 이미지 미리보기와 파일 다운로드 시 cannot be resolved in the file system for checking its content length 에러가 발생 했었다."D:/upload/49379d4a-3e79-4dc4-b844-bd47c62c723d.jpg"로 탐색기에서 열어도 파일이 잘 열림.그런데 계속 UrlResource에서 경로를 찾지 못했다.한참의 삽질 끝에 해결됨에러가 발생하는 코드는 위이고 아래는 정상적으로 작동되는 코드이다.UrlResource 객체의 인자값으로 "file:" + 파일경로를 전달하는데..무.. 💻 it/development 2025. 11. 24. [springBoot] 첨부파일 업/다운로드(Oracle) CREATE TABLE "FILE_INFO" ("FILE_NO" NUMBER(10,0) NOT NULL ENABLE, "BOARD_NO" NUMBER(10,0) NOT NULL ENABLE, "ORG_FILE_NAME" VARCHAR2(50) NOT NULL ENABLE, "FILE_PATH" VARCHAR2(200) NOT NULL ENABLE, "FILE_SIZE" NUMBER(20,0) NOT NULL ENABLE, "CREATE_DATE" DATE NOT NULL ENABLE, "UPDATE_DATE" DATE DEFAULT SYSDATE, "DEL_YN" CHAR(1) DEFAULT 'N' NOT NULL ENABLE, CONSTRAINT "FILE_PK" PRIMARY K.. 💻 it/development 2025. 11. 24. [springBoot] 페이지네이션 처리(feat. Oracle) xml /* 게시글 목록 조회 */ (#{pageNum} -1) * #{amount} ]]> SELECT COUNT(*) FROM BOARD 오라클 페이지네이션 쿼리 핵심더보기/* 샘플 SQL */SELECT T2.rn , T2.id , T2.name , T2.email , TO_CHAR(T2.create_date, 'YYYY-MM-DD') AS createDate /* 쿼리의 가장 바깥쪽에서 날짜 -> 문자열 변환을 해주는게 성능에 좋다고 한다. */ FROM ( SELECT ROWNUM as rn , T1.id .. 💻 it/development 2025. 11. 24. [springBoot] 세션 인증 로그인/로그아웃 tableCREATE TABLE USER_INFO" ("USER_NO" NUMBER(10,0) NOT NULL ENABLE, "ID" VARCHAR2(20) NOT NULL ENABLE, "PASSWORD" VARCHAR2(50) NOT NULL ENABLE, "NAME" VARCHAR2(20) NOT NULL ENABLE, "EMAIL" VARCHAR2(50) NOT NULL ENABLE, "CREATE_DATE" DATE NOT NULL ENABLE, "UPDATE_DATE" DATE DEFAULT SYSDATE, CONSTRAINT "USER_PK" PRIMARY KEY ("USER_NO", "ID")); COMMENT ON COLUMN USER_INFO.USER_NO IS '사.. 💻 it/development 2025. 11. 24. [springBoot] spring boot jar파일 배포 삽질(feat. 리눅스) 스프링부트에서 jar파일 실행 시 옵션으로 profile등을 설정할 수 있는데 이것 때문에 이틀을 삽질해서 메모함서버에서 쉘 스크립트를 아래와 같이 작성(옵션을 변수화), 실행 시 계속 profile을 찾지 못했었다.#이전 명령어대로 하면 계속 안된다.java -jar -옵션 -옵션.. deploy.jar 순서가 이런식이 되어야 된다.#이전 명령어는 java -jar deploy.jar -옵션 -옵션 이 순서니까 계속 안되던 거였다.다음엔 절대 같은 실수하지 말자 💻 it/development 2025. 11. 24. [springBoot] springBoot Interceptor 로그인 체크 LoginInterceptorpackage 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 2025. 11. 24. [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 2025. 11. 24. [thymeleaf] if unless 조건 0}"> 삭제0}">데이터가 없다.※ 삽질을 좀 했는데 th:if의 조건과 th:unless의 조건은 동일하게 적어야 한다. 💻 it/development 2025. 11. 24. 이전 1 2 3 4 ··· 13 다음