728x90

전체 글 105

운영체제 기초 이론

Operating System Or OS 대표적인 운영체제 Windows OS, Mac OS, UNIX 역할 시스템 자원(System Resource) 관리자 사용자와 컴퓨터간의 커뮤니케이션 지원 응용프로그램 제어 시분할 시스템과 멀티 태스킹 응용 프로그램이 CPU를 사용하는 시간을 잘게 쪼개서, 여러 개의 응용 프로그램을 동시에 실행하는 기법 시분할 시스템 : 다중 사용자를 지원하고, 컴퓨터 응답 시간을 최소화하는 시스템 멀티 태스킹 : 단일 CPU에서, 여러 응용 프로그램의 병렬 실행을 가능케 하는 시스템 보통 시분할 시스템 = 멀티 태스킹 *멀티프로그래밍 : 최대한 CPU를 많이 활용하도록 하는 시스템 응용 프로그램, 운영체제, 컴퓨터 하드웨어 관계 운영체제는 응용 프로그램이 요청하는 메모리를 허가..

기타/OS 2022.08.17

컴퓨터 구조 기초 이론

Accumulator 가산기와 컴퓨터 8-bit Adder : 두 데이터를 더한 값을 출력 가능한 장치 8-bit Latch : 데이터를 저장 및 저장한 데이터를 출력할 수 있는 장치 Accumulator CPU에서 덧셈 처리를 위해, 회로구성 레지스터는 CPU가 요청을 처리하는 데 필요한 데이터를 일시적으로 저장하는 기억 장치 해당 구조 기반으로, 숫자를 차례로 계산 하고 최종 결과를 메모리에 저장시 성능 개선이 가능하다 In-Memory DB는 모두 SSD, HDD에 저장하는 반면에 In-Memory는 메모리에 데이터를 저장하고 처리하기에 속도가 빠르다. 오픈소스 Redis, Memcached가 존재 CPU Architecture PC - Program counter : 다음 실행 할 명령어 주소를 ..

기타/OS 2022.08.17

MongoDB Arbiter

MongoDB 에서 레플리카 셋 서버 구성을 한다고 했을 때, 각각의 마스터서버, 슬레이브 서버만 생각하기 마련이다. 하지만 여기서 추가적으로 '아비터 서버'라는 것이 구성될 수 있다. 각각의 서버들의 개념을 살펴보면 다음과 같다. 1. 마스터 서버(1개) : 메인 데이터베이스 서버, 사용자가 접속하는 대상 서버 2. 슬레이브 서버(n개) : 서브 형태의 서버, 마스터 서버와의 데이터를 동기화하는 서버 3. 아비터 서버(1개) : 감시용 서버, 문제가 생긴 서버를 대신해서 동작할 다른 서버를 지정하는 등의 역할을 하는 서버 마스터에 문제가 생겨 슬레이브 노드로 대체 한다고 했을 때 이것이 당연하게 이루어 지는게 아니라, 아비터 서버를 통해서 아비터 서버가 마스터에서 어떤 문제가 생기는지 감시하고 문제가 ..

DataBase/NoSQL 2022.04.01

DB 간단한 개념 정리

RDBMS (정확한 데이터 구조 / 명확한 스키마가 중요할때) 관계형데이터베이스 관리 시스템으로 관계형 모델을 기반으로 모든 데이터를 테이블 형태로 표현하는 데이터 베이스 → 관계를 나타내기 위해서 사용하는 키가 외래 키(FK) → 이 외래키로 테이블 간 Join이 가능함 정해진 스키마가 있어서 명확한 데이터 구조및 중복없이 저장 가능 테이블간 관계가 있어서 시스템이 커질 경우에는 Join이 많아질 수 있어서 복잡한 쿼리가 만들어질 수 있고, 성능이슈가 있을 수 있다. → Scale-up을 통해 해결하면 되지만. 비용이 만만치 않다. NoSQL (정확한 데이터 구조를 알 수 없고 / 데이터 변경 및 확장이 될 수 있을 때) RDB형태의 관계형이 아니라 다른 형태의 데이터를 저장할 수 있는 기술로 관계를 ..

DataBase/RDBMS 2022.04.01

Cannot add or update a child row: a foreign key constraint fails

