Java의 제네릭이란 무엇인가
"제네릭은 클래스나 메소드에서 사용할 내부 데이터 타입을 컴파일 시에 미리 지정하는 방법입니다.
List와 같이 다양한 종류의 데이터를 관리하는 경우 데이터의 타입을 특정 타입으로 고정할 수 있다.
Generic의 장점
1) 제네릭을 사용하면 잘못된 타입이 들어올 수 있는 것을 컴파일 단계에서 방지할 수 있다.
2) 특정 타입으로 제한함으로써 타입 안정성을 제공한다.
3) 타입 체크와 형변환을 생략할 수 있으므로 코드가 간결해 진다.
4)클래스 외부에서 타입을 지정해주기 때문에 따로 타입을 체크하고 변환해줄 필요가 없다. 즉, 관리하기가 편하다.
비슷한 기능을 지원하는 경우 코드의 재사용성이 높아진다."

"다수의 트랜잭션이 하나의 자원을 접근할 때 발생할 수 있는 문제들은 무엇이 있을까요?
" "다수의 트랜잭션이 하나의 자원을 접근할 때 생길 수 있는 문제는 다음과 같습니다.
1) Dirty Read
Uncommitted 결과를 다른 트랜젝션에서 확인하는 현상을 말한다.
2) Non-Repeatable Read
하나의 트랜잭션에서 같은 데이터를 두 번 조회하였을 때 같은 결과를 가져와야 한다는 REPEATABLE READ정합성에 어긋나게 다른 데이터를 읽어오는 문제이다.
3) Phantom Read
한 트랜잭션 안에서 일정 범위의 레코드를 두 번 이상 읽었을 때, 첫번째 쿼리에서 없던 데이터가 두번째 쿼리에서 나타나는 현상이다."
스터디 현황