분류 전체보기109 [Spring] AOP(Aspect-Oriented Programming)란? '초보 웹 개발자를 위한 스프링 5 프로그래밍 입문' 챕터 7을 읽고 정리한 내용입니다. 🌊 AOP란? Aspect-Oriented Programming, 관점 지향 프로그래밍소스 코드의 비즈니스 로직과 부가적인 공통 관심사를 분리하여, 관점을 기준으로 각각 모듈화하여 코드의 모듈성과 가독성을 향상시키는 프로그래밍 패러다임.* ’관점’이라는 말이 너무 어색해서 알아봤더니, ‘초보 웹 개발자를 위한 스프링 5 프로그래밍 입문 158p’에서 ‘관점’이라는 말 대신 ‘기능’ 내지 ‘관심’이라고 표현하는 것이 더 알맞다고 한다.* 모듈화: 어떤 공통된 로직이나 기능을 하나의 단위로 묶는 것 즉, 여러 객체에 공통으로 적용할 수 있는 기능을 분리해서 Aspect로 모듈화하여 재사용성을 높여주는 기법이다. 핵심.. 2024. 12. 14. [DB] Concurrency Control Techniques (Locking, MVCC..) 동시성 제어는 여러 프로세스나 스레드가 동시에 공유 자원에 접근할 때 발생할 수 있는 문제를 방지하기 위해 필요하다. 동시성을 허용하면 데이터 불일치, 경쟁 조건(Race Condition), 데드락(Deadlock), 정합성(Consistency) 및 무결성(Integrity) 문제가 발생할 수 있다. 반면, 동시성을 과도하게 제어하면 성능 저하 문제가 발생할 수 있어 적절한 균형이 필요하다. 동시성 제어의 방법에는 크게 아래와 같은 방법들이 존재한다. Concurrency Control Protocols- Optimistic Concurrency Control- Locking- MVCC (Muli-Version Concurrency Control)- Timestamps 1. Optimistic Co.. 2024. 12. 14. [DB] Transactions & Serializability Transaction 이란? : DB 처리의 논리적 단위를 이루는 실행 프로그램이다. 특징은 다음과 같다. - 하나의 Transaction에는 하나 이상의 DB Access 작업이 포함된다. (삽입, 삭제, 수정, 검색) - 하나의 응용 Program에는 둘 이상의 Transaction이 포함 가능하다. - read-only transaction / read-write transaction이 존재한다. Transaction이 만족해야 하는 ACID는 다음과 같다. - Atomicity (원자성): 트랜잭션은 모두 수행되거나 전혀 수행되지 않아야 한다. 즉, "All or Nothing" 원칙을 따른다.즉, 트랜잭션을 구성하는 여러 작업 중 일부만 적용되는 일은 없어야 하며, 전부 실행되거나 아예 실행.. 2024. 12. 14. [DB] Index Structures for files (Primary, Clustering, Secondary) Index란? : 파일에 저장된 레코드에 빠르게 접근하기 위해 추가적으로 생성되는 보조적인 접근 구조이다. 특정 검색 조건에 따라 레코드를 효율적으로 검색할 수 있도록 설계되었다. Indexing Field(or Indexing Attribute)를 기반으로 record에 효율적으로 access할 수 있는 방법을 제공하는데, 이는 검색 시간을 대폭 단축 시킨다. 즉, 전체 파일을 순차적으로 검색해야 하는 비효율성을 줄여준다. 더불어, Secondary Access Path(보조 접근 경로)를 제공하여, 디스크에 저장된 레코드의 물리적 위치와 상관없이 데이터를 빠르게 검색할 수 있게 한다. Index는 level에 따라 두 종류로 나뉘는데, 이는 다음과 같다. 1. Single-level ordere.. 2024. 12. 14. 이전 1 2 3 4 5 6 7 8 ··· 28 다음