본문 바로가기

전체 글67

JVM의 동작 원리와 구조 구체적으로 이해하기 [목차] 1. 가상머신(VM)의 이해 2. JVM의 이해 3. JVM의 동작 원리와 구조(Class Loader, Runtime Data Area, Execution Engine) 위 목차 순서대로 JVM의 전반적인 동작 원리와 구조를 파악해보고자 한다. 1. 가상머신(VM)의 이해 JVM(Java Virtual Machine)이 무엇인지 이해하기 위해서는 당연히 가상머신(VM: Virtual Machine)이 무엇이고 어떻게 동작하는지 이해하고 있어야 한다. 가상머신은 물리적인 컴퓨팅 환경을 소프트웨어로 구현한 것인데, 가상머신은 시스템 가상 머신, 프로세스 가상 머신으로 나눌 수 있다. 시스템 가상 머신 하나의 컴퓨터로 여러 OS를 사용하는 환경을 고립되게 구축할 수 있는데, 이는 OS와 애플리케이션.. 2024. 2. 12.
[MySQL 8.0] InnoDB : In-Memory(1) - 버퍼 풀 MySQL 8.0의 InnoDB Storage Engine에 대한 내용을 정리한 글입니다. MySQL 공식문서를 기반으로 작성하였으며, 문서에 제공된 내용 외 추가적인 내용들을 정리 했습니다. InnoDB In-Memory 영역 1: 버퍼 풀(Buffer Pool) - 현재글 InnoDB In-Memory 영역 2: 어댑티브 해시 인덱스(Adaptive Hash Index) InnoDB In-Memory 영역 3: 체인지 버퍼(Change Buffer) InnoDB In-Memory 영역 4: 로그 버퍼(Log Buffer) InnoDB 아키텍처 간략소개 InnoDB는 In-Memory 영역과 On-Disk 영역으로 나뉜다. In-Memory 영역은 주로 자주 액세스 되는 데이터를 보관하기 위한 .. 2024. 2. 4.
ALB 수준에서의 TLS 이야기 + ELB와 ALB 이야기 개인 프로젝트 배포환경을 고민하다가, ALB를 적용한 이야기다. 추가로 본 글에서는 L4과 L7 기본 특징, AWS의 ALB(L7 수준)와 NLB(L4 수준), 각 계층별 로드 밸런서의 Trade-off에 대해 정리해 볼 것이다. 세 챕터로 나눴지만 그 안에서 필요한 이야기를 하느라 추가된 내용이 많다. (TLS handshake, TLS offload 등) 1. L4, L7 사실 본 글에서 다룰 내용은 아니다. 각 계층별 헤더 구조를 이해하고 그 차이에서 오는 계층별 역할을 확실히 이해해야 하기 때문이다.(이것도 나중에 블로그에 다 정리해서 남겨보고 싶은 마음이 있다.) 그래서, 아주 간단하게 L4와 L7의 특징에 대해 살펴볼 것이다. (여기서, L7는 당연히 HTTP 프로토콜을 사용한다.) 1.1 L.. 2023. 9. 23.
MySQL, DeadLock..? (주의점: S-Lock이 전파된다.) 프로그래머스 데브코스 4기, 2차 프로젝트인 Bmart를 진행 하면서, 팀원의 이슈해결을 도운 내용이 있어, 신나게 가지고 왔다. 아래 글을 작성할 시점에 알게 된 내용을 팀원분이 맞닥뜨려서 해결을 도울 수 있었다. https://lsj31404.tistory.com/84 데이터 동시성 제어의 목적과 유형(Lock과 트랜잭션 격리수준) 동시성 제어 데이터베이스는 공유를 목적으로 하기 때문에 가능한 많은 트랜잭션을 동시에 수행시켜야 한다. 하지만, 동시에 수행함으로써 같은 데이터를 공유한다면 데이터의 일관성이 훼손 lsj31404.tistory.com 이 글의 주제는 아래와 같다. 낙관적 락을 적용한 엔티티에 대해 동시성 테스트 도중 DeadLock이 발생한 것을 확인할 수 있었다. 왜 이런일이 발생했을까.. 2023. 9. 19.