일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- 동적파라미터
- 스프링부트 도커
- 자바 필터
- 스프링 시큐리티 설정
- 스프링시큐리티
- 스프링 포매터
- jpa no session
- 도커 이미지 빌드
- fetch join
- IOC
- 비기능적 요구사항
- jpa lazy
- kotlin ::
- Spring
- spring formatter
- Atomicity
- 소프트웨어의 품격
- ioc컨테이너
- 수정자주입
- 정적팩토리메서드
- method refetence
- 스프링di
- open-session-in-view
- 생성자주입
- 그래프큐엘
- 토비의 스프링
- 기능적 요구사항
- kotlin 리팩터링
- java predicate
- 스프링
- Today
- Total
목록분류 전체보기 (109)
공부기록
가장 큰 차이는 트랜잭션의 유무가 아닌가 싶다. 직접 테스트해보고 확인한 결과를 기록한다. 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을 잘 만..
개요 핵심 로직을 건들지 않고, 부가적인 작업을 수행할 때 주로 사용되는 패턴이다. 예를 들어 Event가 생성될 때, 만들어진 시간을 콘솔에 기록하고 싶어졌다! 여기서 핵심 로직은 Event 를 생성하는 로직, 부가적인 로직은 만들어진 시간을 콘솔에 기록하는 코드다. 사용방법은 이렇다. 핵심로직을 수행하는 클래스와 부가적인 로직을 수행하는 클래스(프록시) 모두 같은 인터페이스를 참조하게끔한다. 클라이언트 코드에선 해당 인터페이스 타입을 사용하되, 실제 타입은 프록시 객체로 만든다. 프록시객체는 부가적인 로직을 수행한 뒤, 자신이 참조하고있는 핵심로직을 수행하는 객체를 사용한다. 구현 도메인 객체 public class Event { private String name; ...constructor..ge..