개발 51

HikariCP 튜닝하기 (too many connections 오류 해결)

HikariCP를 기본 설정으로 넣고 사용 할 경우에는 DB에서 too many connections 에러가 발생할 수 있어 설정 값을 변경해야 합니다. HikariConfig hikariConfig = new HikariConfig(); hikariConfig.setMinimumIdle(10); hikariConfig.setMaximumPoolSize(10); hikariConfig.setConnectionTestQuery("SELECT 1"); hikariConfig.setPoolName(poolName); hikariConfig.setDriverClassName(this.driverClassName); hikariConfig.setJdbcUrl(jdbcUrl); hikariConfig.setUser..

개발 2021.04.07

apache nginx 전환하기 - 설정 옮기기

apache를 nginx로 전환할 때 설정을 쉽게 옮길 수 있다. 1. 파일 다운로드 wget https://github.com/nhnc-nginx/apache2nginx/zipball/master -O nhnc-nginx-apache2nginx.zip 2. 압축해제 unzip nhnc-nginx-apache2nginx.zip 3. 의존 파일 설치하기 yum -y update yum -y install gcc yum -y install zlib-devel yum -y install make 4. 컴파일 및 설치하기 cd nhnc-nginx-apache2nginx ./configure --prefix=/usr/local/apache2nginx make && make install export PATH=/u..

개발 2021.02.09

자주 사용하는 도커 명령어

1. 도커 실행 docker run -i -t --name oldcentos centos:7 2. 도커 컨테이너에서 나오기 - 컨테이너 정지하면서 나오기 : exit 또는 Ctrl + D 3. 도커 이미지 내려받기 docker pull 이미지명 4. 도커 이미지 목록 확인하기 docker images 5. 컨테이너 목록 확인하기 docker ps -a 6. 컨테이너 이름 변경하기 docker rename oldCentos newCentos 7. 컨테이너 삭제하기 docker rm -f 컨테이너이름 8. 도커 볼륨 - 생성 : docker volume create --name myvolume - 조회 : docker volume ls - 마운트 : docker run -i -t --name newCento..

개발 2021.02.09

자바 파일 업로드 NIO 방식 처리

파일 업로드는 보통 IO방식으로 처리하는데 경우에 따라서 NIO방식을 사용하는 경우가 있다. Nio 방식은 채널방식으로 양방향 입출력이 가능하고 복수 개 단위의 버퍼를 사용해서 입출력 속도가 빠르다. private static void useNormalIO() throws Exception { File file = new File("/home/developer/test.iso"); File oFile = new File("/home/developer/test2"); long time1 = System.currentTimeMillis(); InputStream is = new FileInputStream(file); FileOutputStream fos = new FileOutputStream(oFile)..

개발 2020.11.29

concurrentmodificationException 해결방법

concurrentmodificationException 은 iterator가 돌고 있을 때 데이터 변경이 일어나면서 발생한다. 다음과 같은 코드에서 이 오류가 발생한다. for (IssueUser issueUser : user.getIssueUsers()) { user.removeIssue(issueUser.getIssue()); } public void removeIssue(Issue issue) { Iterator iterator = this.issueUsers.iterator(); while (iterator.hasNext()) { IssueUser issueUser = iterator.next(); if (issue.getId().equals(issueUser.getIssue().getId())..

개발 2020.11.29

index.html 이 {}으로 표시될때

스프링 프레임워크를 처음 설정할 때 index페이지에 접근해도 {}으로 표시되어 당황할 수 있다. 이런 현상이 발생한 이유는 뷰 설정이 프레임워크에 없기 때문에 발생한다. 설정 클래스에 뷰 설정을 추가하면 정상적으로 index 페이지가 표시된다. @Bean public ViewResolver viewResolver() { // jsp를 처리하는 viewResolver InternalResourceViewResolver viewResolver = new InternalResourceViewResolver(); viewResolver.setOrder(1); viewResolver.setPrefix(VIEW_RESOLVER_PREFIX); viewResolver.setSuffix(VIEW_RESOLVER_SU..

개발 2020.11.29

검색 봇 웹페이지 수집 허용/제한 설정

프로젝트 최상단에 robots.txt 파일을 생성한 후 다음과 같이 설정한다. * 다른 검색 엔진 로봇 수집 거부 / 특정 검색 로봇 (네이버 검색 봇) 수집만 허용하기 User-agent: * Disallow: / User-agent: Yeti Allow: / * 모든 검색 엔진 로봇에 대해 수집 허용하기 User-agent: * Allow: / * 사이트의 루트 페이지만 수집 허용하기 User-agent: * Disallow: / Allow: /$ * 개인 정보 페이지는 검색 허용하지 않기 (/private/ 경로가 개인 정보 페이지 일경우) User-agent: Yeti Disallow: /private*/ * 모든 검색 허용하지 않기 User-agent: * Disallow: /

개발 2020.11.29