본문 바로가기

전체 글177

데이터베이스 트랜잭션에서 ACID 데이터베이스 트랜잭션에서 ACID는 네 가지 중요한 속성을 나타내며, 이 속성들은 데이터베이스의 무결성과 안정성을 보장하는 데 핵심적인 역할을 합니다. 각각의 속성에 대한 설명과 함께 예시를 통해 설명하겠습니다.1. Atomicity (원자성)정의: 트랜잭션 내의 모든 작업이 전부 실행되거나, 전혀 실행되지 않은 것처럼 보장되어야 한다는 속성입니다. 트랜잭션이 수행되는 도중에 일부 작업만 실행되고 나머지가 실패하면, 트랜잭션 전체가 취소(롤백)되어야 합니다.예시: 은행에서 고객이 A 계좌에서 B 계좌로 100달러를 이체하는 경우를 생각해봅시다. 이 트랜잭션은 두 가지 작업으로 구성됩니다:A 계좌에서 100달러 인출.B 계좌에 100달러 입금.만약 첫 번째 작업(A 계좌에서 100달러 인출)은 성공했지만 .. 2024. 8. 14.
CRUD 작업(커밋하는 순간 어떤일이 일어나나) CRUD 작업(Create, Read, Update, Delete)은 일반적으로 데이터베이스 시스템에서 트랜잭션 내에서 수행됩니다. 이러한 작업들은 먼저 메모리 상에서 이루어지며, 트랜잭션이 커밋될 때 비로소 데이터베이스의 영구 저장 장치(디스크)에 반영됩니다. 이제 커밋하는 순간에 무슨 일이 일어나는지 자세히 설명하겠습니다.CRUD 작업의 메모리 상에서의 수행Create (생성):새로운 데이터가 테이블에 삽입됩니다. 이 데이터는 먼저 메모리의 버퍼나 캐시에서 처리됩니다.Read (읽기):데이터베이스에서 데이터를 조회하는 작업입니다. 조회된 데이터는 메모리에서 캐시되거나, 필요한 경우 디스크에서 읽어옵니다.Update (수정):기존 데이터를 수정하는 작업입니다. 이 변경 사항도 처음에는 메모리의 버퍼나 .. 2024. 8. 14.
#29 The Reflection API:Classes [튜토리얼] Uses of Reflection리플렉션은 JVM(Java Virtual Machine)에서 실행되는 애플리케이션의 런타임 동작을 검사하거나 수정하는 기능이 필요한 프로그램에서 일반적으로 사용됩니다. 이는 비교적 고급 기능이므로 언어의 기본 사항을 잘 이해하고 있는 개발자만 사용해야 합니다. 이러한 주의 사항을 염두에 두고 리플렉션은 강력한 기술이며 응용 프로그램이 그렇지 않으면 불가능한 작업을 수행할 수 있도록 할 수 있습니다. Extensibility Features[확장성 기능]애플리케이션은 외부에서 정의된 사용자 클래스의 인스턴스를 완전한 이름을 사용하여 생성함으로써 확장성 객체를 활용할 수 있습니다. Class Browsers and Visual Development Environm.. 2024. 8. 13.
2024.08.13(화) { IoC 컨테이너 동작 과정, enum데이터베이스, CGLIB 서브클래싱 = 프록시, 추상클래스->익명클래스O, 람다X } public List getAll() { return this.jdbcTemplate.query("select * from users order by id", this.userMapper);}해당 쿼리문은 Users 테이블에서 모든 행(row)과 모든 열(column)을 선택(select)한 후, id 열을 기준으로 오름차순(ASC, 기본값)으로 정렬하는 SQL 쿼리       enum은 데이터베이스에 존재하지않음 그래서 따로 int 값으로 변환해서 데이터베이스에 넣어야함 enum 타입은 Java에서 제공하는 열거형 타입으로, 일반적으로 특정한 상수 집합을 표현할 때 사용됩니다. 하지만 데이터베이스에는 enum 타입이 존재하지 않으므로, enum 값을 데이터베이스에 저장하려면 일반적으로 int나 S.. 2024. 8. 13.
#28 Lesson: Introduction to Collections 4 [이진 탐색 트리] [Hash, Map, Set 참조]The Map InterfaceMap은 키를 값에 매핑하는 객체입니다. Map은 중복된 키를 가질 수 없습니다. 각 키는 최대 하나의 값에만 매핑될 수 있습니다. 이는 수학적 함수 추상화를 모델링합니다. Map 인터페이스에는 기본 작업(예: put, get, remove, containsKey, containsValue, size, isEmpty), 대량 작업(예: putAll, clear), 컬렉션 뷰(예: keySet, entrySet, values)를 위한 메서드가 포함되어 있습니다.※ 수학적 함수 추상화란 일대일 대응(one-to-one mapping) 함수를 의미.Java 플랫폼에는 세 가지 범용 Map 구현이 있습니다: HashMap, Tr.. 2024. 8. 13.
FileReader와 BufferedReader Java에서 FileReader와 BufferedReader는 파일로부터 텍스트 데이터를 읽어들이는 데 사용됩니다. FileReader는 파일을 읽기 위한 기본적인 클래스이고, BufferedReader는 파일을 효율적으로 읽기 위해 FileReader에 버퍼링 기능을 추가한 클래스입니다. 이 두 클래스는 파일 입출력 작업에서 자주 사용됩니다. 1. FileReader                 FileReader는 파일로부터 문자 데이터를 읽기 위한 기본 클래스입니다. 파일을 문자 단위로 읽으며, 바이트 스트림을 문자 스트림으로 변환하는 역할을 합니다.예시import java.io.FileReader;import java.io.IOException;public class FileReaderExampl.. 2024. 8. 12.