Skip to content

Commit

Permalink
add post '[k8s] 쿠버네티스로 어플리케이션 배포하기'
Browse files Browse the repository at this point in the history
  • Loading branch information
dev-jonghoonpark committed Nov 13, 2024
2 parents 2589067 + 343dad9 commit 7c8f4cd
Show file tree
Hide file tree
Showing 8 changed files with 320 additions and 20 deletions.
7 changes: 6 additions & 1 deletion _posts/2023-12-25-2023년-회고.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ tags: [
커리어
커피챗,
커뮤니티,
대전 개발자 스터디,
]
date: 2023-12-25 16:30:00 +0900
---
Expand Down Expand Up @@ -172,7 +173,7 @@ K-DEVCON Daejeon 에서 진행한 12월 행사에서 운영자로서의 회고

### 공부 할 것

K-DEVCON 대전 오프라인 스터디에서는
K-DEVCON 대전 개발자 스터디에서는

- 데이터 중심 애플리케이션 설계
- 시스템 디자인 2
Expand Down Expand Up @@ -232,3 +233,7 @@ K-DEVCON Daejeon과 함께 GDG Daejeon 에서도 많은 활동을 해나갈 수
올해를 마무리 하면서 개인 명함을 만들어 봤다.

![개인%20명함%20디자인](/assets/images/2023-12-25-2023년-회고/개인%20명함%20디자인.jpeg)

## 기타

대전 개발자 스터디 에 관심이 있다면 [구글 폼](http://k-devcon.web.app/daejeon-membership) 을 통해 신청할 수 있다.
20 changes: 9 additions & 11 deletions _posts/2024-08-24-mysql-architecture.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,20 +16,22 @@ tags:
flow,
thread,
thread pool,
metadata
metadata,
]
date: 2024-08-24 23:59:59 +0900
toc: true
---

