본문 바로가기

전체 글31

CPU 부하, I/O 부하 파악 방법 이 글은 `대규모 서비스를 지탱하는 기술` 도서를 참고하여 작성되었습니다. 서론 서버 개발을 하다보면 시스템에 부하가 걸려서 느려지는 경우를 많이볼 수 있다. 이럴때는 원인이 무엇인지 파악하는게 중요하다. 개발중인 환경에서는 부하가 큰 문제가 되지 않는다. 하지만 그게 프로덕션 환경이라면 이야기는 달라진다. 시스템 부하는 곧 서버가 다운될수도 있다는 의미인데 그땐 서비스 중인 모든 API를 사용할 수 없게 된다. 시스템 부하상태가 발생했을때 원인 파악을 위하여 CPU에 의한 부하인지, I/O 에 의한 부하인지 파악을 하여 부하를 해결하는게 중요하다. 부하 Load Average(평균 부하)는 대기된 태스크 수의 정보가 나온다. 총 3개가 출력되는데 왼쪽부터 차례로 1분, 5분, 15분 동안 어느 정도의 .. 2022. 7. 10.
[AWS] AWS CLI 여러 계정 사용하기 AWS CLI 를 사용하다 보면 회사 계정, 개인 계정 등으로 골치아플 때가 많다. 이럴때 아래 명령어를 사용하면 간편하다. $ aws configure --profile 'username' 위 명령어를 입력하게 되면 `aws configure` 명령어를 입력했을 때와 똑같이 발급받은 Access Key를 입력받는다. AWS Access Key ID [None]: Access Key AWS Secret Access Key [None]: Secret Access Key Default region name [None]: region name Default output format [None]: output format 이렇게 입력하게 되면 각 aws 명령어에서 `--profile username` 을 추가하.. 2022. 5. 7.
씽크웨이 토체티 BW 갈축 리뷰 씽크웨이 토체티 키보드를 선물받았다. 기존에 사용하던 레오폴드 FC750 저소음 적축 모델을 잘 사용하고 있었지만, 갈축모델이 그리웠고 아래 기준을 정해 키보드를 고르게 되었다. - 무선 방식 연결이 가능한지 - 블루투스 연결이 가능한지 - 키캡의 퀄리티가 좋은지 - 키 높이가 많이 높지는 않은지 박스 구성 이러한 요건을 충족시키면서 텐키리스 갈축인 키보드는 사실상 토체티가 유일(은 아님)하다고 생각되어 이 키보드를 선택했다. 구성품은 레오폴드보다 훨씬 다양했다. - 여분 키캡 - 듀가드 컵 받침대(?) - C to C 케이블 - A to C 케이블 - 무선 동글 - 키 뺼수 있는 도구(이걸 뭐라그러더라..) - 동글 연장 젠더 - 듀가드 스티커 및 선정리 끈 디자인 생각보다 무게가 아주 가벼웠고 이는 .. 2022. 3. 25.
Neo4j 설치하고 사용해보기 Neo4j Graph Database Neo4j는 Neo4j 사가 개발한 그래프 데이터베이스 관리 시스템입니다. NoSQL의 일종인데, 사용해보면서 느낀점이 일반적인 NoSQL과는 좀 다르다는 점이 눈에 띄었습니다. RDB와 NoSQL 그 중간 어디쯤(?) 이라는 생각이 많이 들었는데요, RDB와 비교하여 여러가지 지원하는 패키지도 많고 DBMS에서 데이터 연산을 빠르게 제공하기 때문에 데이터 과학, 보안 위협 탐지 등의 분야에서 폭 넓게 쓰인다고 합니다. 오늘은 간단하게 Neo4j 를 이용해서 실습을 진행해 보겠습니다. Neo4j Docker 저는 Docker 를 이용해서 Neo4j 서버를 올리겠습니다. Docker를 이용하여 아래 커맨드로 Neo4j 이미지를 다운받고 서버를 실행해 보겠습니다. doc.. 2022. 1. 25.
[Typescript] any 타입을 가능한 좁은 범위에서 사용하기 이 글은 '이펙티브 타입스크립트' 책의 내용을 정리한 글입니다. any 타입은 가능한 한 좁은 범위에서만 사용하기 먼저 함수와 관련된 any의 사용법을 살펴봐야 합니다. function processBar(b: Bar) {/*...*/} function f1 () { const x = expressionReturningFoo(); processBar(x); // ~ 'Foo' 형식의 인수는 'Bar' 형식의 매개변수에 할당 될 수 없음 } 문맥상으로 `x`라는 변수가 동시에 `Foo` 타입과 `Bar` 타입에 할당 가능하다면, 오류를 제거하는 방법은 두 가지 입니다. function f2() { const x: any = expressionReturningFoo(); // 이렇게 하면 안됩니다. proc.. 2022. 1. 7.
2021년 회고 및 입사 1주년 회고 이 글은 분기별로 2021년을 회고하고 올해 2022년 목표를 다시 세우기 위해 작성하는 글입니다 :) 들어가며 어쩌다 보니 밀린 회고들을 전부 쓰고있다. 나의 회고시리즈들이 하나둘씩 단기간에 늘어나고 있는데 회고를 좀 미리미리 쓰는 습관을 길러야겠다.. 아래 글들은 나의 회고시리즈다. 충남 SW 해커톤 회고: https://url.kr/3z9qgk 2020년 회고: https://url.kr/idmsrh 면접 및 출근 1주일 회고 : https://url.kr/mie5jc 야구선수에서 개발자가 되기까지: https://yun-min.tistory.com/34 DND 사이드 프로젝트 5기 & UPF 2021 FW 회고 (1): https://yun-min.tistory.com/35 DND 사이드 프로젝트.. 2022. 1. 4.