CS
CS
- [Spring] 스프링 트랜잭션 관리의 기본 개념과 원리 스프링 트랜잭션 관리의 도입 배경, 트랜잭션 추상화, 리소스 동기화, 선언적 트랜잭션 관리와 전파 속성 스프링 프레임워크는 개발자가 복잡한 트랜잭션 처리를 더 쉽게 다룰 수 있도록 강력한 트랜잭션 관리 기능을 제공한다. 이 글에서는 스프링의 트랜잭션 관리가 어떤 원리로 동작하는지, 그리고 기본적으로 어떤 개념을 바탕으로 구성되어 있는지 정리한다. 트랜잭션의 ACID 특성과 함께 스프링이 이를 어떻게 추상화하고 처리하는지 이해하는 것이 목적이다. #백엔드
- [데이터베이스][MySQL] 트랜잭션 격리 수준과 MySQL 동작 방식 MySQL을 기준으로 트랜잭션 격리 수준, 트랜잭션 이상 현상, MVCC, Next-Key Lock의 동작 방식을 정리 데이터베이스를 활용한 애플리케이션을 개발할 때, 동시에 여러 사용자가 같은 데이터를 읽고 쓰는 상황은 흔하게 발생한다. 이러한 동시성 환경에서 데이터의 정합성을 유지하려면 트랜잭션의 격리 수준을 적절히 설정하는 것이 중요하다. 트랜잭션 격리 수준은 하나의 트랜잭션이 다른 트랜잭션의 작업에 어느 정도까지 영향을 받지 않도록 보호할지를 정의하는 기준이다. #데이터베이스
- [데이터베이스][MySQL] 외래키와 잠금 대기 MySQL InnoDB에서 외래키 제약이 부모 테이블과 자식 테이블의 잠금 대기를 유발하는 방식을 정리한다. MySQL InnoDB에서 외래키는 부모 테이블과 자식 테이블 사이의 참조 무결성을 보장한다. 외래키 제약이 걸려 있으면 자식 테이블에 데이터를 추가하거나 수정할 때, 해당 값이 부모 테이블에 실제로 존재하는지 확인해야 한다. 반대로 부모 테이블의 레코드를 삭제하거나 외래키가 참조하는 값을 변경할 때는, 그 값을 참조하는 자식 레코드가 있는지 확인해야 한다. #데이터베이스
- 동기/비동기, 블로킹/논블로킹 동기와 비동기, 블로킹과 논블로킹의 정의와 차이점, 조합 동기/비동기와 블로킹/논블로킹은 작업 처리 방식을 설명할 때 자주 함께 등장하는 개념이다. 두 개념은 비슷해 보이지만 구분 기준이 다르다. 동기/비동기: 작업이 순차적으로 진행되는지, 결과를 언제 어떻게 받는지에 대한 구분이다. 블로킹/논블로킹: 작업을 호출한 이후 제어권이 호출자에게 존재하는지에 대한 구분이다. #운영체제
CS
CS
- 2. 컴퓨터 시스템과 운영체제 컴퓨터 시스템과 운영체제 정리 응용 소프트웨어 레이어, 운영체제 레이어, 컴퓨터 하드웨어 레이어 → 운영체제는 상위 계층과 하드웨어 간의 인터페이스 역할 수행, 상위 계층에게 하드웨어를 추상화 #운영체제
- [Spring] 스프링 트랜잭션 관리의 기본 개념과 원리 스프링 트랜잭션 관리의 도입 배경, 트랜잭션 추상화, 리소스 동기화, 선언적 트랜잭션 관리와 전파 속성 스프링 프레임워크는 개발자가 복잡한 트랜잭션 처리를 더 쉽게 다룰 수 있도록 강력한 트랜잭션 관리 기능을 제공한다. 이 글에서는 스프링의 트랜잭션 관리가 어떤 원리로 동작하는지, 그리고 기본적으로 어떤 개념을 바탕으로 구성되어 있는지 정리한다. 트랜잭션의 ACID 특성과 함께 스프링이 이를 어떻게 추상화하고 처리하는지 이해하는 것이 목적이다. #백엔드
- [데이터베이스][MySQL] 트랜잭션 격리 수준과 MySQL 동작 방식 MySQL을 기준으로 트랜잭션 격리 수준, 트랜잭션 이상 현상, MVCC, Next-Key Lock의 동작 방식을 정리 데이터베이스를 활용한 애플리케이션을 개발할 때, 동시에 여러 사용자가 같은 데이터를 읽고 쓰는 상황은 흔하게 발생한다. 이러한 동시성 환경에서 데이터의 정합성을 유지하려면 트랜잭션의 격리 수준을 적절히 설정하는 것이 중요하다. 트랜잭션 격리 수준은 하나의 트랜잭션이 다른 트랜잭션의 작업에 어느 정도까지 영향을 받지 않도록 보호할지를 정의하는 기준이다. #데이터베이스
- [데이터베이스][MySQL] 외래키와 잠금 대기 MySQL InnoDB에서 외래키 제약이 부모 테이블과 자식 테이블의 잠금 대기를 유발하는 방식을 정리한다. MySQL InnoDB에서 외래키는 부모 테이블과 자식 테이블 사이의 참조 무결성을 보장한다. 외래키 제약이 걸려 있으면 자식 테이블에 데이터를 추가하거나 수정할 때, 해당 값이 부모 테이블에 실제로 존재하는지 확인해야 한다. 반대로 부모 테이블의 레코드를 삭제하거나 외래키가 참조하는 값을 변경할 때는, 그 값을 참조하는 자식 레코드가 있는지 확인해야 한다. #데이터베이스
- 동기/비동기, 블로킹/논블로킹 동기와 비동기, 블로킹과 논블로킹의 정의와 차이점, 조합 동기/비동기와 블로킹/논블로킹은 작업 처리 방식을 설명할 때 자주 함께 등장하는 개념이다. 두 개념은 비슷해 보이지만 구분 기준이 다르다. 동기/비동기: 작업이 순차적으로 진행되는지, 결과를 언제 어떻게 받는지에 대한 구분이다. 블로킹/논블로킹: 작업을 호출한 이후 제어권이 호출자에게 존재하는지에 대한 구분이다. #운영체제
- 웹 서버, WAS, 서블릿, 톰캣, 스프링 MVC 웹 요청이 컨트롤러에 도달하기까지 WAS, 서블릿, 톰캣, Spring MVC의 관계 웹 애플리케이션에서 브라우저의 요청이 컨트롤러까지 도달하기 위해서는 여러 계층을 거친다. 정적 리소스를 처리하는 웹 서버, 동적 요청을 실행하는 WAS, 자바 HTTP 요청 처리 컴포넌트인 서블릿, 그리고 스프링 MVC의 핵심 서블릿인 DispatcherServlet이 이 흐름 안에서 각각 역할을 가진다. #백엔드