분류 전체보기 44

[SpringBoot-IntelliJ] 아주 간단한 MVC 작동 원리

스프링 게시판을 만들면서, 작동 원리를 제대로 파악하지 못하고 강사님의 코드를 그저 코드를 복붙하는 나를 보며 이건 안 되겠다 싶었다.내가 이해한 MVC 원리를 직접 손으로 그려보았고, 아주 간단하게 설명을 해볼까 한다.  1. 컨트롤러  컨트롤러는 클라이언트의 요청을 받아주는 역할이다.일단 src/main/java/com....에 controller 폴더를 생성해 주고, MyController라는 클래스를 만들어주었다.생성된 클래스에서 @Controller라는 어노테이션을 잊지 않고 꼭 붙여준다.  @GetMapping("")는 스프링 부트를 실행할 때 브라우저 url 창에 localhost8080 뒤 "/임의의 이름" 을 입력하여 경로를 설정하면 아래에 입력한 메소드를 실행해주겠다는 어노테이션이다. ..

[SpringBoot] lombok(롬복) 설치 및 실행하기

※ Gradle Project를 기준으로 작성했습니다. 프로젝트를 만들 때 Getter/Setter나 ToString 메소드를 써 주는 것은 귀찮을 뿐만 아니라 코드가 길어진다. 이 모든 걸 한 번에 해결해주는 고마운 친구가 있다.바로 'lombok(롬복)'이다. 이번 포스팅에서는 롬복을 설치 및 실행하는 과정을 담아보았다.1. 프로젝트 클릭 > build.gradle > dependencies 추가compileOnly 'org.projectlombok:lombok'annotationProcessor 'org.projectlombok:lombok'   2. lombok.jar 다운로드 후 실행하기lombok.jar 파일 다운로드 바로가기 클릭↓ Download projectlombok.org 다운로드 된..

[윈도우] 명령 프롬프트에서 사용중인 포트(port) 죽이기

시작 단추를 누른 후 명령 프롬프트를 검색하여 창을 연다. 1번) 아래 코드를 입력후 Enter 키를 친다.netstat -a -o 2번) 또 아래 코드를 입력후 Enter 키를 친다.taskkill /f /pid PID번호 중요한 건 PID번호가 포트 번호는 아니라는 점이다.'로컬 주소창'에 해당하는 것이 '포트 번호'이고,오른쪽으로 조금 더 읽다보면 PID 영역이 따로 있다.내가 사용중인 포트 번호를 확인 후 PID 번호를 기억해서 2번의 코드를 실행하면 된다.

05. etc 2024.06.27

[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