분류 전체보기

SERVER

RAID 구성 방식에 대하여

프로세서나 메모리는 고장나면 정상 제품으로 변경하면 되지만, 스토리지는 고장나면 데이터 소실로 일어날 수 있다. 특히 HDD는 물리적 충격 등에 취약하므로 서버용 스토리지는 일반적으로 RAID 구성을 통해 장애 대응을 위한 대비를 구성하는 편이다. RAID 0 두 개, 혹은 그 이상의 하드디스크에 데이터를 분산하고 한꺼번에 출력, 즉, 스트라이핑. 이론적으로 하드디스크에서 읽을 수 있는 속도의 한계를 병렬 읽기를 통해 읽으므로 이론상 n배의 액세스 속도로 읽을 수 있다. 이는 내결함성을 위한 구성이 아니며 디스크 I/O 성능 개선이 목표이다. 특정 하드디스크에 문제가 발생할 경우 데이터가 분산되어 있으므로 다른 하드디스크의 데이터도 사용할 수 없게 된다. JBOD Just a Bunch of Disks...

INFRA/LINUX

시스템 로그 확인

$ sudo dmesg --level err -T -H [10월18 13:07] tpm_crb MSFT0101:00: [Firmware Bug]: ACPI region does not cover t [ +0.000007] tpm_crb MSFT0101:00: [Firmware Bug]: ACPI region does not cover th [10월18 13:08] thunderbolt 0000:04:00.0: failed to determine connection manager, [10월18 13:09] xhci_hcd 0000:38:00.0: PCI post-resume error -19! [ +0.000001] xhci_hcd 0000:38:00.0: HC died; cleaning up [10월19..

INFRA/LINUX

깔끔하게 프로세스 죽이기

$ pgrep -f {프로세스명} | xargs kill pgrep -f node | xargs kill을 사용하면 구동 중인 node process를 모두 죽일 수 있다. 특정 포트를 확인해서 죽이는 경우는 lsof나 netstat으로 확인해서 pid 구하는 방법이 최선인 듯 하다. $ sudo netstat -tlnp | grep :3000 tcp 0 0 0.0.0.0:3000 0.0.0.0:* LISTEN 20502/node $ sudo lsof -n -i :3000 | grep LISTEN node 20502 octavesop 31u IPv4 105296 0t0 TCP *:3000 (LISTEN) $ kill -9 20502

INFRA/LINUX

man 명령어

$ man ls 존재하지 않는 항목에 대해서는 다음과 같이 출력된다.

THOUGHT

좋은 개발자와 좋은 직장인은 크게 다르지 않다는 생각

최근에 같이 일하기 싫지 않은 개발자라는 글을 봤다. https://brunch.co.kr/@kaily/40 같이 일하고 싶지 않은 개발자 특앞으로도 쭉- 만나고 싶지 않은 개발자의 유형을 정의하고 경험을 공유한다 | 경력이 길어질수록 많은 협업자들을 만나는데, 그중 가장 많이 만나고 많은 커뮤니케이션을 하는 게 개발자다. 주brunch.co.kr 글이 올라오고 한바탕 떠들썩했는데, 개인적으로는 뭐 그러려니 했다...구현이 불가능한데 로직 정의도 정확히 못한다면서 디자이너나 기획자의 역량이 부족하다며 탓을 하거나은근슬쩍 개발이 가장 전문적인 직무인 것처럼 행동하는 안하무인 자아과다 개발자들이 한둘이 아니었다.그러니 기획자라고 못할 일이 뭐 있겠는가...(동의한다는 뜻은 아님)..

CONFERENCE

문서화에서 놓쳤던 몇 가지 부분들

개요 최근 도커 배포 가이드 문서를 작업할 일이 있었다(기회가 된다면 개인 환경에서 해보고 블로그에 올려도 좋을 듯 하다). 작업을 마친 후 같은 팀 동료 한 분께 리뷰를 부탁드렸는데 스스로 작성했으면서도 깜짝 놀란 요소가 몇 가지 있었다. 문제 1. 용어를 혼용한다 생각보다 표현 과정에서 여러 단어를 쓰고 있었다. 가령 도커 허브 같은 단어를 저장소 혹은 레포지토리라고 쓰는 등이다. 아마도 헬름이나 깃허브 때문에 저장소나 레포지토리라는 단어가 익숙해서 무의식적으로 함께 쓴 듯 했다. 읽는 입장에서는 확실히 혼란스러울 법한 표현이었다. 만일 해당 환경에 어느 정도 익숙하다면 큰 문제가 없겠으나, 문서화는 당장 인수인계서로 써도 손색이 없을 정도로 작성해야 한다고 생각하는 편이었는데도 스스로 단어들을 섞어..

SERVER

AWS S3 버킷 권한 목록

{ "Version": "2012-10-17", "Id": "Policy1680360081176", "Statement": [ { "Sid": "Stmt1680360078784", "Effect": "Allow", "Principal": "*", "Action": [ "s3:DeleteObject", "s3:GetObject", "s3:GetObjectAcl" ], "Resource": "arn:aws:s3:::{버킷명}/*" } ] }

DEVELOPMENT/JAVASCRIPT

purify-ts / Function

always 반환 타입: a -> b -> a 언제나 동일한 값을 반환한다. const라고 다른 언어에서 알려져 있다. [1,2,3,4].map(always(0)) => [0,0,0,0] curry 반환 타입: (fn: (...args: TArgs) => TReturn): CurriedFn 여러 인자를 받는 함수의 커리 버전이다. 타입스크립트에서 타입 유추가 가능하다. const sum3 = ( x: number, y: number, z: number ) => x + y + z const curriedSum3 = curry(sum3) === curriedSum3(1) // (y: number, z: number) => number curriedSum3(1, 2) // (z: number) => numbe..

정민아
'분류 전체보기' 카테고리의 글 목록 (3 Page)