일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 스프링
- 소프트웨어의 품격
- 생성자주입
- 그래프큐엘
- IOC
- fetch join
- 기능적 요구사항
- spring formatter
- jpa lazy
- Atomicity
- 수정자주입
- ioc컨테이너
- open-session-in-view
- 스프링 포매터
- 스프링di
- 토비의 스프링
- 정적팩토리메서드
- kotlin 리팩터링
- 도커 이미지 빌드
- method refetence
- 비기능적 요구사항
- java predicate
- 스프링 시큐리티 설정
- jpa no session
- 스프링시큐리티
- 자바 필터
- 동적파라미터
- kotlin ::
- Spring
- 스프링부트 도커
- Today
- Total
목록전체 글 (109)
공부기록

@DataJpaTestapplication-test.ymlspring: datasource: url: jdbc:mysql://localhost:3306/codechobo_test?serverTimezone=Asia/Seoul&useSSL=false username: codechobo_user password: password driver-class-name: com.mysql.cj.jdbc.Driver jpa: open-in-view: false hibernate: ddl-auto: create database-platform: org.hibernate.dialect.MySQL57Dialect상황 :@DataJpaTest 테스트를 실행했을 때Caused ..

개요 본 포스팅의 DB환경은 MySQL 5.7.30 입니다. 테스트를 원하신다면 AUTO_COMMIT을 false로 하고 진행해주세요. 트랜잭션 격리 수준이란 ? 동시에 여러 트랜잭션이 처리될 때, 특정 트랜잭션이 다른 트랜잭션에서 변경하거나 조회하는 데이터를 볼 수 있도록 허용할 지 말지를 결정한다. 트랜잭션 격리 수준의 종류 READ UNCOMMITTED, READ COMMITTED, REPEATABLE READ, SERIALIZABLE 등으로 나뉜다. 왜 트랜잭션 격리 수준을 알아야 하는 가? 동시성 문제가 있다. 데이터 부정합 문제점이 있는데, 이는 트랜잭션 격리 수준에 따라 달라진다. 아래 그림은 트랜잭션 격리 수준에 따른 데이터 부정합 표이다. 각각의 데이터 부정합의 대한 설명은 아래에서 다시..
가장 큰 차이는 트랜잭션의 유무가 아닌가 싶다. 직접 테스트해보고 확인한 결과를 기록한다. create table tab_myisam ( fdpk int not null, primary key(fdpk) )engine=MyISAM; create table tab_innodb ( fdpk int not null, primary key(fdpk) )engine=InnoDB; insert into tab_myisam (fdpk) values (3); insert into tab_innodb (fdpk) values (3); tab_myisam과 tab_innodb를 생성했다. 스토리지엔진은 이름에 따라 각각 MyISAM과 InnoDB로 설정해줬다. 값을 넣어준다. 두 테이블 모두 fdpk 라는 컬럼에 3 이라..

Open-In-View 또는 Open-Session-In-View 또는 Open-EntityManager-In-View 란? 관례상 OSIV 라고 한다. true일 경우 영속성 컨텍스트가 트랜잭션 범위를 넘어선 레이어까지 살아있다. Api라면 클라이언트에게 응답될 때까지, View라면 View가 렌더링될 때까지 영속성컨텍스트가 살아있다. false일 경우 트랜잭션을 종료할 때 영속성 컨텍스트 또한 닫힌다. 기본값은 true 이다 코드 간단히 코드로 false와 true일 때 어떤 차이가 있는지 살펴보자. Member.class /** * @author : Eunmo Hong * @since : 2020/06/30 */ @ToString(of = "name") @NoArgsConstructor(access..
개요 HashTable 은 Key - Value 로 이루어진 자료구조다. HashTable.get(Object key)를 쓰면 해당 key와 맞는 value를 반환한다. 이름에서 알 수 있듯이 HashCode를 이용한다. Key를 HashFunction를 통해 정수 Hash를 만들어내고, 그 Hash를 이용해 데이터에 접근하기 때문에 속도가 매우 빠르다.( O(1) ) 정수 Hash를 통해 데이터에 접근해서 속도가 빠르다는데.. 그렇다면 동일한 Hash를 반환해서 동일 인덱스에 데이터가 중복될 수 있다. 이를 Hash Colliision(해시 충돌)이라 부른다. 최악의 경우 데이터 검색에 O(n) 이 걸린다. 때문에 Hash를 만들어내는 HashFunction에 쓰이는 Hash Algorithm을 잘 만..