목록💡 백엔드 (121)
코딩마을방범대
클라이언트에서 웹소켓 연결을 해제하기 어려운 경우 부득이하게 서버에서 종료를 해줘야하는 경우가 있다. 서버에서 해제하는 방법은 추천되지 않는다고 하나, 어쩔 수 없는 경우엔 사용할 수 밖에 없다.. HandshakeInterceptor나 WebSocketMessageBrokerConfigurer 등을 통해 웹소켓 수발신 세팅이 완료되어 있다는 전제 하에 서버에서 웹소켓 연결을 끊는 로직을 구성해볼 것이다. 웹 소켓을 이용한 메시지 전송(백엔드 - SpringBoot) 웹 소켓을 이용한 메시지 전송(클라이언트) WebSocket 웹버전의 TCP 또는 Socket 서버와 클라이언트 간에 Socket Connection을 유지해서 언제든 양방향 통신 또는 데이터 전송이 가능하도록 하는 기술 Real-t swe..
1. ps grep 뒤에는 확인하고 싶은 검색어를 입력하면 된다. 만약 war 파일이면 nginx 대신에 war를 넣으면 된다. $ ps aux | grep nginx root 실행한 사용자 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..
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는 여러 작업을 ..
Curl은 데이터를 주고받을 수 있는 툴이다. (Command Line용 Data Transfer Tool) 다운로드와 업로드 모두 가능하며, HTTP / HTTPS / FTP / LDAP / SCP / TELNET / SMTP / POP3 등 주요 프로토콜을 지원한다. 사용하기 다운로드 $ sudo apt install curl 사용 옵션 옵션(long) 설명 -k --insecure https 프로토콜에서 SSL 인증서에 대한 검증없이 연결 -f --fail HTTP 오류 시 자동으로 실패 (출력 없음) -s --silent 진행 과정이나 에러 정보를 보여주지 않음 (HTTP response code 만 가져오거나 할 경우 유리) -S SSL 인증관련 -L --location 서버에서 301, 302..
OpenLDAP 구축하기 ※ 모든 명령어는 root 권한으로 실행 1. OpenLDAP 설치 # apt update && apt -y install slapd ldap-utils # dpkg-reconfigure slapd Question Answer If you enable this option, no initial configuration or database will be created for you. Omit OpenLDAP server configuration? [yes/no] N DNS domain name: [설정할 도메인 네임] ex) ldap.dbkim.co.kr Organization name: [조직명] Administrator password: [설정할 암호] (두 번 입력) Do ..