이론 정리 153

Redis - cache, persistence 기초

Redis란? In-memory Data structure Store BSD 3 License Open Source 레디스를 쓸 때에 마음대로 코드를 수정하거나, 숨기거나 할 수 있다. 추가로 Redis module은 느낌이 다른데, 이건 Redis Enterprise를 제공해주는걸로 얘는 변경시 코드를 공개해야한다. Support Data Structures String, set, sorted-set, hashed, list Hyperloglog 유일한 원소 개수 추정에 사용되는 알고리즘. 속도가 매우 빠르고 오차가 적다고 한다. bitmap geospatial index 나에게서 얼마만큼의 거리에 있는 데이터들을 가져온다. stream Only 1 Committer 레디스 소스를 고칠 수 있는 사람은..

OIDC와 OAuth에 대해..

OIDC와 OAuth OIDC와 OAuth의 차이점은 OIDC는 Authentication에 집중하고, OAuth의 경우는 Authorization을 포함한다는 것이다. Authentication과 Authorization Authentication(인증) 사용자가 누구인지 확인하는 절차 해당 어플리케이션에의 접근 가능 여부를 확인한다. Authorization(인가) 사용자의 권한을 확인하는 절차 어플리케이션에 접근 후, 특정 서비스에의 사용 가능 여부를 확인한다. OIDC / OAuth 차이 OAuth는 클라이언트가 리소스 소유자로부터 서버의 자원에 대해 인가받고 접근하기 위해 사용된다. 즉 인가를 주요 목적으로 하고 있고, 인증은 이의 주요 목적이 아니다. OAuth에서는 사용자에 대한 정보를 명시..

이론 정리 2022.10.10

SOLID원칙에 대하여

SOLID - 객체지향 설계 5원칙 객체지향의 가장 기저가 되는 원칙이자, 객체 지향을 하기 위해 지켜야 하는 5개의 원칙이다. 이름 그대로 5개로 이루어져 있다. SRP(Single Responsibility Principle) : 단일 책임 원칙 OCP(Open-Closed Principle) : 개방-폐쇄 원칙 LSP(Liskov Substitution Principle) : 리스코프 치환 원칙 DIP(Dependency Inversion Principle) : 의존 역젼 원칙 ISP(Interface Segregation Principle) : 인터페이스 분리 원칙 위의 5개의 원칙을 사용하여 프로그래밍을 하면, 유지 보수와 뛰어난 확장성을 가질 수 있다고 하는데, 각각의 특징과 개념을 알아보자 ..

이론 정리 2022.10.03

트랜잭션의 격리수준과 문제점, 그리고 해결법

트랜잭션의 격리수준 동시에 여러 트랜잭션을 처리할 때에, 얼마나 이들이 서로 고립되어 있는지를 의미한다. 즉, A라는 트랜잭션이 B라는 트랜잭션 내에서 변경한 데이터를 보는 기준점을 결정한다. 격리수준의 종류 이는 4가지로 분류할 수 있는데, READ UNCOMMITTED 커밋되지 않은 데이터를 읽을 수 있음 READ COMMITTED 커밋된 데이터만 읽을 수 있음 REPETABLE READ 트랜잭션 동안 같은 데이터를 읽을 수 있음 SERIALIZABLE 트랜잭션의 순차적 실행 이다. 한번 하나하나 살펴보자. READ UNCOMMITTED 아직 커밋되지 않은 데이터를 읽을 수 있는 격리 수준이다. 즉 Transaction의 COMMIT이나 ROLLBACK과 상관 없이 해당 트랜잭션의 데이터를 확인 가능..

Terraform 기본 개념 정리

Terraform 기본 개념 Infrastrupctupre as Code, 코드로써의 인프라 인프라를 이루는 서버, 미들웨어 그리고 서비스 등, 인프라 구성요소들을 코드를 통해 구축하는 것 IaC는 코드로써의 장점, 즉 작성용이성, 재사용성, 유지보수 등의 장점을 가진다. Terraform by Hashicorp 테라폼은 현재 정말 많이 쓰이는 도구이고, 현재는 거의 업계 표준으로 쓰인다. 테라폼은 인프라를 만들고, 변경하고, 기록하는 IaC를 위해 만들어진 도구이다. 문법이 쉬워 비교적 다루기 쉽고 사용자가 많아 레퍼런스를 찾기 쉽다. .tf형식의 파일 확장자를 갖는다. AWS, Azure, GCP같은 퍼블릭 클라우드뿐만이 아닌 다양한 서비스 역시 지원한다. 테라폼 구성요소 provider 테라폼으로 ..

Terraform의 Variable 기초

Terraform Infrastructure as Code Variables 코드에서 변수를 사용할 수 없다면, 매번 다른 값이 필요할 때 마다 하드코딩된 코드 한벌씩을 새로 만들어야 할 것이다. 테라폼의 설정 파일을 작성하는 운영자와 개발자는 변수의 정의를 코드와 함께 작성하여 텍스트 편집기를 열지 않고도 인프라를 코드로 쉽게 정의할 수 있다. .tfvars형식의 직접적 변수 선언 일반 .tf파일에서의 변수 선언 Inline변수 선언 또는 변수 파일 지정 (-var / -var-file) 환경 변수 선언 OSS Terraform 구성 또는 모듈의 입력 변수 관리 지원되는 변수의 종류는 이렇게 3가지 카테코리로 이루어져 있다. Primitive Types string number bool Collecti..

terraform의 workflow 기초

Terraform 기초 HashiCorp라는 회사에서 만든 솔루션이다. 이는 인프라를 구축,변경,버전관리를 하기 위한 도구로서 코드로 인프라를 관리할 수 있게 해준다. 코드가 곧 인프라가 되고, 인프라를 코드로 설명할 수 있어야 한다는 것이다. Provisioning Day0, Day1, Day2 이런 식으로 설명한다. Day0 요구사항 분석, 어떤 아키텍쳐를 설계할지에 대한 트레이닝 과정 Day1 설계된 아키텍쳐의 구현 인프라, 네트워크 서비스 구현 등이 여기서 이루어진다. Day2 Day1에서 구성된 요소들을 관리하고, 유지보수하고, 새로운 요청이 있으면 새로운 아키텍쳐를 구성하는 등의 반복 작업을 여기서 수행해준다. Day1을 통해서 인프라 구성 완료를 했다고 가정해 보자. 그리고 이후 Day2에서..

Vault userpass방식 로그인 및 Policy 적용하기

Vault userpass방식을 사용한 Vault서버 로그인 및 policy를 통한 권한 부여 이전 방식에서는 Token을 통해 권한의 확인을 진행해 보았다. 이번에는 여기에 userpass를 붙여본다. 1. Vault서버에 Root 계정으로 로그인하기 입력 vault login hvs.RootToken~~~~~ 결과 Success! You are now authenticated. The token information displayed below is already stored in the token helper. You do NOT need to run "vault login" again. Future Vault requests will automatically use this token. Key V..

Vault Token방식 로그인 및 Policy 적용하기

Vault Token방식을 사용한 Vault서버 로그인 및 policy를 통한 권한 부여 1. Vault서버에 Root 계정으로 로그인하기 입력 vault login hvs.RootToken~~~~~ 결과 Success! You are now authenticated. The token information displayed below is already stored in the token helper. You do NOT need to run "vault login" again. Future Vault requests will automatically use this token. Key Value --- ----- token hvs.RootToken~~~~~ token_accessor mDI0u6IZs..

네트워크 인프라 기초 공부 및 정리

IT인프라, 왜 알아야 할까?? 어플리케이션을 동작시키기 위해서는 다양한 요소들에 대한 고민이 필요하다. 이 때 우리는 시스템을 크게 기능적 요구사항과 비기능적 요구사항으로 나누어 생각해볼 수 있는데, IT인프라 환경은 비기능적 요구사항에서 중요한 역할을 차지한다. 어플리케이션 개발에 있어서는 크게 기능적 요구사항 / 비기능적 요구사항 에의 고민이 필요하다. 기능적 요구사항 시스템이 무엇을 해야 하는지에 대한 정의 시스템이 수행해야 하는 기능 기술 세부정보 데이터 조작 및 처리 등등... 비기능적 요구사항 대체적으로 품질이나 속성에 대한 내용 인프라는 비기능적 요구사항과 밀접한 관련을 가지고 있다. 제품 요구사항 시스템이 얼마나 빨리 실행되고, 얼마나 많은 CPU나 메모리가 존재해야 하는지? 장애가 났을..