전체 글
-
kubernetes componentsEtc 2023. 11. 12. 16:05
쿠버네티스는 컨테이너를 파드 내에 배치하고 노드에서 실행함으로서 워크로드를 구동한다. Node 클러스터 내 설치되는 가상 혹은 물리 머신을 의미. 과거에는 미니언즈라는 용어로 불렀다. 용어는 현재도 혼용해서 사용한다. 어플리케이션이 실행중이다가 노드가 죽을 수도 있으니, 일반적으로 클러스터에는 여러 개의 노드를 둔다. Cluster 노드(워커 머신)의 집합. 모든 클러스터는 최소 한 개 이상의 워커 노드를 가진다. 클러스터 외부에서 관점에서는 하나의 노드가 죽어도 다른 노드로 접근 가능하기 때문에, 부하 분산 및 고가용성을 보장한다. 고가용성을 보장하기 위해서는 쿠버네티스 자체적으로 다음의 일을 지속적으로 수행해야 한다. 모든 클러스터를 관리하고, 관리중인 자원의 정보를 저장하고, 노드를 모니터링 하고..
-
(kotlin)gradle spring boot application dockerizeSpring 2023. 9. 28. 19:07
https://spring.io/guides/topicals/spring-boot-docker/ Getting Started | Spring Boot Docker The Spring Boot Maven and Gradle plugins use buildpacks in exactly the same way that the pack CLI does in the following examples. The resulting images are identical, given the same inputs. Cloud Foundry has used containers internally for many years now, an spring.io 1. spring boot application initialize ht..
-
Engine=InnoDB는 뭘 지정해주는 걸까 - MySQL 엔진과 스토리지 엔진Computer Science/Database 2023. 7. 9. 23:05
MySQL 아키텍처 MySQL 서버는 MySQL 엔진, 스토리지 엔진으로 구분 스토리지 엔진은 핸들로 API를 만족하면 누구든 구현해서 서버에 추가 가능 MySQL 엔진 아키텍처 MySQL 엔진 MySQL 엔진은 아래의 역할들을 수행하며 요청된 SQL 문장을 분석, 최적화하는 핵심 처리를 함 커넥션 핸들러: 클라이언트로부터의 접속 및 쿼리 요청을 처리 SQL 파서 전처리기 옵티마이저: 쿼리를 최적화 하여 실행 스토리지 엔진 실제 데이터를 디스크 스토리지에 저장하거나 데이터를 읽어오는 부분을 전담 스토리지 엔진은 여러 개를 동시에 사용할 수 있다 각 스토리지 엔진은 성능 향상을 위해 키 캐시나 InnoDB 버퍼 풀과 같은 기능을 내장 mysql> CREATE TABLE test_table (fb1 INT,..
-
HTTPS는 어떻게 신뢰성있는 통신을 보장할까❓Computer Science/Network 2022. 11. 12. 22:18
더보기 약 1년만에 고향 티스토리로 돌아와 글을 쓰는 감회가 새롭다 현재 HTTP 완벽 가이드 책으로 스터디를 진행중인데, 14장 보안 HTTP 단원 발표 준비를 하며 당연하게만 쓰고있었던 HTTPS를 제대로 이해보고자 한다 https://2jinishappy.tistory.com/338 대칭 키/공개 키/단방향 암호화 알고리즘(정의와 예시) 암호화 알고리즘은 암호화/복호화에 사용되는 키, 그리고 양방향 가능 유무를 기준으로 분류할 수 있다. Symmetric-Key Algorithm 대칭 키 알고리즘 대칭 키 암호는 암호화 알고리즘의 한 종류로, 암호 2jinishappy.tistory.com 이전에 대칭키, 공개키 암호화 알고리즘에 관한 글을 작성한 적이 있었다. 대칭키 공개키가 어떤건지는 알겠는데,..
-
Kotlin 처음 시작하기Programming/Kotlin 2021. 12. 26. 23:32
https://kotlinlang.org/ Kotlin Programming Language kotlinlang.org 코틀린을 처음 알게된 건 우아한형제들의 '어디가서 코프링 매우 알은 체 하기'라는 세미나 때문이었는데, 그때는 필요성도 실용성도 잘 체감하지 못했었다. 하지만 서버 개발자의 길에 입문하면서 코틀린에 관심이 생겼고, 왜 서버 개발 언어의 흐름이 자바에서 코틀린으로 넘어갔는지 알고싶었다. 그래서 다양한 IT서비스 회사들의 코틀린 관련 세미나를 찾아서 들었다 (사실 아래에 있는 링크 전부를 들은 건 아니다.. ㅎㅎ) - 카카오: https://tv.kakao.com/channel/3150758/cliplink/391419295 - 당근마켓(녹화본 업로드 예정): https://www.yout..
-
로그 시간을 보장하는 Red-Black Tree의 Search, Insert 연산Data Structure 2021. 12. 16. 02:14
https://2jinishappy.tistory.com/318 Color를 이용해서 Self-Balancing을 구현하는 Red-Black Tree 자료구조와 알고리즘을 공부한 사람이라면 레드블랙트리에 대해 한번쯤은 들어봤을 것 이다 포인터가 중간보스라면 레드블랙트리가 최종보스라고 생각하는데 .. 3부작 정도로 나눠서 레드블랙 2jinishappy.tistory.com 이전 글에서 소개한 것 처럼 레드블랙트리는 BST의 탐색/삽입/삭제 시간을 로그 시간에 수행하기 위해 등장했다 삽입 및 삭제 연산은 red-black property를 해칠 수 있기 때문에 balance를 유지하기 위한 Rotation 연산이 필요하다 이 글에서는 탐색/삽입 연산에 대해 설명한다 Search Node in RBT 레드블랙..
-
동시성 제어 메커니즘 - 낙관적 락, 비관적 락Computer Science/Database 2021. 12. 7. 19:18
Concurrency Control Mechanisms Database Lock ❓ RDBMS에서 트랜잭션 시스템에 적용되는 동시성 제어 방법. 특정 트랜잭션이 레코드에 접근 중 일때 다른 트랜잭션이 해당 데이터에 접근하지 못 하게 막는 것을 의미한다. 일반적으로 Lock의 단위가 너무 작으면 독립성이 보장받지 못 하고, 너무 크면 트랜잭션이 직렬화 되어 수행 시간이 느려진다. Optimistic Concurrency Control 여러 트랜잭션이 서로 간섭하지 않고 자주 완료될 수 있다고 가정하는 동시성 제어 방식. 일반적으로 Block Contention(동일한 인덱스나 데이터 블록에 동시에 액세스하기 위해 경쟁하는 프로세스 또는 인스턴스)이 낮은 환경에서 사용한다. 원하는 규칙이 커밋 시 위반되면 ..
-
AVL Tree : Balancing 작업을 통해 최대 Height를 조절하는 BSTData Structure 2021. 11. 30. 00:10
AVL Tree AVL 트리는 아래의 성질을 만족하는 BST(Binary Search Tree)의 한 종류다 Tree 상의 모든 Node p에 대해 p의 left subtree와 right subtree의 height 차이가 최대 1을 넘을 수 없다 이러한 성질을 AVL 트리의 Balanced Property라고 하며, 일반적인 BST와 비교했을 때, Search 연산은 완전히 동일하지만 Insert/Delete 연산을 할 때 이 성질이 깨지지 않도록 추가적인 연산을 수행한다 위의 그림에서 12라는 노드를 추가했을 때, 해당 노드를 자손으로 가지는 노드들(4, 8, 15, 10, 12)의 height가 변한다 그리고 노드 15를 봤을 때 왼쪽 서브트리의 height가 2, 오른쪽 서브트리의 height가..