목록💡 백엔드 (147)
코딩마을방범대
라이브러리 jar 파일을 프로젝트 gradle에 설정해놓는 방법을 알아볼거다! 아래처럼 Project Structure에서 직접 jar 파일을 등록해주는 방법도 있지만, 난독화를 해놓은 경우 제대로 인식이 되지 않는 오류가 발생했다!! 그래서 아래와 같이 프로젝트 폴더 내에 libs라는 폴더를 생성하여 여기 안에 jar 파일을 넣어주면 된다. 그 다음 build.gradle에서 아래와 같이 설정해주면 끝!! dependencies { ... implementation files('libs/파일명.jar') }
war 파일을 디컴파일 할 경우 모든 소스가 오픈되어 코드 탈취의 위험이 있다. 중요한 파일의 경우 디컴파일을 해도 알아볼 수 없게 난독화 하는 것이 권고된다. 디컴파일 프로그램 중에 ProGuard라는 프로그램이 있는데, 진짜 수많은 오류들을 겪었다.. 참고로 나는 1번 방법인 gui로는 실패해서 gradle로 성공했다. 사용하기 1. gui 로 사용하기 1. ProGuard 다운받기 아래 사이트로 접속해서 'Download ProGuard' 를 클릭한다. Java Obfuscator and Android App Optimizer | ProGuard ProGuard is the most popular optimizer and obfuscator for Java bytecode and Android ap..
클라이언트에서 웹소켓 연결을 해제하기 어려운 경우 부득이하게 서버에서 종료를 해줘야하는 경우가 있다.서버에서 해제하는 방법은 추천되지 않는다고 하나, 어쩔 수 없는 경우엔 사용할 수 밖에 없다.. HandshakeInterceptor나 WebSocketMessageBrokerConfigurer 등을 통해 웹소켓 수발신 세팅이 완료되어 있다는 전제 하에 서버에서 웹소켓 연결을 끊는 로직을 구성해볼 것이다. 웹 소켓을 이용한 메시지 전송(백엔드 - SpringBoot)웹 소켓을 이용한 메시지 전송(클라이언트) WebSocket 웹버전의 TCP 또는 Socket 서버와 클라이언트 간에 Socket Connection을 유지해서 언제든 양방향 통신 또는 데이터 전송이 가능하도록 하는 기술 Real-tsweet-..
1. ps grep 뒤에는 확인하고 싶은 검색어를 입력하면 된다.만약 war 파일이면 nginx 대신에 war를 넣으면 된다.$ ps aux | grep nginxroot실행한 사용자 381484 PID(Process ID) 0.0 CPU 사용률 0.0 메모리 사용률 55924 가용 메모리 크기 2656 프로세스 쓰레드 수pts/1프로세스가 실행 중인 터미널 Ss 프로세스 상태(S는 슬리핑 상태를 뜻함. 대기중이거나 작업을 수행하지 않는 경우.S+는 프로세스가 실행 중임ㅇ르 나타냄.) 0:00 프로세스가 실행된 시간nginx: worker process프로세스의 설명 및 실행 명령 2. free -m 각 프로그램의 사용량이 아닌 메모리 사용량을 MB 단위로 확인할 수 있다.$ free -m ..
Nginx의 현재 연결 수, 처리된 요청 수 정보를 확인하는 방법은 상태 모듈을 사용하면 된다. 아래와 같이 설정 후 nginx 재부팅 시 Nginx의 상태를 확인할 수 있으며, 이를 통해 과부하 등을 체크할 수 있다. 1. Nginx 설정 파일 수정 $ sudo vi /etc/nginx/sites-available/default server { location /nginx_status { stub_status on; access_log off; allow 127.0.0.1; deny all; } } 옵션명 설명 stub_status on; 상태 모듈을 활성화 하는 명령어 access_log off; 로그를 출력하지 않음 allow 127.0.0.1; 로컬 호스트에서만 접근할 수 있음 deny all; ..
우분투에서 Nginx 구축 웹서버 Nginx & Apache (이전 포스트) 1. Nginx 설치 apt 업데이트 후 Nginx 설치 Nginx 설치 시 자동으로 실행됨 $ sudo apt update $ sudo apt-get install nginx Nginx 실행 $ sudo service nginx start # or $ sudo systemctl start nginx sweet-rain-kim.tistory.com 위 포스트를 통해 nginx를 구축하였다면, 캐시 설정을 통해 서비스를 향상 시킬 수 있다. Proxy Cache Nginx 웹 서버에서 사용되는 모듈 중 하나로, 원격 서버로부터 받은 응답을 캐시하여 이후의 클라이언트 요청에 대한 성능 및 응답 시간을 개선하는 역할을 한다. 대규모 ..
HttpURLConnection Java에서 HTTP 프로토콜을 사용하여 웹 리소스에 접근하고 통신하기 위한 클래스 호출하고 응답받기 public void test throws IOException { URL url = new URL("http://javaking75.blog.me/rss"); // 문자열로 URL 표현 System.out.println("URL :" + url.toExternalForm()); // HTTP Connection 구하기 HttpURLConnection conn = (HttpURLConnection) url.openConnection(); // 요청 방식 설정 ( GET or POST or .. 별도로 설정하지않으면 GET 방식 ) conn.setRequestMethod("..
스케쥴러(Scheduler)에 대하여 스케쥴러란? 일정 시간마다 코드를 실행시킬 수 있음 스레드(sleep)을 이용하면 제대로 관리하지 못할 경우 exception이 날 수 있음 사용법 1. 메인 클래스에 어노테이션 선언 @SpringBootApplication @EnableA sweet-rain-kim.tistory.com 위의 방법대로 @Scheduled를 이용해 반복적인 작업을 수행하는 경우가 있다. 그러나 이 경우엔 cron의 반복 주기를 변경해야될 때 수정 후 war를 재배포해야되는 번거로움이 있다. 동적으로 주기를 선택할 순 없을까 싶어 찾아보니 Quartz를 이용하는 방법이 있다고 한다. Quartz Java 기반의 오픈 소스 스케줄링 라이브러리 다중 작업 지원: Quartz는 여러 작업을 ..