[K-DEVCON](https://k-devcon.com) 대전 오프라인 스터디에서 Real Mysql 책으로 스터디를 진행해보기로 했다.
[K-DEVCON](https://k-devcon.com) 대전 개발자 스터디에서 Real Mysql 책으로 스터디를 진행해보기로 했다.

발표하면서 준비한 내용을 블로그로도 옮겨보려고 한다.

발표를 위해 ppt도 만들어야하고, 블로그에 올리려면 글도 남겨야 하는게 아쉽긴 하지만, 아직 좋은 방법을 찾지는 못했기 때문에 번거로움을 감수해야할 것 같다.

이 글의 내용은 Mysql 8.0 에서 InnoDB 를 기준으로 정리되었다. 이 글은 정리글이기에 생략이 있으며, 책에서는 이전 버전이나 다른 스토리지 엔진에 대해서도 다루기도 하고 더 자세한 내용들을 다루고 있다. 책의 구성이 이미 안다는것을 전제하에 진행된 부분들도 있어 해당 부분에 대해서 보충설명을 넣기도 하였다.

참고로 대전 개발자 스터디 에 관심이 있다면 [구글 폼](http://k-devcon.web.app/daejeon-membership) 을 통해 신청할 수 있다.

---

# 아키텍처 - Real MySQL 스터디 1회차
Expand Down Expand Up @@ -254,14 +256,14 @@ MySQL 은 **스레드 기반**으로 작동한다. 스레드는 크게 Foregroun

### 체인지 버퍼

레코드 INSERT 되거나 UPDATE 될 때 변경해야 할 인덱스 페이지가 버퍼 풀에 있으면 바로 업데이트를 수행하지만 그렇지 않고 디스크로부터 읽어와서 업데이트해야 한다면 이를 즉시 실행하지 않고 임시 공간(= 체인지 버퍼)에 저장해 두고 바로 사용자에게 결과를 반환하는 형태로 성능을 향상시킨다.
\* 유니크 인덱스는 체인지 버퍼를 사용할 수 없다. 반드시 중복 여부를 체크해야 하기 때문
레코드 INSERT 되거나 UPDATE 될 때 변경해야 할 인덱스 페이지가 버퍼 풀에 있으면 바로 업데이트를 수행하지만 그렇지 않고 디스크로부터 읽어와서 업데이트해야 한다면 이를 즉시 실행하지 않고 임시 공간(= 체인지 버퍼)에 저장해 두고 바로 사용자에게 결과를 반환하는 형태로 성능을 향상시킨다. \* 유니크 인덱스는 체인지 버퍼를 사용할 수 없다. 반드시 중복 여부를 체크해야 하기 때문

### 어댑티브 해시 인덱스

InnoDB 스토리지 엔진에서 사용자가 자주 요청하는 데이터에 대해 자동으로 생성하는 인덱스

다음의 경우에 유용하다.

- 디스크의 데이터가 InnoDB 버퍼 풀 크기와 비슷한 경우 (디스크 읽기가 많지 않은 경우)
- 동등 조건 검색(동등 비교와 IN 연산자)이 많은 경우
- 쿼리가 데이터 중에서 일부 데이터에만 집중되는 경우
Expand All @@ -275,6 +277,7 @@ SHOW ENGINE INNODB STATUS 명령어를 통해서 사용 빈도를 확인할 수
스토리지 엔진은 버퍼 풀이라는 거대한 메모리 공간을 페이지로 나누어 관리한다.

버퍼 풀은 크게 아래의 3개의 자료 구조로 관리한다.

- LRU 리스트 (Least Recently Used)
- 플러시 리스트 (Flush)
- 프리 리스트 (Free) : 비어있는 공간을 관리
Expand All @@ -293,7 +296,7 @@ InnoDB의 LRU 리스트는 2개의 LRU 리스트가 결합된 형태이다. 데

이 구조의 장점은 무엇일까? 자주 사용되지 않는 데이터가 LRU list에 추가되었을 때, 더 빨리 방출될 수 있을 것이다.

### 버퍼 풀과 리두 로그
### 버퍼 풀과 리두 로그

버퍼 풀은 데이터 캐시와 쓰기 버퍼링 역할을 한다.
버퍼 풀의 메모리 용량만 늘릴 경우에는 캐시 기능만 향상된다. 쓰기 버퍼링 기능까지 향상시키려면 리두 로그의 크기도 적절히 설정해줘야 한다.
Expand Down Expand Up @@ -398,8 +401,6 @@ transaction isolation levels described by the SQL:1992 standard

![transaction-isolation-level-compare-2](/assets/images/2024-08-24-mysql-architecture/transaction-isolation-level-compare-2.png)



### ACID

- 원자성 (atomicity) : 부분적으로 실행되다가 중단되지 않는 것을 보장한다는 것을 의미
Expand All @@ -417,7 +418,7 @@ transaction isolation levels described by the SQL:1992 standard

## 자동 데드락 감지

내부적으로 잠금 대기 목록을 관리한다. 데드락 감지 스레드가 주기적으로 잠금 대기 목록을 검사해 교착 상태에 빠진 트랜잭션을 찾아 그 중 하나를 강제 종료한다.
내부적으로 잠금 대기 목록을 관리한다. 데드락 감지 스레드가 주기적으로 잠금 대기 목록을 검사해 교착 상태에 빠진 트랜잭션을 찾아 그 중 하나를 강제 종료한다.

innodb_table_locks 시스템 변수를 활성화 하면 스토리지 엔진 내부의 레코드 잠금뿐만 아니라 테이블 레벨의 잠금까지 감지할 수 있다.

Expand Down Expand Up @@ -460,6 +461,3 @@ InnoDB에는 손실이나 장애로부터 데이터를 보호하기 위한 여
- 실행된 쿼리중 오래걸리는 쿼리를 기록
- long_query_time (default : 10s)
- pt-query-digest 스크립트를 사용하면 쉽게 분석가능



4 changes: 3 additions & 1 deletion _posts/2024-09-07-mysql-lock-and-transaction.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,14 +19,16 @@ date: 2024-09-07 23:59:59 +0900
toc: true
---

[K-DEVCON](https://k-devcon.com) 대전 오프라인 스터디에서 Real Mysql 책으로 스터디를 진행해보기로 했다.
[K-DEVCON](https://k-devcon.com) 대전 개발자 스터디에서 Real Mysql 책으로 스터디를 진행해보기로 했다.

발표하면서 준비한 내용을 블로그로도 옮겨보려고 한다.

발표를 위해 ppt도 만들어야하고, 블로그에 올리려면 글도 남겨야 하는게 아쉽긴 하지만, 아직 좋은 방법을 찾지는 못했기 때문에 번거로움을 감수해야할 것 같다.

이 글의 내용은 Mysql 8.0 에서 InnoDB 를 기준으로 정리되었다. 이 글은 정리글이기에 생략이 있으며, 책에서는 이전 버전이나 다른 스토리지 엔진에 대해서도 다루기도 하고 더 자세한 내용들을 다루고 있다. 책의 구성이 이미 안다는것을 전제하에 진행된 부분들도 있어 해당 부분에 대해서 보충설명을 넣기도 하였다.

참고로 대전 개발자 스터디 에 관심이 있다면 [구글 폼](http://k-devcon.web.app/daejeon-membership) 을 통해 신청할 수 있다.

---

# 아키텍처 - Real MySQL 스터디 2회차
Expand Down
4 changes: 3 additions & 1 deletion _posts/2024-09-28-mysql-compression-and-encryption.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,12 +19,14 @@ date: 2024-09-28 23:59:59 +0900
toc: true
---

[K-DEVCON](https://k-devcon.com) 대전 오프라인 스터디에서 Real Mysql 책으로 스터디를 진행해보기로 했다.
[K-DEVCON](https://k-devcon.com) 대전 개발자 스터디에서 Real Mysql 책으로 스터디를 진행해보기로 했다.

발표하면서 준비한 내용을 블로그로도 옮겨보려고 한다.

이 글의 내용은 Mysql 8.0 에서 InnoDB 를 기준으로 정리되었다. 이 글은 정리글이기에 생략이 있으며, 책에서는 이전 버전이나 다른 스토리지 엔진에 대해서도 다루기도 하고 더 자세한 내용들을 다루고 있다. 책의 구성이 이미 안다는것을 전제하에 진행된 부분들도 있어 해당 부분에 대해서 보충설명을 넣기도 하였다.

참고로 대전 개발자 스터디 에 관심이 있다면 [구글 폼](http://k-devcon.web.app/daejeon-membership) 을 통해 신청할 수 있다.

---

# 압축
Expand Down
2 changes: 2 additions & 0 deletions _posts/2024-11-03-mysql-full-scan-query-pattern.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,8 @@ toc: true

이 글의 내용은 Mysql 8.0 에서 InnoDB 를 기준으로 정리되었다. 이 글은 정리글이기에 생략이 있으며, 책에서는 이전 버전이나 다른 스토리지 엔진에 대해서도 다루기도 하고 더 자세한 내용들을 다루고 있다. 책의 구성이 이미 안다는것을 전제하에 진행된 부분들도 있어 해당 부분에 대해서 보충설명을 넣기도 하였다.

참고로 대전 개발자 스터디 에 관심이 있다면 [구글 폼](http://k-devcon.web.app/daejeon-membership) 을 통해 신청할 수 있다.

---

# MySQL 풀스캔 쿼리 패턴 및 튜닝
Expand Down
10 changes: 4 additions & 6 deletions _posts/2024-11-06-java-guava-ratelimiter.md
Original file line number Diff line number Diff line change
Expand Up @@ -46,13 +46,11 @@ class documentation : [https://guava.dev/releases/snapshot-jre/api/docs/com/goog
아래는 초당 2회 api 를 호출하도록 한 테스트 코드이다. (예제이기 떄문에 그냥 `print` 메소드를 사용하였다.)

```java
public class RateLimiterTest {
RateLimiter rateLimiter = RateLimiter.create(2);
RateLimiter rateLimiter = RateLimiter.create(2);

for (int i = 0; i < Integer.MAX_VALUE; i++) {
rateLimiter.acquire();
System.out.println(i);
}
for (int i = 0; i < Integer.MAX_VALUE; i++) {
rateLimiter.acquire();
System.out.println(i);
}
```

Expand Down
Loading

0 comments on commit 7c8f4cd

Please sign in to comment.