분류 전체보기 50

[SpringBoot] 외부 프로젝트를 내 워크스페이스(Workspace)로 가져올 때

팀 프로젝트를 하다가 다른 팀원 분의 압축된 코드 폴더를 내 이클립스에 가져올 일이 생겼다.내 컴퓨터에서 압축 풀기를 한 폴더를 이클립스에서 그대로 import를 했는데,모든 파일 아이콘 우측 하단에 조그맣게 '?(물음표)'가 있었다.  이대로 진행하면 나중에 코드에 무슨 문제가 생길까봐 강사님께 질문했다. 그리고 다음 3가지의 해답을 주셨다.이 3가지를 다 지켰더니 ?는 모두 없어졌다. 1. 워크스페이스가 무거워 지더라도 하나 더 생성한다.하나의 워크스페이스 안에 다양한 프로젝트가 들어가 있다면, 다른 사람의 프로젝트를 그대로 가져올 경우 못 읽는 경우도 있다고 한다.그래서 컴퓨터가 다소 무거워지더라도 새로운 워크스페이스를 생성하기를 추천하셨다. 워크스페이스를 생성할 때마다 UTF-8 설정을 따로 해주..

[웹취약점분석] 소나큐브(SonarQube)로 소스코드 정적분석하기

회사에서 웹 취약점 조치 업무를 부여받았는데,정적분석도구로 소나큐브를 이용하면 된다고 했다. 소나큐브는 회사 내에서 아무도 사용하지 않았던 도구라서내가 따로 소나큐브를 공부를 하고 분석을 해야 했다.  소나큐브는 정말이지 구글링을 해도 많은 자료가 나오지 않는다.특히 우리말로 쓰여 있는 자료는 잘 볼 수가 없다.설치까지는 인터넷에 자료가 많아 어렵지 않게 할 수 있지만,이후 분석에서 골머리 앓을 때가 많다.소나큐브와 함께 분석도구로 소나스캐너를 사용했는데, 총 2번 분석하면서, 이런 저런 조건들이 잘 맞아야 되는 까다로운 프로그램이라는 것을 느꼈다.(이것 때문에 야근까지 했기 때문이지…ㅠㅠ) 소나큐브/소나스캐너 모두 쉽지 않은 도구들이지만,  삽질을 통해 얻은 사실들을 개인적으로 기록하고 정적분석을 할 ..

05. etc 2024.06.27

[SSL 인증서] HTTP인증 후 리눅스 서버에 인증서 업로드 방법

SSL 갱신 시 http 인증을 하고 나면,crt 파일을 업로드 해야 한다.이후 웹 서버 재기동을 해야 하는데, 재기동은 업체를 통해서만 할 수 있었다.  우선 FTP 서버 접속 후 /usr/local/apache/conf/extra/ 경로에 들어가서httpd-ssl.conf 파일을 수정한다. httpd-ssl.conf 파일에서1) VirtualHost 설정SSL 기본포트를 443으로 사용하는 경우,아래와 같이 VirtualHost를 설정해주고,     DocumentRoot "작성"    ServerName "작성"    ErrorLog "작성"    CustomLog "작성"    JkMount "작성" 2) 인증서파일 적용 위치에 파일 경로를 작성살짝 스크롤하여 아래의 인증서파일 적용 위치에 파일 ..

05. etc 2024.06.27

[JQuery] 배열로 자바스크립트 함수 실행여부 확인하기

회원가입 절차를 고치다가아이디 중복확인을 하고나서 다음 단계를 눌렀을 때,다시 아이디 중복확인이 필요하다는 알림창이 뜨는 이슈가 있었다. javascript에서 다음 단계 버튼 클릭 시 실행되는 함수에서아이디 중복확인을 했다는 것을 체크하지 않았기 때문에 문제가 발생한 것이다. 단 3줄의 코드로 이 문제를 해결했다.배열을 이용하는 방법이다. var arr = new Array(); //배열생성(모든함수에서 사용할수 있게 함수 바깥에 배열 선언)//아이디 중복체크 함수 안에다가 작성해야 할 코드//inputValue는 상수값이어도 됨(즉, 아무값이나 넣어도 됨)arr.push(inputValue ); //inputValue를 arr에 push(배열에 값을 넣어줌)});//다음단계 실행 함수 안에다가 작성해..

05. etc 2024.06.27

[DBeaver] 디비버-오라클 데드락(deadlock) 해제법

'ERROR: deadlock detected ...'라는 로그가 뜨면서1시간 동안 로그인도 안 되고, 입력한 내용이 저장이 안되는 상황이 발생했다. 디비버를 통하여 오라클 DB를 사용하고 있었기 때문에아래와 같은 방법으로(락 걸린 세션을 조회하고 kill 하는 방법) 교착상태를 해결하였다. 만약 이 방법도 통하지 않는다면,최상위 권한을 가진 DBA에 직접 문의하여 해결해야 한다고 한다. -- 1. 세션을 조회한다.SELECT SID, SERIAL#, USERNAME, PROGRAM FROM V$SESSION-- 2. 락 된 세션을 조회한다.SELECTV$SESSION.SID,V$SESSION.SERIAL#,V$SESSION.USERNAME,DBA_OBJECTS.OBJECT_NAME,V$SESSION.S..

