본문 바로가기

설치&설정 관련

sar 툴 설치 하기 sar를 활용해서 시스템 모니터링을 해보자! 1. sar(Systecm Activity Reporter 이하 sar) 란? sar 는 리눅스에서 유용하게 쓰는 시스템 모니터링 프로그램입니다. 모니터링 대상이 상당히 넓은 편이며 기본값은 CPU 활동에 대한 통계를 출력합니다. 각종 활동에 대한 통계를 다른프로그램을 이용하여 파일로 저장하고 통계치를 리포팅 하는 기능을 제공합니다. sadc에서 생성한 daily activity 파일을 읽어서 보고서를 작성하기도 하고 시스템의 활동 상황을 수집 할 수도 있습니다. 2. sar 명령어로 모니터링 가능한 항목 I/O 전송량 페이징 프로세스 생성 숫자 블락 디바이스 활동 인터럽트 네트워크 통계 run 큐 및 시스템 부하 평균 메모리와 스왑 공간 활용 통계 메모리 통.. 더보기
nosql과 sql은 어떤 차이가 있을까요? 얼마전 nosql을 왜 써야 하냐는 질문을 받았습니다. nosql은 개발을 빠르고 편하기 위해 사용하지, 운영 업무 담당자의 입장에서는 관리 되지 않는 데이터라고 말씀 주셨습니다. 제 생각은 명확하게 nosql과 sql은 구조, 사용법이 다르다 이야기 했지만 잘 전달 되지는 않았네요. SQL vs NoSQL의 내용을 보면 수정이 거의 없는 대량 데이터는 sql보다는 nosql이 같는 잇점이 크다고 이야기 합니다. (물론 sql 만으로도 처리가 가능하지만요.) NoSQL은 언제 가장 좋은가요? 정확한 데이터 요구 사항 또는 데이터 자체가 알려지지 않았거나 변경/확장될 수 있음 높은(읽기) 처리량이 필요하지만 데이터를 자주 변경하지 않습니다(즉, 한 번의 변경으로 인해 항상 수십 개의 문서를 업데이트할 필요.. 더보기
MS TEAMS에서 채팅방 생성, 메시지 발송, 사람 초대 등의 처리 정리 TEAMS 채팅방 생성 및 메시지 발송까지 우선 시작하기에 앞서서 TEAMS의 graph api는 application의 채팅방 생성(Create chat)을 지원하지 않습니다. 이를 해결하기 위해서 진행한 내용을 정리했습니다. 1. 채팅방 생성을 하고, 메시지를 발송하는 역할의 계정을 생성해야 합니다. 계정의 Access token을 이용해서 채팅방을 생성하고 메시지 발송을 하는 teams graph api를 호출합니다. 2. 계정 생성이 완료 되었으면, 채팅 관련 권한을 할당합니다. 권한 할당은 graph-explorer를 통해서 쉽게 할 수 있습니다. 3. 사용자의 Access token을 저장하는 프로그램을 작성합니다. 시작에도 이야기 했듯이 Teams graph api의 Create chat기능.. 더보기
PC 특정 port를 ssh를 통해서 특정 서버의 port와 연결해서 사용하기 ssh tunneling으로 port forword 특정 서비스 DBMS에 접근을 해야 하는 일이 있는데, 기본적으로 DBMS에 접근 가능한 서버는 외부에서 접근이 불가능한 상태입니다. 그래서 ssh에서 제공하는 터널링을 이용해서 DBMS에 접근해보려고 합니다. Mac, Linux 에서는 아래 명령어를 이용하면 쉽게 터널링을 할수 있습니다. # ssh ID@GateServer -N -L localPort:DBMS:ServicePort $ ssh ec2-user@1.2.3.4 -N -L 13306:1.2.3.5:3306-N 옵션은 리모트로 명령어 실행을 하지 않는다는 의미 이며, -L 옵션은 로컬 포트와 GATESERVER 포트를 연결하는 역활을 합니다. 여기서는 GATEServer에서 DBMS와 연결하도.. 더보기
wsl2의 node 기반에서 프로젝트 sqlite3 실행하기 wsl2의 node기반 프로젝트에서 sqlite3를 사용하기 위해서 설치되어야 할 라이브러리와 설정, 리빌드가 필요합니다. 먼저 sqlite3를 사용하기 위해서는 다음 라이브러리가 설치되어 있어야 합니다. make g++ python2 or python3 라이브러리 설치 하기 $ sudo apt install make g++ python3node에서 python3를 사용하도록 설정합니다. $ npm config set python python3node-gyp rebuild $ npm rebuild node-gyp $ npm install sqlite3이렇게 하면, sqlite3가 오류없이 설치되어서 사용할 수 있습니다. 참고자료 Error with node-pre-gyp when installing sq.. 더보기
Google Cloud 서비스 계정 생성 부터 sheet API를 활용한 조회 처리 Google Cloud 서비스 계정으로 Google API 사용하기 Google Sheet API를 사용하기 위해서 Google cloud console에서 서비스 계정을 만들어 진행하는 과정을 정리합니다. 준비 사항 Node.js Google cloud console Google cloud console 에서 프로젝트 & 서비스 계정 생성 처리 Project 생성 LEFT MENU >> APIs & Services 선택 ENABLE APIS AND SERVICES. 클릭 API 항목에서 Google Sheets API 활성화 처리 LEFT MENU >> APIs & Services >> Credentials >> Manage service accounts >> Create Service Accounts.. 더보기
WSL2를 사용하면서 host에서 특정 port 연결 WSL 내에서 웹서버를 띄어서 확인이 안되는 경우 다음과 같이 처리 하여 주세요. port foward를 위해서는 Netsh를 이용할 예정입니다. 1. net-tools를 WSL 안에 설치 하기 ubuntu 기준으로 다음의 명령어를 이용해서 설치 합니다. sudo apt install net-toolspowser shell 실행 파일 생성하기 Netsh 설정이된 ps1 의 확장자를 가진 파일을 생성합니다. 다음을 network.ps1 이라는 파일을 생성합니다. If (-NOT ([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBui.. 더보기
Springframework 주요 컨셉과 사용 예제 자바라 쓰고 Springframework를 공부한다. Spring의 주요 3가지 컨셉은 아래와 같습니다. 1) IOC : 제어의 역전 / 의존성 주입 2) AOP : 관심의 분리 3) PSA : 일관성 있는 추상화그럼 실제로 어떻게 사용될까? IOC : 제어의 역전 / 의존성 주입 사용 예제 Bean은 IoC 컨테이너 안에 등록된 객체들을 의미 합니다. 모든 클래스의 객체가 Bean으로 등록되지 않습니다. @Repository, @Component, @Service, @Bean 등의 어노테이션을 통해서 Bean으로 등록 가능합니다. 사용 예로는 @Autowired 어노테이션을 이용해서 Bean을 주입할 수 있습니다. Bean 주입이 주는 이점은, 객체의 관리를 스프링 컨테이너가 하기에 개발자가 언제 빈을.. 더보기
logstash 사용 후기 couchDB의 변경내역이 발생할 경우 kafka로 해당 데이터를 전송해야 하는 연계성 요청이 들어왔습니다. 여러 가지 방안을 고민하였으나, 확장성과 유연성을 위해서 logstash를 선택하였습니다. 실제로 가능한지 테스트 하기 위해서 개발 환경을 docker 기반으로 구성하여 테스트 했습니다. 시작하기 전에 docker 간의 통신을 위해서 docker network를 추가 합니다. myHome 이름으로 네트워크를 생성 합니다. $ docker network create myHome자세한 docker network 설명은 Docker 네트워크 사용법을 참조하셔요. couchdb 설정 couchdb는 docker에서 bitnami 에서 제공하는 이미지로 생성하였습니다. 다음 명령어로 image를 다운받고 .. 더보기
SpringBoot 프로젝트에서 Maven Build 시 profile 선택 프로젝트 내에 여러 profile이 있을 경우 Mavne 빌드시 하나를 선택해야 합니다. Maven 프로젝트의 Root 디렉토리에서 다음 명령어로 packaging 을 하면 TEST 코드에 대하여 profile을 적용하게 됩니다. # dev profile을 사용하여 packaging 진행 ./mvnw clean package -Dspring.profiles.active=dev이후 결과 jar 파일을 실행시 profile을 설정하는 것도 동일 합니다. # dev profile을 사용하여 packaging 진행 java -jar -Dspring.profiles.active=dev result.jar 더보기