목록💡 백엔드 (120)
코딩마을방범대
우선 메시지 큐와 관련된 용어들을 함께 알아본 뒤에 카프카에 대해 알아볼 것이다! 메시지 지향 미들웨어(MOM; Message Oriented Middleware) 응용 소프트웨어 간의 비동기적 데이터 통신을 위한 소프트웨어 메시지 백업 기능을 유지함으로써 지속성을 제공하여 네트워크 연결을 유지할 필요가 없음(보관) 미들웨어 계층 자신이 직접 메시지 라우팅을 수행하기 때문에, 하나의 메시지를 여러 수신자에게 배포가 가능함(라우팅) 송수신 측 요구에 따라 전달하는 메시지를 변환할 수 있음(변환) 메시지 브로커와 이벤트 브로커 메시지 브로커(Message Broker) Producer 가 생산한 메세지를 메세지 큐에 저장하고, 저장된 메세지를 Consumer가 가져갈 수 있도록 함 Consumer 가 메세지..
우분투에서 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 하나를 구축하는 것은 위 링크를 참고하면 된다. 하지만 이번 포스팅에선 사용자 별로 각각의 홈디렉토리에 Nginx를 구축해볼 것이다. 물론 포트 번호는 전부 달라야하고, 메인 Nginx 하나를 구축하는 것보다 훨씬 번거롭다. 모든 명령어는 root 권한을 기반으로 실..
우분투의 curl이 API 통신을 위한 툴이라면, ssh는 이름 그대로 ssh 통신을 위한 툴이다. 그 중에서도 sshpass를 이용하는 방법과 기본으로 ssh를 이용하는 방법이 있다. sshpass는 apt를 통해 설치해야 사용이 가능하고, ssh는 기본적으로 사용 가능하다. ssh(Secure Shell) 원격 서버에 안전하게 접속하기 위한 프로토콜 이 프로토콜을 사용하면 네트워크를 통해 다른 컴퓨터에 로그인하거나, 원격 컴퓨터에서 명령을 실행하거나, 원격 컴퓨터와 로컬 컴퓨터 사이에 파일을 전송할 수 있음. ssh는 기본적으로 사용자가 비밀번호를 직접 입력하도록 요구함 sshpass 비밀번호를 터미널에 직접 입력하지 않고 ssh 명령을 실행하기 위한 툴 이 도구를 사용하면 스크립트에서 ssh를 사용..
자바를 통해 서버의 sh 실행 제어하기 자바를 이용해 ssh 에 접속하여 command를 수행할 수 있다. 더불어 파일 업로드, 다운로드도 가능하다! 이번 포스팅에선 ssh에 접속해서 sh파일을 실행하는 로직을 구상해볼 것이다! 사용하기 1. 같은 sweet-rain-kim.tistory.com 이전 포스팅에선 sh 파일을 실행하는 로직을 구성해봤는데 이번 포스팅에선 파일 업로드&다운로드 로직을 테스트 해볼 것이다. 동일하게 JSch를 사용하기 위해 의존성 추가를 해준다. dependencies { implementation 'com.jcraft:jsch:0.1.55' } 세션 설정 public Session getSession(String host, String id, String password) t..
자바를 이용해 ssh 에 접속하여 command를 수행할 수 있다. 더불어 파일 업로드, 다운로드도 가능하다! 이번 포스팅에선 ssh에 접속해서 sh파일을 실행하는 로직을 구상해볼 것이다! 사용하기 1. 같은 서버 내에서 SH파일만 실행하기 다른 서버로는 접근이 불가하고, war 를 구동시킨 현재 서버에만 접근이 가능한 로직이다. 아래 로직은 프로세스 실행 후 출력값을 반환한다. public String serviceShControl(String path, String status) throws IOException { // path엔 "/home/shin/service.sh" 등의 sh 파일 위치를, // status는 start 등의 sh에 존재하는 명령어를 적어주면 된다. ProcessBuilder..
파일을 복사하기 위해 cp 명령어를 사용하는데, 여러 파일을 복사해야하는 경우가 있다. 이럴 경우 여러 번 명령어를 반복하는 것이 아닌 간편하게 한 번에 실행시킬 수 있는 명령어가 당연히 존재한다. cd를 통해 복사할 파일이 존재하는 위치로 이동하는 것이 복사 시 편하다. 현재 폴더 위치 확인 방법 pwd 1. 단일 파일을 복사하기 cp [복사할 파일] [복사 후 이동할 폴더] ##예시 cp source_file.txt /path/to/destination/ 2. 여러 파일을 복사하기 cp [복사할 파일1] [복사할 파일2] [복사 후 이동할 폴더] ##예시 cp file1.txt file2.txt /path/to/destination/ 3. 폴더 내 전체 파일 복사하기 cp [복사할 폴더/*] [복사..
ubuntu에서 사용자에게 특정 포트 제한하기 - (1) 유저 관리 특정 사용자에 대해 포트를 제한해야 할 일이 생겼다. 이를 위해 유저를 추가하는 절차가 필요하다! 이번 포스팅엔 유저를 관리하는 방법을 다루고, 다음 포스팅엔 포트를 제한하는 방법을 다룰 sweet-rain-kim.tistory.com 위와 같이 유저 관리하는 포스팅을 했었다. 이후 1에서 생성한 유저들에 대해 포트를 제한시키는 방법을 알아볼거다! iptables 설정 iptables는 방화벽 도구이며, 운영체제 레벨에서 직접적으로 포트 허용/차단을 설정해주는 방법은 없고 방화벽으로 막아줘야한다. 우선 모든 사용자에 대해 해당 포트를 차단하고, 이후에 특정 사용자에게 할당해주는 방식과 특정 포트 이 외 포트는 차단 시키는 방법이 있다. ..
특정 사용자에 대해 포트를 제한해야 할 일이 생겼다. 이를 위해 유저를 추가하는 절차가 필요하다! 이번 포스팅엔 유저를 관리하는 방법을 다루고, 다음 포스팅엔 포트를 제한하는 방법을 다룰 것이다! 기존 유저 확인 cat /etc/passwd 위 명령어 입력 시 아래와 같이 복잡한 형식으로 여러개가 나열된다. 여기서 찾는 방법도 있지만, 직접 추가하지 않은 시스템 사용자 부분까지 나열되기 때문에 직접 추가한 유저를 찾기는 어렵다. username:x:UID:GID:full name:home directory:default shell 시스템 사용자를 제외한 일반 유저만 확인하고 싶은 경우 아래 명령어를 사용하면 된다. 아래 명령어 실행 시 일반 사용자들 이름만 확인 가능하다. awk -F: '$3 >= 10..