Cannot add or update a child row: a foreign key constraint fails 구성되어있는 테이블에서 외래키를 추가 하다 발생한 에러 -> 테이블 안에서 값이 이미 존재하여, 외래키로 선언 하려는 컬럼의 값과 참조하는 테이블의 값이 존재하더라도 존재하지 않을 수 있기에 발생할 수 있음 해결법 : 구성된 테이블의 내용 비우고 다시 시도해야 한다. 기존 테이블 데이터는 백업을 받아놓고 비운 뒤에 외래키 추가 후 다시 삽입 하면 해결 할 수 있음

DataBase/RDBMS 2022.03.03

Hyper-V 원격 접속 방법

관리자모드 : PowerShell winrm quickconfig Set-Item WSMan:\\localhost\\Client\\TrustedHosts -Value Enable-WSManCredSSP -Role client -DelegateComputer Windows key + R gpedit.msc 엔터 -> 컴퓨터 구성 > 관리 템플릿 > 시스템 > 자격 증명 위임 > 서버 인증이 NTLM 전용일 경우 새로운 자격 증명 허용 구성 [사용] 목록에 서버 추가 : WSMan/ PowerShell (일반) cmdkey /add /user:\\ /pass Hyper-V 관리자 > 서버에 연결 -> 다른컴퓨터 -> IP나 서버컴퓨터 이름입력 > 다른사용자로 연결 > 사용자설정 서버이름\administrat..

기타/OS 2022.02.22

Traefik 활용해보기

Traefik ? - Docker , K8S 등에 특화된 golang 기반의 reverse proxy 앱 - 설정을 raw text로 관리하는 것을 선호 - /volume1/docker 경로에 모든 파일을 저장한다고 가정, docker-compose로 설명 - lets encrypt 인증서를 입힐 수 있는 도메인이 필요 - 모든 연결이 https를 사용 - GUI가 아닌 쉘에서 진행 Traefik docker-compose로 올려보기 # 특정 docker-compose 문법을 사용하기 위해서는 3.x 이상이 필요합니다. version: '3.7' services: traefik: container_name: traefik image: traefik:latest restart: always # docker..

kvm docker-qemu

docker+kvm+novnc 초기설정 시 /etc/docker/damon.json 생성 # /etc/docker/damon.json { "bridge": "virbr0", "iptables": false, "dns": ["8.8.8.8"] } systemctl reload docker (도커 서비스 다시 로드) systemctl restart docker (도커 서비스 재시작) brctl show로 kvm 네트워크 사용하고 있는지 확인 user01@docker-qemu:/data$ brctl show bridge name bridge id STP enabled interfaces docker0 8000.024237726890 no virbr0 8000.52540030f4ca yes veth3acdf15..

AWS - CodePipeline

Code Pipeline = CI/CD 의 끝판왕 처리를 자동으로 해주며, 관리해줌 Code Pipeline이 하는 일은 ? 빌드, 테스트, 배포 과정을 관리 코드 변경 시 Code Pipeline은 이를 감지할 수 있음 소프트웨어 및 어플리케이션 출시 자동화 가능 빠르고 쉬운 디버깅을 가능케 해줌 배포(Deployment) VS 출시(Release) 출시는 최종적으로 사용자에게 제공하는 환경이며, 모든 테스트와 배포를 거친 후의 단계 배포는 100% 세상 밖으로 나오기 바로 전 단계를 의미 Code Pipeline 작동 방법 workflow - 코드 저장소에서 특정 코드가 변경되었을 시에 시작이 된다. code commit 에서 정의된 레포지토리에서 작동한다. 코드의 추가 및 수정 삭제 등 그럴 때마다..

AWS - Code Commit & Code deploy

Code Commit 파일들을 보관하는 저장 장소 (Repository) - Github과 매우 유사 코드, 사진, 라이브러리, 그 밖에도 어플리케이션을 구동하기 위한 모든 파일 등.. 동시에 많은 사람들이 저장 장소 접근 및 업데이트 가능 버전 컨트롤 기능 제공 Ex ) 언제 어떻게 누가 저장 장소 내용을 변경하였는지 Code Deploy = 자동배포 (Automated Deployment) 장점 새로운 기능들의 빠른 배포 소프트웨어 & 서버 다운타임 X Manual 에러 X CD를 하지 않는다면, 서버를 닫고 작업이 이루어진 후에 작업이 끝나야만 서버를 재시작 후에 사용이 가능하다. 2가지 방식이 존재 Rolling 배포 현재 Prod에서 동작중인 서버가 있고 또 개발자들이 어떤 기능을 구현했고 그 ..