01. Database 2024.06.27

[네트워크] 실행된 이클립스 프로젝트를 다른 pc에서 접속하는 법

톰캣 서버 띄운 상태의 웹페이지를 다른 pc에서 확인해야할 일이 생겼다.같은 와이파이를 쓰고 있다면 포트번호만 물어보고 접속해도 되는데(접속 ip:포트번호 조합으로),장소가 다르고 와이파이를 공유하지 않는 곳에서 내 pc에 띄운 웹페이지를 보여주고 싶을 때 방법을 공유하고자 한다.나는 tplink(티피링크)의 와이파이 공유기를 쓰기 때문에 티피링크 페이지로 들어갔다.즉, 와이파이 설정하는 웹페이지로 들어가면 된다.tplink 기준으로 말하자면,1) Advanced - NAT Forwarding - Port Forwarding 메뉴에 들어간다.  2) 우측에 +Add 를 눌러 포트를 등록하면 끝— Service Name은 내가 알아보기 쉽게 적고, External Port와 Internal Port를 이클..

05. etc 2024.06.27

[Ajax] Ajax 사용하여 목록 테이블의 특정 데이터만 변경하기

구현하려는 기능은 다음과 같다. (1) 목록에는, 이전에 사용자가 등록한 주소를 보여준다.(2) 만약 현재 살고 있는 주소와 다르다면,현주소 일치여부의 라디오버튼 '불일치'를 클릭 후, 주소 입력 팝업창에서 현재 살고 있는 주소를 입력한다.(3) 주소를 저장하면 페이지 새로고침이 없이(Ajax로 구현하기 때문에) 현주소로 변경된다. (표 1-1에서 1-2로 변경) BEFORE) 표 1-1 주소 입력 팝업창) 주소를 새로 입력하는 팝업창   AFTER) 표 1-2   ------------------------------------------------------------------------>> 기능구현 시작  1. List.jsp에서 우선 일치와 불일치를 체크할 수 있는 라디오 버튼을 만들어준다. 그..

05. etc 2024.06.27

[xml] 오라클 CLOB 데이터 화면에 뿌려주기

오라클의 CLOB 데이터형은 보통 글자 수가 너무 길 때 사용한다.select 쿼리문을 사용하는 화면을 만들 때,(예를 들어) long_text(컬럼명)라는 CLOB 데이터를 가져왔다. Select long_text from table;을 했는데, 화면에는 ‘Oracle.~.~…‘이라는 문구만 떴다. 알고보니 자바에서는 varchar의 형태로 가져오므로 DB와 서로 데이터형이 안맞아서 그런 것이었다. 이럴 때는 쿼리문 앞에 'resultMap'이라는 태그를 사용하여 SQL 조회 결과를 반환하는 방식을 지정하면 해결된다.jdbcType과 javaType을 각각 지정해주면 된다. jdbcType(테이블의 자료형)은 CLOB이겠고, javaType(자바의 자료형)은 String으로 가져오면 된다. ........

01. Database 2024.06.27

[jsp] 페이지 리로드 후 selectbox에 저장된 데이터값 표시하기

select box의 옵션 값을 선택하고 디비에 저장했는데,페이지를 리로드했을 때 저장된 값이 그대로 보이게 하려면 아래와 같은 방식으로 접근하면 어떨까. 전제)여기서는 answerValue라는 테이블 컬럼에 0 혹은 1을 입력하였으며,페이지를 불러올 때 사용하는 쿼리문에서 answerValue가 조회된다는 것을 전제한다. 코드설명)jsp에서 작성하는 자바 코드에 selectedValue라는 값을 지정하고, 불러오는 방식이다.  value="0">예 value="1">아니오  결과화면)

[javascript] window.print() 만으로 pdf 저장과 인쇄가 된다고?

결론부터 말하면 이 한줄만으로 가능하다. 현업에서 증명서 양식을 디자인하고 인쇄해야 하는 기능을 추가해야 했다. 프린트 기능은 java 단에서 복잡하게 이루어질 줄 알았는데,자바스크립트에서 인쇄하기 버튼에 단순히 onclick="javascript:window.print()" 한 줄만 추가해주면 되었다. 인쇄 인쇄를 구현하는 방식은 다양하겠지만, 간단하게1) 팝업창 생성(컨트롤러) 2) 인쇄할 페이지 표시(컨트롤러에서 리턴한 jsp 파일) 3) 인쇄 버튼 누르기(팝업창의 최상단에 버튼 위치) 의 과정으로 만들었다. 과정 세부설명)일단은, 만들어야 하는 증명서가 기본적인 표 형식이었기 때문에,jsp 파일을 만들고 퍼블리셔 분께 행 높이, 버튼 위치 등의 style 지정을 요청드렸다. controller에는..

05. etc 2024.06.27