
1. AOP:: 관점 지향 프로그래밍(Aspect-Oriented Programming):: 애플리케이션에서 부가적인 기능을 모듈화하여 재사용핵심은 1)과 2)의 분리를 통한 수평적 프로그래밍 형성 1) 주요 핵심 기능 : 비즈니스 로직2) 부가적인 기능 : Logging, Security, Transaction, Exception Handling, Caching 등의 인프라 로직1.1 용어 정리구분내용1) Target- 부가 기능 적용 대상 (클래스, 메서드 등)- Advice가 적용될 실제 객체나 메서드2) Advice- 부가 기능을 실제로 구현하는 부분 - 부가 기능 구현체 (@Before, @AfterReturning, @AfterThrowing, @After, @Around)3) Join Poi..

0. 선언적 트랜잭션 @Transactional 사용 시 옵션@Transactional( propagation = Propagation.REQUIRED, // 1.6. Propagation 전파 isolation = Isolation.REPEATABLE_READ, // 1.7. Isolation Level 격리성 레벨 timeout = -1, // Timeout 트랜잭션 타임아웃 readOnly = false, // 1.8. ReadOnly R 만 허용, CUD 방지 rollbackFor = Exception.class, noRollbackFor = RuntimeExceptio..
0. 배경:: Spring Transaction 은 트랜잭션 추상화(PlatformTransactionManager)로 트랜잭션의 시작과 끝을 알려줌:: TransactionDefinition 은 트랜잭션 세부 옵션public interface PlatformTransactionManager extends TransactionManager { TransactionStatus getTransaction(@Nullable TransactionDefinition definition) throws TransactionException; // ...}Spring Transaction = 트랜잭션 동기화 + 트랜잭션 추상화트랜잭션 동기화 :: TransactionSynchronizationManage..

0. 배경자바 EE 어플리케이션 개발 시, 로컬 트랜잭션과 글로벌 트랜잭션의 필요성에 의해 각각의 스펙과 구현들이 등장트랜젝션의 방식내용1. 로컬 트랜잭션 (Local Transaction)- 단일 데이터소스(단일 데이터베이스) + 단일 Connection 에 종속 :: 하나의 DB 연결만을 다루며, 트랜잭션이 하나의 DB 내에서만 수행- JDBC 기반에서 흔히 사용2. 글로벌 트랜잭션 (Global Transaction) - 다수 데이터소스(다수 데이터베이스) + 단일 Connection 종속성 제거 :: 여러 DB에서의 트랜젝션- 2PC (2-Phase Commit Protocol) 또는 XA 프로토콜로 커밋 / 롤백- JTA와 JNDI 기술을 통해 트랜잭션과 데이터소스를 연결하고 관리-..

0. JDBC Template:: JdbcTemplate 클래스로 제공,:: SQL 쿼리 실행, 트랜잭션 관리, 예외 처리 등을 자동화JDBC Template의 주요 기능내용 1. 간편 사용 / 간결한 코드- SQL 쿼리 실행을 간소화 - 내부적으로 Connection, Statement, ResultSet을 자동으로 관리 - SELECT, INSERT, UPDATE, DELETE 쿼리를 처리하는 메서드를 제공- 리소스를 명시적으로 close()할 필요 X / 예외 시, 자동으로 close() -> 코드가 간결2. 예외 처리- JDBC의 SQLExceptions을 Spring의 DataAccessException으로 변환 - 일관된 예외처리 O- DataAccessException은 SQLExceptio..
1. JDBC (Java Database Connectivity)- Java에서 DB와 연결하여 SQL 쿼리를 실행하고 결과를 처리할 수 있도록 도와주는 API- 구성 요소 :: (1) JDBC API / (2) JDBC Driver1.1 JDBC API:: Java 애플리케이션과 DB 간의 상호작용을 위한 인터페이스 집합을 제공하는 API구성 요소내용1.Connection (접속)- DB 연결 관리- Connection 객체는 DB에 대한 세션을 의미, 쿼리실행, 트랜젝션 관리 등 처리1) createStatement() :: 쿼리를 실행할 Statement 객체를 생성 2) prepareStatement(String sql) :: 매개변수를 사용하는 쿼리를 실행하는 객체를 생성 3) commit() ..

