반응형
반응형

 

$(function() {
	$("#dump_inc_delete_btn").on("click", function() {

		var checked = [];
		$("input[name='inc_no']:checked").each(function(i) {
			checked.push($(this).val());
		});

		$.ajax({
			type: "GET",
			url: "deleteIncDump",
			data: {
				No: checked
			},
			success: function(data) {

				makeDumpTableAndPagination(currentDumpPageNumStorage);
			}
		}); // ajax 종료
	})
})

 

@RequestMapping(value = "/deleteIncDump", method = RequestMethod.GET)
public void deleteIncDump(@RequestParam(value="No[]") ArrayList dumpParams, 
        HttpServletRequest request, HttpServletResponse response,
        HttpSession session) throws IOException, JSchException {

    ArrayList<String> dumpNames = new ArrayList<String>();

    dumpNames = dumpParams;
    Dump dump = new Dump();

    String dumpPath = linuxRootPath + "dump/data/inc/";
    dump.deleteBulk(dumpNames, dumpPath);

}

체크된 inc_no 체크박스를 파악해 배열에 담아 ajax로 보냅니다. 받을 때는 ArrayList로 받아야합니다. (키[] 이렇게 값을 받아야 한다.)

 

반응형
반응형
var testId = document.getElementById("test");

testId.empty();
// 하위태그 삭제

testId.remove();
// 태그 자체 삭제

testId.html("<div> 안녕하세요 </div>");
// 하위 태그에 태그 내용 append

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <div id ="content"></div>

    <script>
        var content = document.querySelector("#content");

        content.innerText = "<h1>new Text!!</h1>";

        content.innerHTML += "<h1>new Text!!</h1>";
    </script>
</body>
</html>
  • innerText
    • 요소 내부 텍스트를 변경합니다. 
  • innerHTML
    • 요소 내부 태그를 추가합니다
반응형
반응형

📝호스트OS 

본래 깔려있는 OS → 너 컴퓨터 OS가 뭐야? - 나는 윈도우야!

 

📝게스트OS

본래 깔려있는 OS위에 설치하는 OS → 리눅스 가상화 등...

 

📝옵티마이저

가장 효율적인 방법으로 SQL을 수행할 최적의 처리 경로를 생성해주는 DBMS의 핵심 엔진

 

📝빅오 (Big-O)

연산횟수로 측정하는 시간복잡도

  • O(1)
    • 계산횟수 일정
  • O(N)
    • 계산횟수 정비례
  • O(N^2)
    • 계산횟수 거듭제곱비례

 

📝SQL 튜닝 

최소한의 CPU I/O 메모리를 사용해 최대한 빠른 시간내 원하는 데이터 작업을 수행시키는 것
아무리 쿼리의 성능을 튜닝해도 근본적인 스키마 구조가 문제라면 밑빠진 독에 물 붓기이기 때문에 이런 경우 아예 근본적인 스키마 구조부터 뜯어고쳐야할 수 있다 데이터 모델링을 할 때는 일반적으로 사용자의 이용 빈도(자주 사용하는 화면)를 고려하며 설계 하는 게 좋다

반응형
반응형

📝mysql(8버전 이상)

Driver Class com.mysql.cj.jdbc.Driver
URL jdbc:mysql://192.168.0.67:3306/DB명?characterEncoding=UTF-8&serverTimezone=UTC&allowPublicKeyRetrieval=true&useSSL=false

 

📝mariadb

Driver Class org.mariadb.jdbc.Driver"m.mysql.cj.jdbc.Driver
URL jdbc:mariadb://192.168.0.40:7001/search?servertimezone=UTC

 

반응형
반응형
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC" crossorigin="anonymous">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>
<link href="<%=request.getContextPath()%>/resources/css/styles.css">
<script
    src="<%=request.getContextPath()%>/resources/js/dashboard/dashboard.js"></script>
<!-- request.getContextPath는 webapp의 경로이다. -->
이클립스 server.xml 에서 port=8080과 port=8009 두 개의 connector에 URIEncoding="UTF-8"을 추가한다.
    <Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"  URLEncoding="UTF-8"/>
    <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" URLEncoding="UTF-8"/>
    
request.setCharacterEncoding("UTF-8")
response.setCharacterEncoding("UTF-8")
response.setContentType("text/html; charset=utf-8")

 

 

반응형
반응형

📝계정 생성

  • 계정 생성
  • CREATE USER '${id}'@'%' IDENTIFIED BY '${password}';
    • 예) CREATE USER 'sjk40'@'%' IDENTIFIED BY '1234';
    • 여기에서 %란 모든 아이피대역에서 해당 아이디를 사용할 수 있다는 의미
    • 192.168.% 인 경우 192.168.xxx.xxx 대역에 해당 아이디를 사용할 수 있다는 것
    • 참고로 처음 마리아DB 설치시 root는 로컬에서만 접근 가능하다
  • 권한 부여
  • GRANT ALL PRIVILEGES ON *.* TO '${id}'@'%';
    • 예) GRANT ALL PRIVILEGES ON *.* TO 'sjk40'@'%';
    • 여기에서 *.*란 DB.테이블명으로 의미한다 *의 경우 모든이라는 의미모든 DB와 모든테이블의 접근 권한준다는 의미이다.
    • 물론 위에 계정 생성에 아이피대역에 따라 접근할 수 있는 아이디들이 다 다르다 그래서 어떤 아이피 대역의 아이디에 권한을 줄지에 대한 것을 정해야한다.
  • Commit
  • flush privileges;

 

📝계정 조회

  1. use mysql;
  2. select user, host from user;

 

📝계정 삭제

  • DROP USER '${id}'@'%';
    • 예) DROP USER 'rootuser'@'%';
    • 여기에서 %는 아이피대역으로 삭제할 Host IP를 제대로 입력해야한다.
반응형
반응형
$(document).ready(
	$(function() {
		$("#file_input4").on(
			'change',
			function() {
				mappingPath = $(this).val();
				console.log(mappingPath);

				if (window.FileReader) {
					var filename = $(this)[0].files[0].name;
				} else {
					var filename = $(this).val().split('/').pop()
						.split('\\').pop();
				}
				$("#userfile4").val(filename);
			});

	})
);

<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC" crossorigin="anonymous">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>
<script src="<%=request.getContextPath()%>/resources/js/board.js"></script>
<script data-search-pseudo-elements defer
	src="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.3/js/all.min.js"
	crossorigin="anonymous"></script>

<div class="row mb-3">
	<div class="col-8">
		<div class="row">
			<div class="col-10">
				<input id="file_input4" filestyle="" type="file"
					style="display: none"> <input type="text"
					id="userfile4" class="form-control" name="userfile4"
					disabled="">
			</div>
			<div class="col-2 p-0 m-0 d-flex justify-content-start align-items-center">
				<label for="file_input4" class="btn btn-default"> <span
					class="glyphicon fa fa-upload"></span>
				</label>
				<button type="button" class="btn-close" id="erase_btn4" aria-label="Close"></button>
			</div>
		</div>
	</div>
</div>

 

 

반응형
반응형
const pattern_num = /[0-9]/;	// 숫자 
const pattern_eng = /[a-zA-Z]/;	// 문자 
const pattern_spc = /[~!@#$%^&*()_+|<>?:{}]/; // 특수문자
const pattern_kor = /[ㄱ-ㅎ|ㅏ-ㅣ|가-힣]/; // 한글체크
const pattern_space = /[\s]/g; // 공백체크

var num = userId.search(pattern_num);
var eng = userId.search(pattern_eng);
var spc = userId.search(pattern_spc);
var kor = userId.search(pattern_kor)
var space = userId.search(pattern_space);

if (num >= 0) {
	alert("숫자를 입력하셨습니다.");
	return false;
}else if (num >= 0 || spc >= 0 || kor >= 0 || space >= 0) {
	alert("영어만 입력해주세요");
	return false;
}

프론트에서도 유효성 체크를 하고 백에서도 유효성 체크가 필요하다

반응형
반응형
if (confirm("인덱스를 생성하시겠습니까?") == true){
	return true;
}else{
	return false;
}
반응형