일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Kubernetes
- MySQL
- IntelliJ
- useEffect
- NCP
- intellijIDEA
- react
- nginx
- wildfly
- Windows
- nodejs
- maven
- database
- mybatis
- gradle
- docker
- JavaScript
- Git
- dbeaver
- LOG4J
- kubectl
- gson
- BPMN
- VSCode
- JPA
- Java
- log4j2
- Spring
- springboot
- tibero
- Today
- Total
목록분류 전체보기 (249)
두 손끝의 창조자
class DummyTransactionManager implements PlatformTransactionManager { SimpleTransactionStatus transactionStatus = new SimpleTransactionStatus(true); @Override public TransactionStatus getTransaction(TransactionDefinition definition) throws TransactionException { if (transactionStatus.isCompleted()) { transactionStatus = new SimpleTransactionStatus(true); } return transactionStatus; } @Override p..
jar 파일 내 resource가 있을 때, 예를 들면 스프링부트로 말아서 서비스를 돌리는데 그 안에 리소스를 참조해야하는 경우 리소스를 stream으로 가져오면 사용할 수 있다. getClass().getResourceAsStream("리소스이름"); 문제는 classpath에 서브 디렉토리가 있고 그 안에 리소스가 있는데 정확한 경로를 모르는 경우이다. 스트림이 아니라 파일로 가져올 수 있다면 파일 객체에서 isDirectory() 로 디렉토리를 확인 한 후에 서브 디렉토리를 다시 뒤지는 형태로 Walk가 가능한데 스트림은 그렇게 할 수 없다. 스프링에서는 여러가지 형태로 저장된 리소스를 패턴으로만 찾아서 가져올 수 있도록 도구를 제공한다. Resource[] resources = ResourcePa..
Class.getResource() 클래스 기준으로 상대적인 위치의 리소스를 가져올 수 있다. a.b.C 클래스가 있다면 C.class.getResouce("xxx.txt") 로 C 클래스와 같은 패키지에 있는 자원을 가져 올 수 있다. 절대 위치로도 지정이 가능한데 맨 앞에 /로 시작하면 된다. C.class.getResouce("/a/b/xxx.txt") 은 같은 의미이다. ClassLoader.getResource() 항상 절대 경로 기준으로 리소스를 가져온다. C.getClassLoader().getResource("a/b/xxx.txt"); 는 같은 자원을 가져 온다.
[ Linux - CentOS ] 리눅스에서 파이썬(python) 설치하기 - For Information Security (tistory.com)
scp 보낼파일 보낼위치 scp abc.jar myuser@192.1.1.12:~
persistence.xml 는 필요없다. entityManagerFactoryBean.afterPropertiesSet(); 는 가장 마지막에 호출해줘야 한다. LocalContainerEntityManagerFactoryBean entityManagerFactoryBean = new LocalContainerEntityManagerFactoryBean(); entityManagerFactoryBean.setDataSource(dataSource); entityManagerFactoryBean.setJpaVendorAdapter(new HibernateJpaVendorAdapter()); Map objectObjectHashMap = new HashMap(); objectObjectHashMap.put..
input 태그 버튼 value 는 버튼안 텍스트 button 태그 버튼 태그사이에 뭐든 넣을 수 있어 더 유연하게 쓸 수 있고 나중에 나온 기능. 이 타입을 쓰는 것이 더 선호됨
로컬 네트워크에 설치한 넥서스 리포지토리를 사용하려고 아래와 같이 리포지토리를 등록하면 maven { url "http://10.110.1.12:8889/nexus/content/groups/public" } 아래와 같은 오류를 볼 수 있다. * What went wrong: Execution failed for task ':compileJava'. > Failed to notify dependency resolution listener. > Could not resolve all dependencies for configuration ':detachedConfiguration1'. > Using insecure protocols with repositories, without explicit opt-i..
logback mdc 등 MDC 를 찾아서 적용하라
발생할 때 error: unmappable character (0xEB) for encoding x-windows-949compileJava { options.encoding = "utf-8" } compileTestJava { options.encoding = "utf-8" } 추가
checkstyle.xml 추가 suppressions.xml checks에 무시할 check 를 나열하거나 정규식으로 표현
Plugin [id: 'maven'] was not found in any of the following sources: gradle 7부터 maven 플러그인은 지원하지 않는다. 대신 maven-publish 를 사용할 것. 로컬설치 task인 install은 없어지고 publishToMavenLocal task로 좀 더 명료 태스크가 생겼다.
인터페이스 A, 인터페이스 B가 있다. 인터페이스 A를 구현하는 구현체는 인터페이스 B가 필요하고 인터페이스 B를 구현하는 구현체는 인터페이스 A가 필요한 상황이다. 그러기 위해서 A 구현체의 생성자는 B 인터페이스 오브젝트를 필요로 하고, B 구현체의 생성자는 A 인터페이스 오브젝트가 필요하게 된다. 그러면 아래와 같이 무한 참조 상황이 된다. A a = new AImpl( new BImpl( new AImpl( .... 이럴때는 A의 구현체와 B의 구현체 독립적으로 만들지 말고, 둘 기능을 조합하는 구현체를 만들자. class CompsiteImpl implement A, B A a = new CompsiteImpl( ); B b = new CompsiteImpl( );
$ssh-keygen -t rsa -b 4096 -C "이메일" 기본값으로 엔터 엔터 공개키 클립보드로 복사(windows) clip SSH and GPG keys -> New SSH key
관리자 권한으로 커맨드 창 열기 mklink /h /j c:\링크를_저장할_절대경로 c:\링크_대상이_되는_위치_절대경로
Nexus에서 close 를 하려고 하니 키스토어에서 공개키를 찾을 수 없다고 에러메시지가 발생하였다. 이번에 올려놨던 키서버에 직접 찍어서 들어가보니 문을 닫았는지 안열렸다. Nexus에서 접근하려고 하는 url이 내가 올려놨던 서버가 아니어서 그 주소에 공개키를 다시 등록하니잘 되었다. gpg --list-keys --keyid-format short 에서 rsa3072/XXXXXX 부분으로 키 이름 가져와서 올림 gpg --keyserver hkp://keyserver.ubuntu.com --send-keys XXXXXX
elements = (E[]) Array.newInstance(clazz, capacity); (T[])java.lang.reflect.Array.newInstance(a.getClass().getComponentType(), size); https://www.baeldung.com/java-generic-array
EntityManagerFactory 는 persistence.xml 에 정의한 persistence unit 당 하나를 만든다. 팩토리는 애플리캐이션 레벨에 하나만 존재하면 되고 이 팩토리를 이용해서 EntityManager를 만들어서 데이터 처리를 하면된다. 스프링에는 트랜잭션을 ThreadLocal 을 이용해서 관리하고 있는데 한번 만들어진 EntityManager를 같은 스레드 내에서 가져오고 싶을 때 편리한 유틸리티 클래스를 제공한다. EntityManagerFactoryUtils 이 그것이다. getTransactionalEntityManager 메소드에 EntityManagerFactory를 파라미터로 전달해서 현재 스레드에서 동작중인 EntityManager 를 가져온다. 여러 클래스와 메..
resources/junit-platform.properties 파일 만들고 junit.jupiter.execution.parallel.enabled=true junit.jupiter.execution.parallel.config.strategy=dynamic junit.jupiter.execution.parallel.mode.default = same_thread junit.jupiter.execution.parallel.mode.classes.default = same_thread 밑에 config는 스레드 개수를 설정한다. 자신의 상황에 맞춰서 아래 링크를 참조하여 수정 https://junit.org/junit5/docs/snapshot/user-guide/index.html#writing-tes..