AWS - CI/CD

CI / CD CI : Continuous Integration (지속적인 통합) 통합 : 개발자들의 자기들의 개발이 중앙 레포지토리에 반영하고 테스트를 하고 내 것이 다른 개발자들에게 영향이 가지 않게한다. 개발자들의 코드충돌을 막아준다. CD : Continuous Deployment (지속적인 배포) 코드를 수정하고 지속적으로 프로그램을 배포함으로서 사용자들이 불편함을 느끼지 않도록 개발자들의 짐을 많이 덜어준다. CI/CD의 장점 자동화 시스템(Automation) - 테스트 반복적인 일의 경우 자동화를 통해 개발자들의 짐을 덜어준다. Incremental Change 예시로, 쇼핑몰 사이트에서 고객이 옷을 찾다가 가격에 대한 정보가 없다라는 버그를 발견시 개발자가 가격이 보여지는 기능을 구현하기..

AWS - API Gateway

RESTful API에 관한 설명은 ETC 카테고리 설명 참조 https://startces.tistory.com/93?category=797529 API & RESTful API API → Application Programming Interface EX) 가족이 외식하기 위해 식당을 찾아 무엇을 먹을지 메뉴판을 보고 결정하며, 주방에는 주방장이 있다. 이때, 가족은 주방에 직접 가서 무엇을 주문할지 직접 말 startces.tistory.com 대부분 어플리케이션은 RESTful API 기반으로 운용됨 매우 힘든 RESTful API 관리 Authentication & Authorization → 모든 사람들의 요청을 허용하면 안된다. ex) 회원에게만 제공하는 혜택이 있어야 할 경우 비회원에게는 제..

API & RESTful API

API → Application Programming Interface EX) 가족이 외식하기 위해 식당을 찾아 무엇을 먹을지 메뉴판을 보고 결정하며, 주방에는 주방장이 있다. 이때, 가족은 주방에 직접 가서 무엇을 주문할지 직접 말하기 싫고, 주방장 역시 직접 가서 주문을 받기 싫은 상태일 때 이때, 중간에 주문을 집행 해주는 직원이 API 라고 할 수 있다. 쇼핑몰에서 고객이 원하는 화면을 제공해주기 위해서 요청한 화면을 보여주는 것이라고 보면 된다. API는 중간에서 복잡한 일들을 처리해주는 중요한 역할이다. RESTful API? API 종류들 중 하나 REpresentational State Transfer → 상태의 변화를 주기 위해 그 정보를 서버와 클라이언트에게 공유하고 주고받기 위해 사용..

AWS - DynamoDB (Stream)

DynamoDB Stream DynamoDB 테이블에서 일어나는 일들(삽입, 수정, 삭제 등)이 일어날 시 시간적 순서에 맞게 Streams에 기록 Log는 즉각 암호화가 일어나며 24시간동안 보관됨 → 24시간 후 로그 소멸 주로 이벤트를 기록하고 이벤트 발생을 외부로 알리는 용도 (예시 : Lambda Function) 이벤트 전&후에 대한 상황 보관 (24시간 유효) 어플리케이션이 2개의 AWS SDK와 연동이 되어있다고 가정할때 한가지 예시로는 DynamoDB API며 직접 소통하며 하나의 고유한 Endpoint와 연결 하나의 API는 하나의 EndPoint와 연결이 된다 라고 볼 수 있다. ex) 쇼핑몰을 운영한다 할때, 고객이 물건을 구매할 때 이벤트로 인식하여 람다함수가 실행 SNS로 메세지..

AWS - DynamoDB (DAX)

DynamoDB Accelerator (DAX) 다이나모 디비에서 제공하는 클러스터 In-memory 캐시 10배 이상의 속도 향상 읽기 요청만 해당사항 (쓰기 요청x) 읽기 요청이 많거나 그 크기가 많을 때 사용 EX) 블랙프라이데이 → 쇼핑 웹사이트 운영 (수많은 읽기 요청 예상) DAX 원리 DAX 캐싱 시스템 테이블에 데이터 삽입 & 업데이트 시 DAX 에도 반영 읽기 요청에 맞는 데이터가 DAX 에 들어있을 시 DAX에서 데이터 즉시 반환 (Cache Hit) ↔ (Cache Miss) DAX의 단점 쓰기 요청이 많은 어플리케이션에서는 부적절함 기 요청이 많지 않은 어플리케이션에 부적절함 아직 모든 지역에서 제공하지 않음

