Problem Details for HTTP APIs Notes Problem Details란 에러나 예외 상황에 대한 표준화된 응답 형식을 제공하는 개념이다. 특히 HTTP API에서 오류 정보를 구조적으로 전달할 때 많이 쓰인다. 1. 정의 출처: RFC 7807 — Problem Details for HTTP APIs 목적: 오류를 단순히 상태 코드로만 전달하는 대신, JSON이나 XML 형식... 2025/08/08 Archive, Web
@SpringBootApplication은 실제로 무엇을 하는가 Notes 진입점 애너테이션으로 끝나지 않는다 @SpringBootApplication public class MyApplication { public static void main(String[] args) { SpringApplication.run(MyApplication.class, args); } } @SpringBoot... 2025/08/07 Notes, Spring
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