7. Rufus 프로그램으로 USB에 부팅디스크를 생성한다. Rufus 프로그램 사용법은 인터넷에 많이 나와있다.
8. /etc/sysconfig/network-scripts/ 경로로 이동한다. ifcfg-enXXXX 파일을 vi를 이용하여 수정한다.
...
BOOTPROTO=none
...
ONBOOT=yes
IPADDR=
prefix=24
GATEWAY=
DNS1=
을 입력한다.
wq를 저장한 후 systemctl restart network 명령어를 이용하여 네트워크 재시작 후 ping 8.8.8.8 해서 ping이 가면
네트워크 연결 끝!
9. putty 등으로 sshd 접속을 하기 위해 준비한다.
vi /etc/ssh/sshd_config
이동 후 Port 22 주석을 해제한다.
systemctl restart sshd.service
명령어로 sshd 서비스를 재시작한다.
그 후
firewall-cmd --permanent --zone=public --add-port=22/tcp
방화벽에 22포트를 추가한다.
firewall-cmd --reload
방화벽 재시작 후
putty로 접속해본다.
// 방화벽 목록 조회: firewall-cmd --zone=public --list-all
* 개요: 서버단은 View를 반환하고 반환하는 View는 AbstractXlsxView를 상속받은 클래스의 객체를 반환하도록 되어 있는 엑셀저장이 form.submit이나 window.location.href로 잘 동작하는데 로딩바를 추가할 필요가 있어서 ajax 호출로 변경하는 경우 참고하면 된다.
$.ajax({
type: "GET",
url: "your URL",
data: "your param",
contentType: "application/json",
xhrFields: {
responseType: "blob"
},
// xhrFields 필드는 ajax 공식 문서에 보면 나온다.
// https://api.jquery.com/jQuery.ajax/
// blob은 Binary Large Object 그림, 오디오, 멀티미디어 오브젝트를 뜻한다.
success: function (data, status, xhr) {
if (xhr.status == 200) {
let blob = new Blob([data], { type: 'application/vnd.ms-excel' });
let link = document.createElement("a");
link.href = window.URL.createObjectURL(blob);
let disposition = xhr.getResponseHeader("Content-Disposition");
// 서버단에서 response header에서 filename을 넘겨주면 클라이언트에서 응답받아 사용한다.
let filename = decodeURI(disposition.substring(23, disposition.indexOf('";charset="UTF-8"')));
// 자르고 버무려서 파일명을 만든다.
link.click();
window.URL.revokeObjectURL(link.href);
// mdn web docs를 보면 "URL.revokeObjectURL() 정적 메서드는 이전에 URL.createObjectURL()을 통해
// 생성한 객체 URL을 해제합니다" 라고 설명되어 있다.
}
// 본인 환경에 맞게 처리
},
error: function (err) {
// 본인 환경에 맞게 처리
}
* 주저리: 스프링 공식 문서를 아무리 찾아봐도 AbstractXlsxView 공식 예제를 찾을 수가 없다. 시간이 너무 지나서인가.... ajax 공식 doc은 왜이렇게 뭐가 없는지.... 믿을건 쳇gpt뿐이다... 쳇gpt가 출현하니 샘플 코드를 너무 잘 보여줘서 이런 블로그를 운영할 필요가 있는지 회의감이 들기도 한다..........
* 개요: 서버가 문제가 있어서 shell script로 아파치 톰캣 재기동 sh을 작성할 때 정상적으로 동작을 하지 않아서 강제로 ps를 kill 하고 톰캣을 재기동하는 shell script를 작성해보았다.
var1=`netstat -nap | grep 9091` // 톰캣 ps 확인 명령어
// 포트 정보와 listen 상태 ps/ps명이 결과로 나타난다
IFS=' ' read -ra ps_arr <<< "$var1" // 위 결과를 배열로 만든다
arr_size=${#ps_arr[@]} // 배열 크기 저장
var_str=${ps_arr[arr_size - 1]} // ps/ps명 마지막 string만 필요하니 변수에 담는다
var_ps="${var_str:0:(-5)}" // ps/ps명(예: 12345/java)에서 /java 글자를 빼고 ps만 담는다
kill ${var_ps} // kill ps
* 주의: 깔끔하게 한다고 변수명 뒤 = 앞뒤에 공백이 있으면 에러가 발생한다.
* 마무리: 생각보다 어렵지는 않아서 검색하면서 수정하면 본인에 맞게 원하는 sh 작성이 가능하다.
※ 개요: 웹페이지 서비스 시 한글 입력 시 jQuery on이벤트 하위 keydown 이벤트가 동작하도록 구현된 페이지에서 MS 엣지 브라우저 사용 시 keydown 이벤트가 먹지 않는 현상이 발생한다. 윈도우 10보다 특히 윈도우 11에서는 거의 발생하는 것을 확인 하였다.
※ 조치: 윈도우 11 기준 -> 설정 진입 -> 시간 및 언어 -> 언어 및 지역 -> 한국어 -> 언어 옵션 -> Microsoft 입력기 -> 키보드 옵션 -> 호환성 켬으로 설정