AWS - DynamoDB (Query VS Scan)

데이터를 불러오는 두가지 방법 Query, Scan Query Primary Key를 사용하여 데이터 검색 Query 사용시 모든 데이터(컬럼) 반환 ProjectionExpression 파라미터 Scan 모든 데이터를 불러옴 (primary key 사용 X) 따로 필터를 추가 하여 원하는 데이터를 볼 수 는있다. (쿼리와 가장 큰차이) 쿼리는 이미 파티션이 적용되는 반면에 스캔은 그렇지 않다. ProjectionExpression 파라미터 Query VS Scan Query가 Scan보다 훨씬 효율적인 따라서, Query 사용 추천 데이터의 크기가 일정하지 않아 테이블의 크기가 계속 커진다면 Scan의 퍼포먼스는 악화된다. 다만, Scan을 사용하면서 보완할 수 있는 스킬이 있다. 순차적 방법 병행 스..

AWS - DynamoDB (Index)

Index 특정 컬럼만을 사용하여 쿼리 테이블 전체가 아닌 기준점(pivot)을 사용해 쿼리가 이루어짐 매우 큰 쿼리 성능 효과 두가지의 Index 유형 존재 Local Secondary Index Global Secondary Index Local Secondary Index (LSI) 테이블 생성시에만 정의해줄 수 있음 따라서 테이블 생성 후 변경, 삭제가 불가능 똑같은 파티션키 사용, 그러나 다른 정렬키 사용 → 전혀 다른 뷰를 만들어 줄 수 있음 시간을 정렬키로 정의한다면 쿼리속도가 빨라짐 Global Secondary Index (GSI) 테이블 생성후에도 추가, 변경, 삭제 가능 다른 파티션키, 정렬키 사용 → 완전히 다른 뷰를 만들어줄 수 있음 뷰를 만든다 → 뷰가 복제가 된다. 뷰에서 데이..

AWS - DynamoDB

DynamoDB NoSQL(Not Only SQL) 데이터베이스 매우 빠른 쿼리속도 Auto-Scaling 긴능 탑재 → 데이터의 크기가 커질 수록 테이블의 크기가 알아서 조정 (비용관리에 좋다) Key-Value 데이터 모델 지원 테이블 생성시 스키마 생성이 필요 없음 → 데이터가 들어올 때 알아서 스키마를 생성함 모바일, 웹, IoT 데이터 사용시 추천됨 → 실시간으로 들어오는 데이터를 관리할때 매우 좋음 SSD 스토리지 사용 → 따라서, 읽고 쓰기가 매우 빠름 테이블(Table) 로 구성되어있음 내부에는 아이템(items) - 행(row)과 개념이 비슷하다. 특징(Attributes) - 열(column)과 개념이 비슷하다. Key-Value (key : 데이터의 이름, Value : 데이터 자체)..

Netflix OSS 사내 세미나 내용 정리

Netflix OSS 등장 배경 심각한 데이터베이스 손상으로 3일간의 DVD 배송 지연 문제 발생 수직 확장되는 **단일 실패지점(Single fail of point)**에서 벗어나기를 희망 이후 Netflix는 신뢰성 있고, 수평 확장이 가능한 클라우드 내 분산 시스템으로 전환하기로 함 최고의 확장성과 다양한 서비를 제공하는 AWS 클라우드를 선택 자체 개발한 Netflix Stack을 이용 2008년 8월부터 클라우드 마이그레이션을 시작 ‘7’년의 마이그레이션 클라우드의 장점이 많은데도 불구하고 7년이 걸려서 마이그레이션이 최종 완료 데이터 센터의 모든 시스템을 AWS로 가져다 놓는 것이 가장 쉬운 방법이지만 이러한 방법은 데이터 센터가 지닌 문제점과 한계점을 그대로 옮기는 것 밖에 되지 않음 클라..

Seminar 2022.02.08
728x90
반응형