일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- G1GC
- testdrivendevelopment
- hateoas
- docker
- 완벽이해
- KPT
- TDD
- M:N
- 부모객체
- java
- pair programming
- Java 22
- Spring/JAVA 서적
- 마이크로서비스디자인패턴
- ATDD
- Runtime Area
- 미니미프로젝트
- 스프링으로하는마이크로서비스구축
- Self Descript Message
- 도커
- Be
- RESAPI
- 클린코드
- 자식객체
- 트랜잭션 격리 수준
- Execution Engine
- Solid
- GC
- ComponentScan
- DB
- Today
- Total
목록DB (4)
Programming Summary
1:1과 1:N과 M:N1:11대 1 관계란 어느 엔티티 쪽에서 상대 엔티티와 반드시 단 하나의 관계를 가지는 것을 말한다.예시) Student : Seat왜 1대 1인가?한 명의 학생이 한 개의 자리만 소유할 수 있고, 한 자리는 여러 명의 학생이 소유할 수 없기 때문.1:N1:N 관계는 한 쪽 엔티티가 관계를 맺은 엔티티 쪽의 여러 객체를 가질 수 있는 것을 의미한다.예시) Student : ProjectTeam왜 1대 N인가?팀도 별도의 테이블로 분리해야 하고, 하나의 팀에는 여러명의 Student가 속하고, 하나의 Student는 단 하나의 팀에만 속하기 때문.N:MN:M 관계는 관계를 가진 양쪽 엔티티 모두에서 1:N 관계를 가지는 것을 말한다.예시) Student : StudyGroup왜 M대..
트랜잭션의 격리 수준(Transaction Isolation Level) 트랜잭션의 격리 수준이란 여러 트랜잭션이 동시에 처리될 때, 특정 트랜잭션이 다른 트랜잭션에서 변경하거나 조회하는 데이터를 볼 수 있게 허용할지 여부를 결정하는 것이다. 격리 수준이 높은 순서대로 SERIALIZABLE, REPEATABLE READ, READ COMMITTED, READ UNCOMMITED가 존재한다. SERIALIZABLE SERIALIZABLE은 가장 엄격한 격리 수준으로, 이름 그대로 여러 트랜잭션이 동일한 레코드에 동시 접근할 수 없으므로, 어떠한 데이터 부정합 문제도 발생하지 않는다. 하지만 모든 트랜잭션이 순차적으로 처리되어야 하므로 동시 처리 성능이 매우 떨어진다. REPEATABLE READ 일반적인..
동시성 제어(Concurrency Control)이란? 동시성 제어란 DBMS가 다수의 사용자 사이에서 동시에 작용하는 다중 트랜잭션의 상호간섭 작용에서 DB를 보호하는 것을 의미한다. 일반적으로 DBMS는 동시성 제어를 할 수 있도록 Lock 기능과 Set Transaction 명령어를 이용해 트랜잭션 격리성 수준을 조정할 수 있는 기능도 제공한다. 이렇게 동시성을 제어하는 방법은 낙관적 동시성 제어와 비관적 동시성 제어가 있다. 낙관적 동시성 제어(Optimistic Concurrency Control) 사용자들이 같은 데이터를 동시에 수정하지 않을 것이라고 가정 데이터를 읽는 시점에 Lock을 걸지 않는 대신 수정 시점에 값이 변경되었는지를 반드시 검사 비관적 동시성 제어(Pessimistic Co..
인덱스란 추가적인 쓰기 작업과 저장 공간을 활용하여 데이터베이스 테이블의 검색 속도를 향상 시키기 위한 자료구조이다. 데이터베이스의 index는 책의 색인과도 같은 역할을 한다. 인덱스를 활용하면, 데이터를 조회하는 SELECT 외에도 UPDATE나 DELETE의 성능이 함께 향상된다. 그 이유는 해당 연산을 수행하려면 해당 대상을 조회해야만 작업을 할 수 있기 때문이다. 인덱스(index)의 장점과 단점 장점 테이블을 조회하는 속도와 그에 따른 성능을 향상시킬 수 있음. 전반적인 시스템의 부하를 줄일 수 있음. 단점 인덱스를 관리하기 위해 DB의 약 10%에 해당하는 저장공간이 필요 인덱스를 관리하기 위한 추가 작업이 필요 잘못 사용할 경우 오히려 성능이 저하될 수 있음. 이러한 인덱스를 구현하는데 다..