일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- database
- VSCode
- Spring
- tibero
- docker
- nginx
- Kubernetes
- kubectl
- mybatis
- JPA
- Windows
- nodejs
- MySQL
- IntelliJ
- JavaScript
- LOG4J
- react
- Java
- BPMN
- springboot
- gson
- intellijIDEA
- gradle
- NCP
- dbeaver
- log4j2
- wildfly
- maven
- useEffect
- Git
- Today
- Total
목록분류 전체보기 (249)
두 손끝의 창조자
작성한 테스트 스크립트를 많은 호스트가 실행을 하게 해서 타겟에 부하를 주고 그 결과를 모니터링 하는 솔루션이다. 크게 콘트롤러와 에이젼으로 구성된다. 콘트롤러는 웹 애플리케이션인데 테스트 스크립트를 생성하고 실행을 구성한다. 에이전트는 가상 사용자를 만들어서 부하를 발생시킨다. 콘트롤러에서 에이전트를 지정하고 에이전트에게 스크립트를 실행하게 하는 구조이다. 스크립트 Jython, Groovy 스크립트를 사용할 수 있다. IDE에서 Groovy 스크립트를 개발 및 테스트를 할 수 있고 이것을 에이전트에게 실행시킬 수있다. 다운로드 Releases · naver/ngrinder (github.com) Releases · naver/ngrinder enterprise level performance test..
persistence.xml 없이 자바로 속성 설정해서 사용하려면 @Bean public EntityManagerFactory entityManagerFactoryForMysql(DataSource dataSource) { final Properties properties = new Properties(); properties.put( "hibernate.dialect", "org.hibernate.dialect.MySQL5Dialect" ); // MySql5x 쓴다면 properties.put( "hibernate.user_sql_comments", "true" ); properties.put( "hibernate.format_sql", "true" ); properties.put( "hibernat..
MyBatis Mapper 스캔은 스캔을 설정한 패키지와 하위 패키지를 검색하여 등록하거나, 베이스 패키지와 그 하위 패키지를 검색하여 매퍼로 등록한다. 별도 설정을 하지 않으면 하위 패키지내에 있는 인터페이스는 모두 매퍼로 등록을 한다. 지원낭비이자 이중 빈 등록으로 인한 문제가 생길 수 있다. 매퍼 인터페이스를 한 군데 정해서 지정하면 간단하게 해결되지만 기능 별로 다른 패키지에 매퍼가 있을 경우는 좀 곤란하다. 패턴으로 매퍼의 위치를 지정할 수 없기 때문이다. 매퍼 스캔 옵션에 annotationClass 를 Mapper.classs 를 지정하면 @Mapper 애노테이션이 있는 인터페이스만 매퍼로 등록한다. 참고로 매퍼 xml을 지정하고, namespace에 인터페이스를 정확하게 입력했다면 그 인터..
톰캣을 intellij에서 실행하면 로그에 한글이 깨질 수 있다. -Dfile.encoding=UTF-8를 Run/Debug Configurations 에 VM options에 추가할 것
ITemplateResolver 를 ClassLoaderTemplateResolver 를 사용한다. public ITemplateResolver templateResolver() { ClassLoaderTemplateResolver templateResolver = new ClassLoaderTemplateResolver(); templateResolver.setPrefix("templates/"); templateResolver.setSuffix(".html"); templateResolver.setTemplateMode(TemplateMode.HTML); templateResolver.setCacheable(false); return templateResolver; }
Thymeleaf 홈페이지에 Spring과 연동하는 소스를 가져와서 테스트 했는데 아무리 해도 뷰가 매핑이 되지 않았다. 몇 시간 헤매다가 아래 구문에서 문제가 있었다. viewResolver.setViewNames(new String[]{".html", ".xhtml"}); 당연하게도 xxx.html 파일과 매핑을 위한 설정정보라고 생각했는데 Controller에서 반환한 뷰 이름과 패턴 매치해볼 대상들이었다. 컨트롤러에서 뷰 이름만 리턴했으니 .html 과 같은 것이 매치가 될 리가 없다. 무슨 샘플 소스를 이따구로... https://www.thymeleaf.org/doc/tutorials/3.0/thymeleafspring.html
Controller를 기본 대상에서 포함시키고, 기본 필터를 끈다. @ComponentScan(basePackages = {"com.dongkuk.dmes.cr"}, includeFilters = @ComponentScan.Filter( type = FilterType.ANNOTATION, classes = {Controller.class} ), useDefaultFilters = false)
web.xml 을 대체해서 사용할 수 있는 진입점을 제공하는 인터페이스이다. 클래스 패스에 META-INF/services/javax.servlet.ServletContainerInitializer 파일에 ServletContainerInitializer 구현한 클래스 전체 이름을 넣으면 컨테이너가 올라오면서 onStartup 메소드를 실행한다.
Servlet Version WAS Servlet 4.0 Tomcat9>=, *SpringBoot2, WildFly14>= Servlet 3.1 Tomcat8>=, Jeus7 Servlet 3.0 Tomcat7
servlet 4.0 servlet 3.1 servlet 3.0
Map x; Map y = x.entrySet().stream() .collect(Collectors.toMap( e -> Map.Entry::getKey, e -> Integer.parseInt(e.getValue()) ));
1. mysql 설치위치로 이동 /usr/local/mysql/bin 또는 /usr/local/opt/mysql/bin 2. sql 데몬 종료 >mysql.server stop 3. 안전모드로 패스워드 없이 root 로 로그인 >mysqld_safe --skip-grant-tables & 4. root로 mysql 로그인 >mysql -u root 5. database 선택 mysql>use mysql 6. 패스워드 변경 mysql>update user set authentication_string = PASSWORD('패스워드') where user = 'root' 7. 권한 적용 mysql>flush privileges; 8. 접속확인 mysql>exit; mysql>mysql -u root -p
RequestParam으로 복수 개로 넘어온 파일을 바인딩 시킬 수 있는데 복수개로 지정하면 RequestParam의 값을 지정해야한다. 즉 멀티파트로 폼 전송을 할 때 같은 이름으로하고 파일명을 다르게 해야한다. @RequestMapping("/upload") String fileUpload(@RequestParam("imageFiles") List files) { }
Nexus에 자원을 분명히 업로드했고 url로 접근이 가능한데 intellij 에서 아무리 update 회오리를 눌러도 못 땡겨 온다면 Preferences->Build, ~ > Build Tools -> Maven -> Repositories 에 주소를 등록하거나 등록되어 있다면 update 시킴
Apache HttpClient OkHttp Java 11 HttpClient Java 1.1 HttpURLConnection (Not recommend) Retrofit RestTemplate https://mkyong.com/java/how-to-send-http-request-getpost-in-java/ How to send HTTP request GET/POST in Java - Mkyong.com - How to send HTTP request GET/POST in Java mkyong.com https://digitalbourgeois.tistory.com/56 [JAVA] REST API Client Library 알아보기 in Java Project 시스템 서비스 규모가 커지고 마이크로서..
브라우저에서는 동작을 잘 하는데 데스크탑용으로 접속하면 로그인 후에 무한로딩 걸린다면 C:\Users\[사용자명]\AppData\Roaming 디렉토리에 있는 notion 디렉토리를 통째로 지우고 다시 켜보세요.
Apple 푸시 알림 서비스(APN)는 원격 알림 기능의 핵심입니다. 앱 개발자가 iOS(및 간접적으로 watchOS), tvOS 및 macOS 장치에 정보를 전파할 수 있는 강력하고 안전하며 매우 효율적인 서비스입니다. 사용자 기기에서 앱을 처음 시작할 때 시스템은 앱과 APN 간에 인증되고 암호화된 영구 IP 연결을 자동으로 설정합니다. 이 연결을 통해 앱은 원격 알림 지원 구성에 설명된 대로 알림을 받을 수 있도록 설정을 수행할 수 있습니다. 알림 전송을 위한 연결의 나머지 절반(제공자 서버와 APN 간의 지속적이고 안전한 채널)에는 온라인 개발자 계정의 구성과 Apple 제공 암호화 인증서의 사용이 필요합니다. 공급자는 APN과 함께 작동하도록 구성하고 배포 및 관리하는 서버입니다. 그림 6-1은..
xcode project를 위한 패키지 관리자이다. npm 에서 사용하는 패키지 정의 문법과 유사하다. pod는 ruby로 작성되어 mac에서는 설치 후 바로 사용할 수 있다. pod init 으로 xcode 프로젝트에 패키지관리자를 추가할 수 있고 Profile 에 패키지를 지정하고 pod install 로 정의한 패키지는 다운로드 또는 삭제한다. pod를 사용하면 xcode project가 아닌 workspace를 열어야 pod에서 다운받은 패키지를 참조할 수 있다.
cordova build 를 했는데 Cannot read property 'toLowerCase' of undefined 따위의 오류가 발생하면 다른사람이 만든 플랫폼 파일을 가지고 실행했을 수 있다. 설치된 플랫폼을 지우고 다시 추가한다. cordova platform rm ios cordova platform add ios
SHOW FULL PROCESSLIST; kill 3202;