Spring Boot DevTools를 언제 써야 하는가 Notes DevTools는 무엇을 해결하는가 DevTools는 개발 중 애플리케이션 재시작과 캐시 설정을 더 편하게 만들어주는 도구다. 핵심 목적은 “코드 수정 후 피드백 루프를 줄이는 것”이다. 주요 기능 1. Automatic Restart 클래스패스에 있는 파일이 바뀌면 애플리케이션을 다시 시작해 준다. 수동 재기동 횟수를 줄여준다. 2. Liv... 2025/08/06 Notes, Spring
Gap Lock Notes Gap Lock이란 Gap Lock은 MySQL InnoDB에서 기존 레코드 자체가 아니라 인덱스 레코드 사이의 빈 구간을 잠그는 락이다. 예를 들어 인덱스 값이 10, 20, 30이라면 다음과 같은 구간을 생각할 수 있다. (-∞, 10) (10, 20) (20, 30) (30, +∞) Gap Lock은 이 구간에 새로운 값... 2025/07/29 Notes, Database
MVCC를 어떻게 이해해야 하는가 Notes MVCC란 MVCC는 Multi-Version Concurrency Control의 약자다. 말 그대로 하나의 데이터에 대해 여러 버전을 관리해서, 읽기와 쓰기가 서로 덜 충돌하게 만드는 방식이다. 여기서 핵심은 “동시에 접근하는 여러 트랜잭션에게 같은 row를 서로 다른 모습으로 보이게 할 수 있다”는 점이다. 많이들 MVCC를 “락 없이 읽는 ... 2025/07/29 Notes, Database
Evolution of Java: Version-by-Version Breakdown Notes Java는 버전이 업그레이드되면서 성능 개선, 문법 추가, 새로운 API 도입, 보안 강화 등 다양한 변화가 있었다. Java 7 (2011) 코드 가독성과 예외 처리 개선 Try-with-resources: 자원 자동 해제 (AutoCloseable) 다이아몬드 연산자 (<>): 타입 추론 가능 멀티캐치(Multi-cat... 2025/07/23 Archive, Java
Inside ArrayList: Capacity Expansion Mechanism Notes ArrayList 배열확장 ArrayList는 내부적으로 배열(Object[] elementData)을 사용하여 요소를 저장한다. 이 배열은 고정 크기이기 때문에, ArrayList는 동적으로 크기를 늘리는 방식으로 작동한다. 이 과정에서 배열의 용량(capacity)이 가득 차면 기존 배열보다 더 큰 새로운 배열을 생성하고, 기존 요소들을 복사하여... 2025/07/22 Archive, Java
Multithreading Notes 멀티스레딩이란 멀티스레딩은 하나의 프로세스 안에서 여러 스레드가 동시에 실행 흐름을 가지는 구조다. 같은 프로세스 안에 있기 때문에 코드, 힙, 전역 데이터 같은 자원을 공유하면서도, 각 스레드는 자기만의 스택과 실행 문맥을 가진다. 즉 멀티스레딩은 “작업을 나눈다”는 의미이기도 하고, “같은 주소 공간 안에서 여러 실행 흐름을 운영한다”는 의미이... 2025/07/22 Notes, OS
Multiplexing Notes 멀티플렉싱이란 멀티플렉싱은 하나의 자원이나 채널을 여러 작업이 번갈아 또는 함께 사용할 수 있게 만드는 방식이다. 통신에서는 하나의 회선을 여러 신호가 공유하는 의미로 쓰이고, 운영체제에서는 하나의 스레드나 프로세스가 여러 I/O 대상을 효율적으로 감시하는 의미로 자주 등장한다. 핵심은 제한된 자원을 더 잘 나눠 쓰는 것이다. 운영체제에서 왜 중... 2025/07/22 Notes, OS
Process and Thread Notes 프로세스와 스레드는 무엇이 다른가 둘 다 실행 단위이지만 책임이 다르다. Process: 실행 중인 프로그램 인스턴스이자 자원 소유 단위 Thread: 프로세스 안에서 실제 코드를 실행하는 흐름 단위 운영체제는 프로세스에 주소 공간과 파일 디스크립터 같은 자원을 할당하고, 스레드는 그 안에서 CPU를 사용해 실행된다. 메모리 관점 차... 2025/07/22 Notes, OS
Understanding HTTP Versions: From 0.9 to 3.0 Notes HTTP(HyperText Transfer Protocol) HTTP(HyperText Transfer Protocol)는 웹 상에서 클라이언트와 서버 간에 데이터를 주고받기 위한 프로토콜이다. HTTP는 여러 버전을 거쳐 발전해왔으며, 각 버전은 성능 향상과 보안, 효율성 개선 등을 목적으로 다양한 변경 사항을 포함한다. 오늘날 쓰이고 있는 HT... 2025/07/22 Archive, Web
2025-07-18-TIL TIL Today I Learned 어제에 이어서 이틀째 이력서를 다시 작성중이다. 정말 어려운 것은 내가 쌓은 경력에서 매력적인 요소를 억지로 뽑아내려고 쥐어짜내는 것이다. 이전에 한 지인이 이력서를 피드백 해줄 때, 말해준 내용이 정말 와닿았다. “우리는 조졸두님이 아니라서 수치를 화려하게 써놓아도 눈에 띄기 어렵다.” 따라서 우리는 실무에서 어떤 문제... 2025/07/18 TIL, 2025-TIL