인터페이스 제약 중 내가 만들지 않은 인터페이스에는 디포르 메서드 추가 못함…? 무슨 말?
setValue가 선택적인 이유?
시뮬레이트한 다중 상속
추상 클래스만의 이점
계층적인 이점
템플릿 메서드 패턴을 적용하고 싶을 때만 사용?
item21
디폴트 메서드로 람다의 활용이 커짐
디폴트 메서드는 주 기능이 아닌 부가 기능의 역할에 가깝다.
2020-07-13
vimwiki
vimwiki에서 wiki.syntax를 설정하지 않으면 default로 vimwiki syntax가 설정된다.
markdown syntax로 highlighting 되지 않는다.
enter를 통해 link를 생성할 때 vimwiki link 형식으로 생성된다. (형식 : '\[\[words\]\]')
:vimwikiRenameLink(deprecated)나 :vimwikiRenameFile을 이용할 때 markdown link 형식만 변환된다.
vimwiki에서 wiki.syntax를 markdown 으로 설정하면 markdown syntax가 설정된다.
markdown syntax로 highlighting 된다.
enter를 통해 link를 생성할 때 markdown link 형식으로 생성된다. (형식 : '[words](link)')
:vimwikiRenameLink(deprecated)나 :vimwikiRenameFile을 이용할 때 markdown link 형식만 변환된다.
해결 : wiki.syntax를 default로 설정하고, autocmd를 통해 filetype이 vimwiki일 때 syntax를 markdown으로 변경하면
vimwiki link 형식으로 생성되고, :vimwikiRenameFile 기능을 이용할 수 있으며 markdown syntax로 highlighting 된다.
2020-07-11
item6
RomanNumerals.isRomanNumeral static method를 사용하여 ROMAN이란 객체를 재사용한다.
지연 초기화 (item87)
JPA lazy loading (Entity 정보를 query를 쓰기 전까지는 loading하지 않는다)
synchrosized
어댑터 패턴
방어적 복사 (item50)
boolean(String) 생성자가 뭐지 찾아보자
String s = "bikini"; (heap 영역의 constant pool, String만)
비용 문제로 그렇게 하는것으로 보임
item 11
익명 클래스
hashcode 요령
'31'
equals로 또 한 번 체크한다.
item 12
디버깅 쉽다
포맷의 문서화
item 13
item 15
하지만 getter, setter는 그대로 return 타입과 method 이름에 변수 이름이 다 드러난다.
getter, setter는 안티패턴
외부에서 진짜 필요한 메소드만 제공을 하는게 더 낫다.
정보 은닉 : 시스템 관리 비용
array를
chapter3
상용구 코드를 안 써도 된다.
double 콜론 (java9)
data.sql,
JPA
@Entity : JPA 애노테이션
@NoArgsConstructor private으로
@GeneratedValue
Order는 sql에서 예약어
CrudRepository
spring 데이터는 method 이름을 분석한다.
너무 길면 @Query()
2020-07-10
virt-what
guest OS가 linux인 상황에서 현재 VM으로 OS가 돌아가고 있는지 확인하는 명령어
ubuntu에서는 따로 설치해야 한다.
centos에는 설치가 되어 있는 듯 하다
VM이 아니면 아무것도 출력되지 않는다.
Hyper-V의 경우 "hyperv" 라고 출력된다.
WSL1도 "hyperv" 라고 출력된다.
WSL2는 어떻게 나오는지 모르겠다
docker에서도 어떻게 나오련지 모르겠다.
hyper-v
VM이 실행되고 있었으면 Host가 Reboot되어도 자동 재실행된다.
vhd를 resize 할 수 있으나, guest os에서도 disk 및 partition을 resize해주어야 한다. 관련 자료
eclipse 단축키
ctrl + shift + R : 파일 이름으로 찾기
ctrl + shift + T : class이름으로 찾기
ctrl + shift + L : text 찾기 (plugin 필요)
spring batch
관련 DB에 동일한 parameter로 수행된 이력이 저장되어 있으면 다시 수행해도 수행되지 않는다. (DB 데이터를 지우면 가능하다.)