Architecture ORDBMS, multi-process(연결마다 프로세스 생성) RDBMS, single-process(연결마다 쓰레드 생성) Data types supported Numeric, date/time, character, boolean, enumerated, geometric, network address, JSON, XML, HSTORE, arrays, ranges, composite Details Numeric, date/time, character, spatial, JSON Details Indexes supported B-tree, hash, GiST, SP-GiST, GIN, and BRIN 기본적으로 B-tree;특정 데이터 타입에 R-tree, hash, inverted..
◼CheckList 1. 애플리케이션이 성숙했을 때 얼마나 많은 데이터를 저장할 것으로 예상되는가? 어느 정도의 데이터를 저장 할 것인가? 기가바이트 단위 이하 -> 모든 데이터베이스 가능 페타바이트 이상 -> '라이브' 데이터는 쿼리 속도를 위해 in-memory나 SSD 고려, 전체 데이터는 HDD로 보관 등의 구조 필요 2. 첨두 부하(peak load)에서 동시에 몇 명의 사용자를 처리할 것으로 예상되는가? 동시 사용자는 몇 명인가? 동시 사용자 부하 추정 필요 많은 데이터베이스가 확장 문제가 있다 예상치 못하거나 계절적인 부하를 위해 여러 서버로 확장 할 수 있는 옵션 필요 수동으로 샤딩 없이 수평적으로 확장이 가능한 데이터베이스는 적다 3. 애플리케이션에 필요한 가용성(availbility),..
어플리케이션의 복잡도를 다루기 위해 적절한 응집도와 결합도를 찾아야 한다. SOLID는 높은 응집도와 낮은 결합도를 위한 OOD의 설계 원칙이다. SOLID SOLID는 지향해야 될 목표로 이상향에 가까움 현실적인 문제로 Trade off는 항상 있다. SRP(Single Responsibility Principle)::단일 책임 원칙 하나의 객체는 하나의 책임을 가져야 한다. ex) 예금 잔고 객체 단일책임은 정해진 게 아니라 어디까지 하나의 책임으로 볼 건지 고민 필요 입금, 출금이 있을 때 입출금 하나의 책임인지 따로따로가 단일 책임인지에 대한 고민 하나의 객체가 있는데 두개의 책임이 있다면 분리 package main type FinanceReport struct { } func (r ..
◼ Netstat 네트워크 상태를 보여준다. 네트워크 프로토콜 통계를 위한 네트워크 연결을 보여주는 도구 전송 제어 프로토콜, 라우팅 테이블, 수많은 네트워크 인터페이스(네트워크 인터페이스 컨트롤러 또는 소프트웨어 정의 네트워크 인터페이스) 를 확인 할 수 있다. 자주 사용하는 옵션 -n, --numeric ip 주소로 표시(don't resolve names) -l, --listening 연결 가능한 상태만 표시(display listening server sockets) -p, --programs 프로그램 이름 / PID 번호 표시(display PID/Program name for sockets) -t|--tcp tcp만 표시 netstat netstat -n netstat -l netstat -p..
◼ Cluster(클러스터) 쿠버네티스를 배포하면 얻는 것으로 컨테이너화된 애플리케이션을 실행하는 노드라고 하는 워커 머신의 집합을 뜻한다. 모든 클러스터는 최소 한 개이상의 컨트롤플레인과 워커 노드를 가진다. 클러스터가 하는 작업 원하는 상태(행해야 할 애플리케이션이나 워크로드, 사용하는 이미지, 사용할 수 있는 리소스 등)를 만든다. 원하는 상태는 매니페스트로 이루어진 구성 파일로 정의 원하는 클러스터 상태는 쿠버네티스 API로 정의 쿠버네티스는 원하는 상태에 부합하도록 자동으로 클러스터를 관리 ◼ Component(컴포넌트) 사전적 의미: 시스템이나 어떤단위의 일부분을 지칭할 때를 말하는 것 프로그래밍/엔지니어링: 더 큰 프로그램이나 구조물에서 식별 가능한 "일부분" 쿠버네티스에서는 크게 컨트롤플레..
docker compose v2를 간략하게 정리합니다. 소개 Docker Compose는 여러개의 container을 실행시키기 위한 tool로 Compose file format를 따른다. Docker Desktop 을 다운 받으면 사용 할 수 있다. V1과 다른점 가장 큰 차이점은 docker cli에 통합 되었기 때문에 docker가 있으면 사용 가능하다는 말과 같다 docker-compose가 아닌 하이픈(-)이 빠진 명령어 사용. docker compose python에서 go 언어로 재 작성 다른 추가적인 utility 명령어 추가(다른 stack과 container를 쉽게 다룰 수있는 명령어) i.e. compose.yaml 파일 없이 compose ls나 compose cp 등 실행 bui..
Conveiontional Commit를 사용하면 commit 만으로 Sementic Versioning을 쉽게 할 수 있습니다. fix 타입의 커밋은 PATCH 버전으로 번역 feat 형식 커밋은 MINOR 버전으로 번역 타입과 관계없이 BREAKING CHANGE를 포함한 커밋은 MAJOR로 번역 SemVer Versioning 특정 상태에 대한 유일한 버전 이름 혹은 버전 번호를 각각 결정하는 과정이다. 소프트웨어의 관리를 위해 고안되었다 Semantic Versioning Semenantic Versioning을 줄여서 SemVer로 부르며 유의적 버저닝으로 번역된다. 버전 번호를 어떻게 정하고 올려야 하는지에 대한 규칙과 요구사항이 담긴 명세로 Github의 공동 창업자인 Tom Preston-..
ansible 등을 사용하면 필요 없을 것 같지만.. direnv를 통한 환경변수 사용을 정리합니다. direnv 프로젝트별로 환경변수를 관리하게 해주는 shell extension이다. 프로젝트 경로에 들어갔을 때. envrc에 있는 환경 변수들을 set 해준다. 프로젝트를 나오면 unset을 자동으로 해주기 때문에 편리하다. Install $ brew install direnv $ echo 'eval "$(direnv hook zsh)"' > ~/.zshrc Usage 프로젝트 폴더에서 .envrc 파일을 만들고 direnv allow를 해주면 된다. $ echo export env=local >> .envrc $ direnv allow global gitignore 프로젝트별로 따로 추가 해줄 수 ..
- Total
- Today
- Yesterday
- Network
- go
- Isolate level
- cka
- no-op
- pytest
- buildkit
- gitignore
- HTTP/2
- GitHub
- HTTP/3
- thetextbook
- k8s
- QUIC
- 프리온보딩
- Git
- direnv
- Complier
- user-agent
- docker-compose
- web_server
- database
- http
- MSA
- 위코드
- 창업
- inflearn
- Python
- 원티드
- 덕타이핑
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |