본문 바로가기

분류 전체보기160

마이크로서비스 핵심 개념 6가지 독립적 배포 하나의 마이크로 서비스만 단독으로 배포 가능해야함. 도메인을 중심의 모델링 한 마이크로서비스, 한 기능(즉, 결합도를 최대한 낮춰야함) 고유한 상태를 가짐 마이크로서비스 간 DB를 고유하지 않음. 데이터를 공유하지 않음 크기가 적당해야함 마이크로서비스는 조직이 다룰 수 있는 개수 이상을 넘어가지 말아야함(복잡도를 키우지 말아야한다는 뜻인듯) 마이크로서비스 간의 경계를 명확하게 정의 유연함 판을 키우지 말고 점진적으로 마이크로서비스로 넘어가는 것을 권장 마이크로서비스는 옵션이기 때문에 맹목적으로 매몰될 필요는 없다라고 해석됨 전 회사에서도 MSA로 가기로 결정 후 장바구니 관련 서비스를 따로 마이크로서비스로 뺐었음 아키텍쳐와 조직을 맞추기 조직 구조를 아키텍쳐에 맞게, 도메인에 맞게 편성 프론.. 2023. 5. 13.
쿼리로 랜덤한 문자열 생성 - MySQL UUID() - MSSQL NEWID() 이렇게 생성된 GUID는 128비트의 크기를 가지고 있기에 가능한 GUID의 조합은 2^128개이다. 2023. 4. 19.
암호학에서의 솔트(salt) 암호학에서 솔트(salt)는 데이터, 비밀번호, 통과암호를 해시 처리하는 단방향 함수의 추가 입력으로 사용되는 랜덤 데이터이다. 솔트는 스토리지에서 비밀번호를 보호하기 위해 사용된다. 사용자의 비밀번호를 암호화처리할 때, 단순히 암호화하는 것이 아니라 사용자의 비밀번호에 랜덤한 솔트값(소금같은 존재라 salt인듯...)을 더해서 해시 처리한다. 예를 들면, 비밀번호가 1234라고 하고 솔트값이 abcd라고 하면 1234abcd로 해시 처리하는 것. 그래서 솔트가 무슨 의미가 있는가? 솔트값 없이 비밀번호를 암호화한다면 같은 패턴으로 암호화되기 때문에 동일한 비밀번호는 동일한 해시값을 가지게 된다. 솔트값을 추가함으로써 동일한 비밀번호를 가진 두 사용자의 해시값이 다르게 저장되므로, 해커가 해시값을 추측하.. 2023. 4. 12.
[k8s] 마스터, 워커 쿠버네티스는 일반적인 클러스터 시스템과 비슷하게 크게 마스터와 워커 노드로 구분된다. 마스터kube-apiserver: 마스터로 전달되는 모든 요청을 받아들이는 REST API 서버etcd: 클러스터내 모든 메타 정보를 저장하는 저장소쿠버네티스 클러스터에  필요한 모든 데이터를 저장하는 분산형 key-value DB 역할 수행. 고가용성을 위해 etcd 클러스터를 구축하여 안정성을 높힐 수 있다kube-scheduler: 사용자의 요청에 따라 적절하게 컨테이너를 워커 노드에 배치하는 스케줄러kube-controller-manager: 현재 상태와 바라는 상태를 지속적으로 확인하며 특정 이벤트에 따라 특정 동작을 수행하는 컨트롤러지속적으로 control loops을 돌며 현재 상태(current state.. 2023. 4. 12.
Kubernetes Overview Master: 쿠버네티스를 전반적으로 컨트롤 하는 서버 Node: 한 마스터에 여러 노드들이 연결되어 자원을 제공하는 서버. 클러스터 전체의 자원을 늘리고 싶다면 노드를 추가. Namespace: 클러스터 안의 Namespace가 쿠버네티스 오브젝트들을 독립된 공간으로 분리되게 만듦. Pod: Namespace 안에는 쿠버네티스의 최소 배포 단위인 Pod들이 있음. Pod Service: Pod들이 외부로부터 연결이 가능하도록 함. 단, 서로 다른 Namespace들 간 내부 통신은 불가능. Container: Container 안에는 하나의 앱이 동작하고, Pod 안에는 여러 컨테이너가 존재 가능. Volume: Pod이 날아가면 내부의 데이터도 날아가기 때문에 Pod이 재생성될 때나 서로 다른 Pod.. 2023. 4. 7.