일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
- 자바의 정석 기초편 ch4
- 자바 고급2편 - io
- 자바로 계산기 만들기
- 자바로 키오스크 만들기
- 자바의 정석 기초편 ch11
- 자바의 정석 기초편 ch1
- 자바의 정석 기초편 ch7
- 스프링 입문(무료)
- 자바의 정석 기초편 ch9
- 2024 정보처리기사 수제비 실기
- 데이터 접근 기술
- 자바 기초
- @Aspect
- 자바의 정석 기초편 ch12
- 자바의 정석 기초편 ch5
- 스프링 트랜잭션
- 스프링 고급 - 스프링 aop
- 람다
- 자바 중급2편 - 컬렉션 프레임워크
- 스프링 mvc2 - 타임리프
- 자바의 정석 기초편 ch14
- 자바 고급2편 - 네트워크 프로그램
- 자바의 정석 기초편 ch6
- 자바의 정석 기초편 ch13
- 스프링 mvc2 - 로그인 처리
- 2024 정보처리기사 시나공 필기
- 스프링 mvc2 - 검증
- 자바의 정석 기초편 ch2
- 자바 중급1편 - 날짜와 시간
- 스프링 mvc1 - 스프링 mvc
- Today
- Total
목록스터디 (11)
개발공부기록

리두로그(Redo Log), 언두로그(Undo Log)Redo Log와 Undo Log는 트랜잭션의 ACID 속성을 보장하기 위해 사용되는 기술이다 ACID 속성은 데이터베이스 시스템의 신뢰성과 무결성을 위한 기본 요소로 트래잭션이 안정적으로 처리되도록 보장하며 동시에 액세스하는 복잡한 다중 사용자 환경에서도 데이터베이스를 일관되고 안정적이게 예측 가능한 상태로 유지하게 해준다 ACID 속성을 유지하면 데이터 무결성을 보장하고 오류를 효과적으로 처리하여 데이터 베이스 시스템을 신뢰성을 보장할 수 있게 해준다. ACID 속성Atomicity(원자성)트랜잭션에 포함된 데이터의 변경은 전부 OK이거나 모두 NG 라는 'all or nothing'을 말한다트랜잭션은 더 이상 분리할 수 없는 최소 단위 이므로 수..

MVCC (Multi-Version Concurrency Control)MVCC 기술 탄생 배경데이터 베이스 Lock을 활용한 동시성 제어 방식은 같은 데이터에 대해서 읽기는 허용하지만 그 외의 경우에는 접근을 모두 허용하지 않는다그렇기 때문에 다른 트랜잭션은 블락이 되어 기다리게 되기 때문에 동시에 처리할 수 있는 처리량이 줄어들어 퍼포먼스에 안좋은 영향이 있을 수 있다이런 문제를 해결하기 위해 MVCC가 개발이 되었는데 같은 데이터에 대해서 서로다른 트랜잭션이 Write할 때만 Block되지만 그 외의 경우에는 동시에 처리가 가능한 기술이다즉, 그만큼 동시에 처리할 수 있는 처리량도 증가할 수 있게 된다 MVCC 동작 방식 설명MVCC는 Write - Lock이 없이도 구현할 수 있지만 현시대의 대부..
데이터 베이스 락?락(Lock)은 여러 트랜잭션이 동시에 하나의 데이터에 접근할 때 데이터의 일관성을 보장하기 위한 장치이다. 자바의 멀티태스킹환경에서 동시성을 제어하여 데이터의 무결성을 보장하는 것과 동일한 행위를 데이터베이스에서도 똑같이 데이터베이스에 여러 요청이 왔을 때 공유 자원을 변경할 때 무결성을 보장하는 것이다 데이터베이스에 접근하여 처리하는 작업의 최소 단위를 트랜잭션이라고 한다.하나의 트랜잭션이 특정 데이터에 대해 작업(읽기/수정)을 수행하는 동안, 데이터의 무결성을 보장하기 위해 다른 트랜잭션이 그 데이터에 접근하거나 수정하지 못하게 하는 메커니즘이다. 대부분의 RDBMS는 트랜잭션 격리 수준과 쿼리 유형에 따라 자동으로 락을 걸어주는데 수동으로 제어할 수 있다. ** 참고개발 관점에서..

