일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Firebase
- NotBlank
- springboot
- java
- FCM
- multi module
- @MockBean
- Item04
- 트랜잭션
- 플라이웨이트
- Proxy Patter
- @Valid
- Connection Pool
- @ControllerAdvice
- deleteById
- restTemplate
- 데이터베이스
- 이펙티브 자바
- Service Locator 패턴
- Spring Boot
- Service Locator
- Effetive Java
- Effective Java
- 디자인 패턴
- Web
- NotEmpty
- db
- JPA
- @SpyBean
- SQL 삽입 공격
- Today
- Total
목록db (5)
NoTimeForDawdling
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/SJqrq/btq7YolUTL0/98SJJYYvTqWc9WzHjNxfM0/img.png)
서버는 동시에 사용할 수 있는 사람의 수라는 개념이 존재합니다. 만약에 동시 접속자 수를 초과하게 될 경우 어떻게 될까요? 동시 접속자 수를 초과하게 된다면 에러(예외)가 발생할 겁니다. 예외가 발생하면 그 접속자는 더 이상 처리를 하지 못하므로, 사이트 이용자는 다시 접속을 해야 하는 불편함이 있습니다. 이를 해결하기 위해 탄생한 것이 Connection Pool입니다. Connection Pool이란? Connection Pool이란 동시 접속자가 가질 수 있는 Connection을 하나로 모아놓고 관리한다는 개념입니다. 누군가 접속하면 자신이 관리하는 Pool에 남아있는 Connection을 제공합니다. 하지만 남아있는 Connection이 없는 경우라면 해당 클라이언트는 대기 상태로 전환시킵니다...
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bmpdWB/btqZfig7mOu/NA8NhW4Y1uZep6CdsZxnM1/img.png)
Index의 필요성 DB Index의 필요성을 위해 Full Table Scan을 알아보겠습니다. Full Table Scan(순차 접근) Full Table Scan이란 데이터베이스의 한 릴레이션에서 데이터를 찾거나 재배열하기 위해 데이터가 저장된 목록 중 모든 데이터 요소를 순차적으로 조사하여 원하는 것을 찾아내는 것을 말합니다. 이런 순차 접근에 의한 검색은 Tuple의 수가 많아질수록 검색 시간이 매우 오래 걸립니다. DB는 Index가 설정되어 있지 않으면 Full Table Scan 방식으로 데이터를 찾음으로써 속도가 매우 느려지게 됩니다. 이 문제를 해결하기 위해 DB에서 Index 기능을 제공합니다. Index란? Index는 RDBMS에서 검색도를 높이기 위해 사용하는 기술입니다. 특정 ..
오늘은 Primary Key와 Unique Key의 차이에 대해서 알아보겠습니다. Primary Key Primary Key는 해당 테이블의 식별자 역할을 하는 제약 조건으로 테이블에 하나만 설정할 수 있습니다. 다른 레코드들과 서로 다르다는 사실을 확인할 수 있도록 도와주는 역할을 합니다. 즉, 유일성을 보장해 줍니다. 유일성을 보장해주기 위해서는 Unique 해야 하며 NULL이면 안됩니다.(NOT NULL) Unique Key Unique Key는 테이블 내 항상 유일해야 하는 값을 의미합니다. 즉, 중복을 허용하지 않는 컬럼입니다. 유일해야 하는 값은 레코드당 하나일 필요가 없습니다. 즉, 한 테이블에 여러개 설정이 가능합니다. Unique Key는 NULL값이 허용됩니다. 회원 테이블 예제 회원..
트랜잭션 격리 수준이란? 트랜잭션 격리 수준이란 동시에 여러 트랜잭션이 처리될 때, 특정 트랜잭션이 다른 트랜잭션에서 변경하거나 조회하는 데이터를 볼 수 있도록 허용할지 말지 결하는 것입니다. 즉, 특정 트랜잭션이 다른 트랜잭션에 select, insert, update, delete를 허용할지 말지 결정하는 것입니다. 트랜잭션 격리 수준은 크게 4가지로 나뉩니다. READ UNCOMMITTED READ COMMITTED REPEATABLE READ SERIALIZABLE 4개의 격리 수준에서 순서대로 뒤로 갈수록 각 트랜잭션 간의 데이터 격리(고립) 정도가 높아지며, 동시성은 떨어집니다.(성능 저하) 일반적인 온라인 서비스에서는 READ COMMITTED와 REPEATABLE READ 둘 중 하나를 많..
데이터베이스를 공부하다 보면 트랜잭션이라는 말을 많이 들어보셨을 겁니다. 지금부터 이 트랜잭션이란 무엇인지 알아보겠습니다. 트랜잭션이란? 트랜잭션이란 데이터베이스의 상태를 변환시키는 논리적 기능을 수행하기 위한 작업의 단위 또는 한꺼번에 모두 수행되어야 할 일련의 연산을 의미합니다. 하나의 연산이라도 잘못되면 지금까지 했던 연산들을 모두 취소해야 합니다. 트랜잭션 필요성 예를 들어, 친구에게 돈을 송금하는 상황을 가정해 보겠습니다. 제 통장에서 10,000원을 차감하고, 친구 통장에 10,000원을 입금하고 있는 사이에 전산 오류가 발생했습니다. 이 오류로 인해 제 통장에서 10,000원이 줄었지만 친구 통장에는 10,000이 들어오지 않는 상황이 발생했습니다. 이러한 경우가 생기지 않도록 중간에 오류가..