일반적 For문과 향상된 For문
for문의 사용법 및 차이점 1) 일반적 for문 사용법 // 일반적인 사용법 for(int i = 0; i system.out.printIn(i); } // Array 사용법 String[] arr = new String[20]; for(int i = 0; i system.out.printIn(arr[i]); } // List 사용법 List list = new ArrayList(); for(int i = 0; i system.out.printIn(list.get(i)); } 2) 일반적 for문 특징 - 인덱스를 직접 조절하여 사용 할 수 있다. EX) for(int i = 5; i - 반복문 주기를 마음대로 사용 할 수 있다. EX) for(int i = 0; i - 반복 횟수를 스스로 정할 ..
2025.06.13
Mapping에 관하여
Mapping란 URL 호출할때 해당 클래스 혹은 메소드를 실행 하도록 매핑하는 용도로 사용 합니다. Mapping의 종류는 @RequestMapping, @GetMapping, @PostMapping, @DeleteMapping, @PutMapping, @PatchMapping 가 있습니다. 그중에서 Request의 경우는 설정에 따라서 Get, Post, Put, Delete, Patch 등을 다 사용할 수 있습니다. 나머지 5가지 Mapping의 경우는 해당 용도로만 사용 가능합니다. RequestMapping를 제외한 Mapping들은 Spring 4.3버전부터 추가 되었습니다. 아래는 RequestMapping의 사용 법 입니다. 1) HTTP 메소드 Mapping 특정 메소드 요청에 반응하도록..
2025.06.11
SHA2 DB에서 바로 조회하는 법
작업을 하다보면 암호화 된 비밀번호를 바꿔줘야 할 때가 있습니다.그럴때 사용하면 유용합니다. SELECT SHA2('test1234', 512); 256, 512 등등 넣어서 사용하면 됩니다.
2025.05.29
유튜브 iframe 클릭 시 유튜브 바로가기
유튜브 영상을 가져와서 그 영상을 클릭 했을때 해당 유튜브로 이동하게 될 경우 사용하면 됩니다. 1번째로 iframe의 이벤트를 정지 시킵니다. iframe { pointer-events: none;} 2번째로 iframe를 div로 감싸고 그 div에 onclick 이벤트를 걸어줍니다. id="test1" onclick="sendYoutube()"> 3.번째로 onclick 이벤트에 url을 입력해줍니다.function sendYoutube(youtube_type) { window.open($("#test1").attr("src"));}
2025.05.29
[Java] Web에서 서버에 저장된 PDF 보여주기 OR PDF 다운로드
업무를 하다보면 종종 Web에서 서버에 저장되어 있는 파일들을 보여주거나 다운로드할 일이 생깁니다. 그럴때 간단하게 하는 방법입니다. 일단 화면 부분에 a태그를 만듭니다. href="javascript:;" id="btnPdf" onclick="viewPdf('값1', '값2')">불러오기 다음은 script 부분 입니다.function viewPdf(값1, 값2) {        windows = window.open("/view/viewPdf", "viewPdf");        let $form = $('');                $form.attr('action', "/view/viewPdf");        $form.attr('method', 'get');        $form.att..
2025.01.16
DataTable 내 조회 된 데이터 클립보드에 복사하기
DataTable을 사용하면서 조회 한 내용을 클립보드에 복사하는법 입니다. const table = document.getElementById("testTable");const rows = table.tBodies[0].rows;const clipboardData = [];for (let i = 0; i rows.length; i++) {    const row = rows[i];    const rowData = [];    for (let j = 0; j row.cells.length; j++) {        rowData.push(row.cells[j].textContent);    }    clipboardData.push(rowData.join("\t"));}const clipboardTex..
2025.01.10
MariaDB에서 ROW_NUMBER 사용하는법
쿼리를 짜다보면 해당 쿼리의 순서를 출력해야하는 경우가 종종 생깁니다. MariaDB의 경우SELECT ROW_NUMBER() OVER() AS row_number 위와같이 사용하면 해당 조회 쿼리의 순서에 맞게 row_number가 카운트 됩니다. 그런데 종종 GROUP BY, ORDER BY를 사용하면 row_number가 꼬이는 경우가 발생합니다. 그럴경우 아래처럼 하면 됩니다. SELECT ROW_NUMBER() OVER(PARTITION BY user_name ORDER BY user_name, user_id) 여기서 PARTITION BY는 GROUP BY로 생각하면 됩니다.ORDER BY의 경우 조회 쿼리와 같게 맞춰주시면 됩니다.
2025.01.09
Could not find or load main class 에러
Could not find or load main class 프로젝트 Caused by:java.lang.ClassNotFoundException: 프로젝트 위와 같이 뜨면서 실행 자체가 안될때가 종종 발생합니다. 해결방법은 1. 실행중인 개발툴을 다 종료한다.2. C:\Users\사용자\AppData\Roaming\Code\User\workspaceStorage 폴더 안에 파일들을 다 지운다.3. C:\Users\사용자\AppData\Roaming\Code\CachedData 폴더 안에 파일들을 다 지운다.  그리고 다시 개발툴을 실행하면 에러가 없이 사용이 가능해집니다.
2025.01.09
no image
[Jaspersoft Studio] Group Header, Footer 사용하는법
제스퍼를 이용하여 PDF 출력을 하다보면 특정 값을 기준으로 그룹을 나눠서 사용하는것을 볼 수 있습니다.위와 같이 그룹을 나눠서 작성이 필요할 경우 아래 방법을 통해 리포트를 작성하시면 됩니다. 1. report를 오른쪽 클릭하면 아래의 창이 뜨고 거기서 Create Group을 클릭 2. 새로 팝업된 창에서 어떤 컬럼을 기준으로 그룹을 나눌지 선택 후 Next 선택 3. 이제 해당 필드값을 기준으로 헤더와 풋더중 출력할 부분을 선택하면 끝입니다. 4. 이제 새로 생성 된 그룹을 선택 후 아래처럼 property를 수정하면 됩니다.  5. 만약 생성 된 그룹 출력과 관련하여 설정하고 싶으면 print When Expression 에서 설정하면 됩니다.
2024.12.31