728x90

분류 전체보기 168

Message Queue [C]

- 메시지큐란 IPC기법중 하나이다. Queue를 사용하여 데이터를 선입선출하며, "msgtype"에 따라서 특정 메시지 중 가장 먼저 들어온 메시지를 따로 받아올 수 도 있다. 이 메시지는 kernel에서 보관하기 때문에 프로세스가 종료되어도 사라지지 않는다. 메시지는 큐의 용량이 허용하는 한, 큐에 계속 쌓이며 읽은 메시지는 큐에서 삭제한다. LINUX(UNIX)에서는 POSIX 메시지큐를 사용한다(=System V 메시지큐의 최신버전). 본 글에서는 System V 방식의 메시지 큐를 사용할 것이다. ※ 메시지큐는 아래와 같은 협의된 데이터 구조를 활용한다. struct msgbuf{ /* 메시지 타입은 반드시 long이면서 0이상의 값 */ long mType; /* 아래의 데이터의 형식과 크기는..

C 2023.12.16

파생상품 정리

- 반대매매 : 신규매수에 대해서는 전매도, 신규매도에 대해서는 환매수를 하는것 ex) 매도 포지션인 경우 포지션 청산을 위해 다시 매수를 하는 것이 환매수 반대가 전매도 - 거래량 : 거래기간에 체결된 매수OR매도수 => OR에 유의해야함! ex) 매도100, 매수100인경우 거래량은 100이고 가격을 곱하면 거래대금 - 미결제약정수량 : 반대매매를 하지 않고 보유중인 선물계약 => 간단히 말하면 포지션 정리안한것 (오픈포지션) - 주가지수선물 이론가격결정(Cost of Carry 모형) : F = S + S * (r – d) * (t / 365) F : 선물이론가격 S : 현물지수 r : 금리 d : 배당수익률 t : 잔존일수 * 선물가격 = 미래의 현물가격 기대치 = 현물가격 + 순보유비용 = 현물..

Finance 2023.09.20

시스템 프로그래밍[C] #1 파일 입출력

- 파일 입출력은 low-level IO와 high-level IO가 있다. Low-Level File IO (System Call) (1) System call을 이용해서 파일 입출력 (2) File descriptor 사용 (3) Byte 단위로 디스크에 입출력 (4) 특수파일에 대한 입출력 가능 High-Level File IO (Buffered IO) (1) C standard library를 사용하여 파일 입출력 (2) File pointer 사용 (3) 버퍼(block) 단위로 디스크에 입출력 (4) 여러 형식의 입출력 지원 - 파일을 오픈할 때 사용하는 매소드는 open이다. int open(const char *pathname, int flags [, mode_t mode]); pathna..

C 2023.07.31

데이터 웨어하우스 [CS]

- 데이터 웨어하우스 : 데이터 웨어하우스는 데이터베이스 서버를 사용하여 조직의 데이터베이스에서 데이터를 가져오고 데이터 모델링, 데이터 수명주기 관리, 데이터 소스 통합 등을 위한 추가 기능을 제공한다. 데이터 웨어하우스는 가공된 데이터를 저장하고있으며, 이를 통해 바로 유저에게 분석 데이터 제공을 할 수 있는 구조이다. 반면 데이터 레이크는 가공되어 있지 않으며, 유저에게 제공하기 위해서는 전처리 과정을 거쳐야 한다. - 데이터 마트는 데이터 웨어하우스의 하위 섹션으로, 영업, 마케팅 또는 재무와 같은 부서 또는 사업부를 위해 분할되어 있다. 일부 데이터 마트는 오직 운영 목적으로만 생성되기도 한다. 데이터 웨어하우스가 기업 전반의 중앙 데이터 스토리지 역할을 한다면, 데이터 마트는 일부 선택된 사용..

CS 2023.06.11

코드를 통한 인프라 관리 #4

- 이제 local이 아닌 aws에서 프로바이더를 사용해 볼 것이다. - 그 전에 링크를 참조하여 terraform CLI를 설정하자. 테라폼을 설치한 home 디렉토리에 ".terraformrc"를 사용하여 conf 설정을 해줄 것이다. - plugin_cache를 설정하면 플러그인 캐시가 설치되는 디렉토리를 지정할 수 있다. - 위와 같이 설정을 마쳤으면 아래 명령어로 디렉토리를 생성해준다. mkdir -p ~/.terraform.d/plugin-cache - 각 워크스페이스에 필요한 프로바이더나 모듈을 다운로드 받을 때 기본적 .terraform 디렉토리 안에 해당 캐시들을 설치하게 된다. 워크스페이스의 수가 증가할 수록 해당 플러그인 캐시 용량 계속해서 증가하게 되고, 이는 저장소 용량의 부족을 ..

IaC 2023.06.01

코드를 통한 인프라 관리 #3

- 이제 코드를 작성해보자. "${}" 부분은 string interplation으로 테라폼에서 변수를 가져오거나, 함수를 가져올 수 있다(js와 비슷하다). 먼저 Resources 부분부터 작성해보자. terraform { required_providers { local = { source = "hashicorp/local" version = "2.4.0" } } } provider "local" { # Configuration options } resource "local_file" "foo" { filename = "${path.module}/foo.bar" content = "Hello World Test!" } - 작성한 코드를 init 하자. terraform init - 아래와 같이 프로바이..

IaC 2023.05.31

코드를 통한 인프라 관리 #2

- 포스팅에서는 주로 IaC 도구중에서 terraform을 위주로 다룰 것이다. - terraform은 provider agnostic 하다, 즉 프로바이더에 의존하지 않는다. terraform은 GCP, AWS, Azure 등의 프로바이더를 지원한다. AWS 프로바이더를 사용하면 AWS 인프라를 관리할 수 있다는 뜻이다. - terraform의 registry에 들어가면 크게 providers와 modules로 나뉘는데 providers은 말 그대로 AWS, GCP, k8s 같은 프로바이더를 말한다. module은 예를 들어 Open VPN을 AWS EC2 환경에서 사용할 때 AWS 인스턴스, 보안 그룹, EBS 볼륨 등의 설정이 있는데 이러한 것들을 하나로 모아서 모듈처럼 활용하는 것이다. - pro..

IaC 2023.05.27

코드를 통한 인프라 관리 #1

- IaC(Infrastructure as Code)란 네트워크, 로드밸런서, 저장소, 서버 등의 인프라 자원을 수동 설정이 아닌 코드를 이용하여 프로비저닝하고 관리하는 것을 뜻한다. 대표적인 IaC도구로 Terrform, CloudFormation, Pulumi, Azure ARM Template 등이 있다. 주로 형상관리와 비교되기도 한다. - 형상관리(Configuration Management)란 서버 운영체제 상에서 필요한 소프트웨어를 설치하고 원하는 설정으로 관리하는 것으로 CaC(Configuration as Code)라고도 불린다. 대표적인 형상관리 도구로 Ansible, Puppet, Chef, Salt Stack 등이 있다. - 현재는 IaC와 형상관리간 엄청나게 큰 차이는 없다. 원래..

IaC 2023.05.25

MySQL With AWS EC2

- 처음에는 AWS EC2에서 AWS Linux 이미지로 인스턴스를 발급받고, yum list mysql*을 통해 설치 가능한 mysql 목록을 확인한 다음 설치를 하려 했으나, OS 문제로 추정되는 에러로 인해 설치 후 mysql 실행이 되지 않았다. 생긴지 얼마 되지 않은 패키지여서 그런지 관련글이 없었다. 프로젝트를 빨리 진행해야 해서 원인에 대한 분석은 미루고 ubuntu로 AWS 이미지를 바꿔서 진행하였다. (아래 mysql 패키지를 사용하여 운영해보신분은 댓글 달아주시면 감사하겠습니다) [ec2-user@ip- bin]$ yum list mysql* Amazon Linux 2023 repository 28 kB/s | 3.6 kB 00:00 Amazon Linux 2023 Kernel Live..

AWS 2023.05.19