Bean Scope정의말 그대로 @Autowired나 @Configuration과 @Bean으로 등록한 스프링 빈이 존재할 수 있는 범위(생명 주기)를 뜻한다존재할 수 있는 범위라고하면 '등록된 빈이 등록되고 사라지는 시점의 범위가 어디인가'라고 보면 될 것 같다. 스프링 빈은 객체를 생성하고 의존관계 주입이 다 끝난 다음에 필요한 데이터를 사용할 수 있는 준비가 완료 되기 때문에 초기화 작업을 진행 해야한다. 스프링은 의존관계 주입이 완료 되면 스프링 빈에게 콜백 메서드를 통해 초기화 시점을 알려주는 다양한 기능을 제공하며 스프링 컨테이너가 종료되기 직전에 소멸 콜백(싱글톤)을 주어 안전하게 종료 작업을 진행할 수 있다 스프링 빈의 기본 생명 주기스프링 컨테이너 생성 -> 스프링 빈 생성(생성자 주입)..

IoC(Inversion of Control; 제어의 역전)좋은 객체지향 설계를 위한 방법 중 하나로 프로그램의 제어 흐름을 개발자가 아닌 프레임워크나 컨테이너가 관리하는 것을 의미한다.개발자가 프로그램의 흐름을 직접 관리하는 것이 아니라 외부 소스(프레임워크나 컨테이너)로부터 제어 흐름을 받는 방식으로 작동하며 대표적으로 스프링(Spring), Nest.js, Django 등과 같은 프레임워크가 있다. 프레임워크와 라이브러리의 차이를 설명할 때 핵심적인 내용이 바로 IoC이다 라이브러리는 개발자가 직접 원하는 시점에 해당 기술을 호출하여 사용하기 때문에 개발자가 제어권을 가지고 애플리케이션을 개발한다하지만 프레임워크는 개발자가 프레임워크라는 구조 안에서 요구하는 대로 프로그램을 구성하기 때문에 제..

자바의 예외자바는 프로그램 실행 중에 발생할 수 있는 예상치 못한 상황을 처리하기 위한 메커니즘을 제공하는게 이것이 예외(예외 객체)이다.예외처리는 프로그램의 안정성과 신뢰성을 높이는데 매우 중요한 역할을 한다. 예외가 발생하면 잡아서 처리하거나, 만약 처리할 수 없다면 밖으로 던질 수 밖에 없다. 잡아서 처리하고자 할 때는 try - catch - finally 구분을 사용하거나, Java 7에서 도입된 자동으로 외부 자원을 해제해주는 try - with - resources를 이용해서 처리할 수 있고 throws로 상위 계층으로 던질 수도 있다 계속 처리되지 않고 예외를 상위 계층으로 올라가면 결국 프로그램을 실행하는 main 메서드까지 예외가 올라가게 되고 여기서도 처리하지 못한다면 프로그램이 종료..

Shallow CopyShallow Copy(얕은 복사)객체를 복사할 때 객체가 가진 필드의 값을 그대로 복사하는 방법을 뜻한다기본 자료형의 경우 값 자체가 복사되며, 객체(참조형)의 경우 참조 주소(메모리 주소값)만 복사된다는 뜻이다특징원본 객체와 복사본 객체는 서로 다른 객체지만 객체 내부에서 참조하고 객체는 동일한 객체를 가리키게 된다.실제 데이터가 아닌 참조값만 복사하기 때문에 복사 과정이 매우 빠르다기존 객체의 데이터와 공유되기 때문에 추가적인 메모리 사용량이 매우 적어 메모리 사용이 효율적이다단점복사된 객체와 원본 객체가 내부 데이터를 공유한다는 특성을 모르고 접근할 경우 원본 데이터를 변경하면 복사된 객체도 영향을 받으므로 사이드 이펙트(side-effect) 문제가 발생할 수 있다(Muta..

Call By Value설명메서드 호출 시 인자로 전달되는 값 자체를 복사하여 넘긴다는 뜻이다즉, 원본 값은 메서드 내부로 복사되어 별도의 독립적인 변수로 사용된다기본형(primitive type)기본형 데이터(int, double, boolean 등)은 값 자체가 복사되어 전달된다.메서드 내에서 변경된 값은 원본 변수에 영향을 주지 않는다참조형(reference type)객체의 참조값(주소)가 복사되어 전달된다.메서드 내에서 참조값 자체를 바꿔 재할당 하면 원본 참조에는 영향을 주지 않는다.하지만 객체의 속성(상태)를 변경하면 같은 객체를 참조하고 있으므로 원본 객체에도 변경이 반영된다Call By Reference설명메서드 호출 시 인자의 참조(메모리 주소)를 직접 전달하는 방식이다인자의 참조 자체가..