분류 전체보기
Spring + Ajax 파일 확장자, 크기 제한 (Ajax)
var regex = new RegExp("(.*?)\.(exe|sh|zip)$"); var maxSize 10485760; // 10MB function checkExtension(fileName, fileSize) { if (fileSize > maxSize) { alert("파일 사이즈는 10MB 미만이어야합니다."); return false; } if (regex.test(fileName)) { alert("해당 파일의 종류로는 업로드 안됩니다."); return false; } return true; } $("#uploadBtn").on("click", function(e) { var formData = new FormData(); var inputFile = $("input[name='uplo..
Spring + Ajax 파일 업로드
서버에서 첨부파일 처리 방식 cos.jar 2002년에 개발이 종료되어, 더 이상 잘 사용되지 않음 commons-fileupload 가장 많이 사용되는 방식 자체적인 파일 업로드 처리 서블릿 3.0 이상부터 자체적인 파일 업로드 처리가 API 상에서 지원 첨부파일시 고려해야할 것들 해당 포스팅은 아래 고려사항들을 적용하여 구현했습니다. 각 링크타고 들어가 포스팅을 읽어보는 것이 도움됩니다. 동일한 이름으로 파일 업로드 시 기존 파일이 사라지는 문제 이미지 파일의 경우 원본 파일의 용량이 큰 경우 섬네일 이미지를 생성해야 하는 문제 이미지 파일과 일반 파일을 구분해서 다운로드 혹은 페이지에서 조회하도록 처리하는 문제 첨부파일 공격에 대비하기 위한 업로드 파일의 확장자 제한 스프링 설정 서블릿 3.0 이상..
[SpringMVC + MyBatis + MySql] 게시판 댓글 수 게시판 List에 출력
결과 테이블 기존 테이블 → board & board_reply 테이블 수정 ALTER TABLE board ADD reply_cnt int default 0; 게시글에 댓글 수 추가 UPDATE board SET reply_cnt = ( SELECT COUNT(reply_id) FROM board_reply WHERE board_reply.board_id = board.id); 기존에 있던 게시글들의 댓글 수 초기화 DTO 수정 : Board.java ... private int reply_cnt; ... public int getReply_cnt() { return reply_cnt; } public void setReply_cnt(int reply_cnt) { this.reply_cnt = repl..
[SpringMVC + MyBatis + Ajax] 게시판 댓글 추가/삭제/List (Ajax 이용)
결과 기존 게시판 만드는 방법이 아닌 JSON을 사용하였다. 기존에 만든 게시글 밑에 댓글 작성창 만들었다. 댓글 작성창 아래 댓글 List가 보이도록 하였다. 댓글 작성/삭제 시 바로 댓글 List에 반영되도록 하였고 Ajax를 사용하여 비동기 처리를 하였다. Project Explorer 설정들 ▶pom.xml 4.0.0 com.spring boardApp boardProject war 1.0.0-BUILD-SNAPSHOT 11 5.0.7.RELEASE 1.9.0 1.7.25 2.9.5 4.3.14.RELEASE 3.4.6 1.3.2 8.0.27 org.springframework spring-context ${org.springframework-version} commons-logging commo..
Spring ResponseEntity
ResponseEntity REST 방식으로 호출하는 경우 데이터 자체를 전송하기 때문에 데이터를 요청한 쪽에서는 정상적인 데이터인지 비정상적인 데이터인지 구분할 수 있는 방법이 필요합니다. 이를 위해 RESTful 웹 서비스를 개발할 때 `ResponseEntity`를 사용합니다. `ResponseEntity`는 HTTP 응답의 상태 코드, 본문 데이터, 헤더 등을 명시적으로 설정하여 클라이언트와의 통신을 할 수 있습니다. 상태 코드 설정: HTTP 응답의 상태 코드를 명시적으로 설정 가능합니다. 응답 본문 설정: HTTP 응답의 본문 데이터를 설정할 수 있습니다. JSON, XML , 문자열 등 다양한 데이터 형식을 지원합니다. 제네릭 타입을 사용하여 데이터 타입을 명시할 수도 있습니다. 응답 헤더 ..
MyBatis 마이바티스에서 LIKE문 사용하기
LIKE문은 일치하는 문자열을 찾기 위해 사용되는문법입니다. SQL에서 LIKE문을 사용하는 방법은 다음과 같습니다. SELECT * FROM board WHERE title LIKE '%test%' 하지만 MyBatis에서 LIKE 문을 사용하기 위해서는 약간 다른 형태로 사용되며, ORACLE인지, MySQL인지에 따라서도 약간의 차이가 있습니다. ORACLE SELECT * FROM board WHERE title LIKE '%'||#{searchTitle}||'%' MySQL (MariaDB) SELECT * FROM board WHERE title LIKE CONCAT('%',#{searchTitle},'%') Ms-SQL SELECT * FROM board WHERE title LIKE '%'..
MySQL Column(열) 추가, 삭제, 위치, 컬럼명, 자료형 변경
Column 추가 맨 뒤에 추가 ALTER TABLE 테이블명 ADD 컬러명 자료형; 맨 앞에 추가 ALTER TABLE 테이블명 ADD 컬럼명 자료형 FIRST; 지정(원하는) 위치에 추가 ALTER TABLE 테이블명 ADD 새컬럼명 자료형 AFTER 앞컬럼명; Column 삭제 ALTER TABLE 테이블명 DROP COLUMN 컬럼명; 이때 COLUMN은 생략 가능 Column 위치 변경 맨 앞으로 이동 ALTER TABLE 테이블명 MODIFY COLUMN 컬럼명 자료형 FIRST; 지정(원하는) 위치로 이동 ALTER TABLE 테이블명 MODIFY COLUMN 컬럼명 자료형 AFTER 앞컬럼명 Column 컬럼명, 자료형 변경 컬럼명 변경 ALTER TABLE 테이블명 CHANGE 기존컬럼명..
Git Repository(원격 저장소) 변경 (feat. Git Bash)
git remote -v 현재 로컬 저장소에서 연결되어 있는 원격 저장소의 주소를 확인 $git remote -v origin {원격 저장소1 주소} (fetch) origin {원격 저장소1 주소) (push) git remote set-url origin {변경할 원격 저장소 주소} $git remote set-url origin {원격 저장소2 주소} origin {원격 저장소2 주소} (fetch) origin {원격 저장소2 주소} (push)