0. DB 연결 방법방법Spring Boot DB특징1로컬로컬- 로컬에서 개발 및 디버깅 시 사용하는 방법 (가장 초보적인) 2로컬Docker- 로컬에서 개발 및 디버깅 시 사용하는 방법 3Docker로컬- 도커화된 앱과 로컬 DB 간의 테스트 4DockerDocker- 배포와 비슷한 환경 테스트 혹은 실제 배포 시 사용하는 방법 0.1 로컬 내 Docker를 통해 데이터베이스 서버 구동 - PostgresQL- gitbash에서 해당 명령어를 수행함docker run --name postgresql-container \ // 이름이 postgresql-container인 컨테이너 시작-e POSTGRES_USER=사용자이름 \ // -e : 환경변수 설정, POSTGRES_USER=사용자이름-e POS..

0. 인덱스(Index):: DB에 대한 검색 쿼리 효율 향상을 위해 생성하는 별개의 테이블(자료구조):: 대체로 B-트리(Balanced Tree) 또는 해시(Hash) 자료 구조 기반항목내용장점1. 빠른 검색2. 정렬 및 집합 연산 최적화(order By / group By / join)단점1. 쓰기 성능 저하2. 추가 자료구조에 의한 저장 공간 증가3. 불필요한 인덱스 생성 시의 DB성능 저하1. 인덱스의 효율적인 검색 원리1.1. Sorting을 위한 자료구조(= 순서가 있는 자료구조)종류내용- Array순차적 접근에 유리하나 삽입과 삭제에서 비효율적- Linked List삽입과 삭제가 효율적이나 순차 탐색이 필요해 검색 속도 느림- Tree 등등효율적인 검색, 삽입, 삭제가 가능하여 대용량 데이..

1. Pessimistic Lock (비관적 잠금)항목내용특징- Pessimistic Concurrency Control(PCC)- 트랜잭션이 데이터를 수정할 때, 다른 트랜잭션의 접근을 미리 차단하여 충돌을 방지- DB Built-In Lock :: DB내 내장된 락 메커니즘을 사용 -> 일관성 보장사용 환경쓰기 비중이 높고, 데이터 일관성 보장이 중요한 시스템동시성 제어 방식선락체크(Preemptive Locking) 방식장점- 데이터 일관성 보장 - 높은 신뢰성 제공단점- 동시성 감소, 데드락(Deadlock) 발생 위험- 원인 :: (1)ORM 내 ID 생성을 위한 접속 시, 스레드 부족 + (2)같은 데이터 2개를 순서 / 역순 업데이트잠금 단위- Table Lock :: 동시성 감소, 트랜잭션..
0. Concurrency Control:: 여러 트랜잭션이 동시에 실행될 때, DB의 일관성과 무결성을 유지하는 기술:: 여러 작업이 동시에 DB에 접근 및 수정을 할 때, 트랜잭션 간에 출돌이나 데이터의 불일치를 방지:: Lock을 걸어 각 작업에 대한 격리 수준을 결정(Pessimistic / Optimistic Lock)0.1 목표항목 내용1. 상호 배제 (Mutual Exclusion)여러 트랜잭션이 동시에 실행 시, 같은 데이터에 대한 접근을 제한(배제)2. 회복 가능성 (Recoverability)트랜잭션이 실패 / 중단 시, 데이터베이스가 일관성 있는 상태로 회복 / RollBack3. 일관성 (Consistency)트랜잭션들이 실행되는 동안 데이터가 일관된 상태를 보장4. 격리성 (Iso..
- Total
- Today
- Yesterday
- asac7#asac
- useLayoutEffect
- useReducer
- ASAC
- asac7기
- useEffect
- useCallback
- acas#acas7기
- useRef
- react
- git
- memo
- useContext
- useMemo
- asac#asac7기
- useState
- asac7
- ssh
- Nginx
- acac
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |