본문 바로가기
반응형

전체 글296

poi SXSSFWorkbook createSheet FontConfiguration NullPointException Java에서 엑셀을 다룰 때 Apache POI 라이브러리를 자주 사용하게 된다. 그리고 대용량 처리를 위해서 Streaming API를 사용하는 SXSSFWorkbook을 사용하는데 서버에 올려서 테스트 중에 아래와 같은 에러가 발생했다. Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Handler dispatch failed; nested exception is java.lang.InternalError: java.lang.reflect.InvocationTargetException] with root cause java.lang.NullPointerException: null at j.. 2023. 7. 3.
springdoc swagger ui disable Petstore(swagger-ui enabled false not working) Springdoc SwaggerUI를 사용하면서 한가지 이상점을 발견했다. SwaggerUI 설정을 QA, PRD 환경 등에서 disalbe 처리를 하기 위해서 아래와 같이 application.yml파일에 간단히 disable 설정을하고 테스트를 해봤다. springdoc: swagger-ui: enabled: false Application의 API는 diable처리가 됐는데 Swagger의 기본 샘플인 Petstore API가 나타나기 시작한것이다. 사실 Application의 API Doc을 제한하겠다는 목적은 달성했다하지만 그렇다고 기본 샘플이 뜨는것은 이해가 안되는 상황이고 찜찜하다. yml 설정에서 'disable-swagger-default-url: true' 등 기타 다른 설정들을 모두 .. 2023. 6. 19.
DBeaver posgresql JDBC 드라이버 수동 설정 DB Clinet Tool로 많이 사용하고 있는 DBeaver에서 DB 드라이버 수동 설정하는 방법을 알아본다. 먼저 posgresql의 드라이버를 다운로드 받는다. https://jdbc.postgresql.org/download/ 이제 DBeaver에서 postgresql database 연결 설정을 시작한다. 'DB 연결 설정'에서 우측하단의 Driver Settings를 클릭한다. Driver Settings 팝업에서 두번째 탭 "Libraries"를 클릭한다. 그럼 기본으로 설정된 라이브러리들이 몇가지 보이는데 불필요함으로 모두 선택하고 Delete를 한다(Optional). 그리고 Add File를 선택해서 다운로드 받은 postgresql jdbc 드라이버를 추가 후 OK를 눌러 팝업을 닫는.. 2023. 6. 19.
AWS 외부 SSL 인증서 적용(인증서 가져오기 및 ALB 적용) AWS에서 SSL 인증서가 필요한 경우 ACM(Certificate Manager)에시 인증서 요청을 통해 AWS가 자동으로 관리해주는 인증서를 쉽게 사용할 수 있다. 하지만 가끔 외부에서 발급받은 인증서를 등록해서 사용해야 하는 경우가 있는데 이 방법을 정리해본다. 먼저 ACM(AWS Certificate Manager)에 접속하고 가져오기 버튼을 클릭한다. 인증서 세부 정보 입력에서 외부 인증서 내용을 복사 붙여 넣기한다. 문제가 없는 경우 아래와 같이 인증서 등록된다. 다음으로 이 인증서를 ALB(Application Load Balancer)에 적용한다. 아래와 같이 ALB Listener에 443 port를 등록하고, Secure listener에서 From ACM을 선택 후 인증서를 선택해준.. 2023. 6. 12.
AWS ALB 도메인(호스트) 기반 라우팅 규칙 설정 AWS ALB사용 시 하나의 ALB로 여러 개의 도메인(서브도메인)을 처리해야 할 경우가 있다. 이럴 때 ALB의 Rule(규칙)에서 설정하는 방법을 알아본다. 먼저 ALB의 타켓이 되는 대상그룹과 ALB를 생성해둔다. 그리고 해당 ALB의 Listeners 탭에서 설정을 원하는 포트를 클릭한다. 다음 화면에서 ALB생성 시 기본으로 설정한 규칙이 나오는데 여기서 Rules탭의 Manage rules버튼을 클릭한다. 아래와 같이 '+'탭을 클릭하면 규칙을 정의하고 추가할 수 있다. IF에서는 호스트 헤더의 원하는 도메인을 입력하고, THEN에는 라우팅할 대상 그룹을 선택한다. 규칙을 저장하고 도메인으로 테스트 하면 완료된다. 기존의 규칙들을 수정 및 삭제는 '+' 옆의 편집 및 '-' 탭을 클릭하면 된다. 2023. 6. 7.
SpringBoot3(SpringBatch5) 동일(or 이전) 파라미터 재사용 해결 SpringBatch에서 파라미터 처리에 대한 부분이 지속적으로 문제가 있는것 같다. 최근에 SpringBoot3에 SpringBatch5를 적용하면서 파라미터가 있으면 파라미터 값을 적용하고 파라미터가 없는 경우 소스 내부의 디폴트 값을 적용하는 로직을 처리하는 중에 문제를 발견하고 해결한 방법을 정리해본다. 먼저 동일한 파라미터라도 배치가 실행되도록 job에 RunIdIncrementer()를 적용한 상황이었다. public Job job() { return jobBuilderFactory.get("myJob") .incrementer(new RunIdIncrementer()) .start(step(null)) .build(); } 그리고 파라미터를 변경하면서 테스트를 했을 때 잘 동작하는 것을 확인.. 2023. 6. 5.
SpringBoot AWS S3 파일 업로드 SpringBoot 백엔드에서 AWS S3로 파일 업로드 하는 방법을 알아본다. 1. AWS 설정(S3버킷 생성 및 IAM 설정) 테스트용 S3 버킷을 간단히 생성한다. IAM에서 S3 접근을 위한 계정 및 AccessKey 설정을 한다. 먼저 계정의 권한은 AmazonS3FullAccess를 부여한다. 다음으로 S3업로드 시 사용할 AccessKey를 생성한다. 2. SpringBoot 어플리케이션 설정 'spring-cloud-starter-aws' gradle 의존성을 추가한다. implementation org.springframework.cloud:spring-cloud-starter-aws:2.2.6.RELEASE application.yml에서 S3관련 설정 정보를 추가한다. cloud: a.. 2023. 6. 4.
SpringBoot OpenFeign(FeignClient) 사용하기 Spring5.0 버전부터 그동안 Spring에서 HTTP Client로 많이 사용되면 RestTemplate이 유지 모드로 변경이 되었다고 한다. 이에 WebClient 사용을 Spring에서 권고하고 있지만 대안으로 간단하게 적용 가능한 OpenFeign 사용법을 알아본다. OpenFeign은 Spring Cloud 처음에는 Spring Cloud Netflix Feign 였으나 Spring Cloud OpenFeign에 통합되면서 SpringMVC 어노테이션 및 HttpMessageConverters를 사용할 수 있게 되었다. OpenFeign은 HTTP API 클라이언트를 단순화하는 것을 목표로 하고 있고 실제 RestTemplate와 비교해봤을 때도 사용하기 간편하다. 먼저 OpenFeign G.. 2023. 5. 31.
Docker 리소스 일괄 삭제(docker system prune)-미사용 Docker 리소스 모두 삭제 Docker를 사용하다보면 한번씩 사용되고 미사용되는 여러 Container, Image, Network, Volume 등 리소스들이 계속 쌓이게 되고, 이는 호스트 환경의 성능에 안좋은 영향을 미치게 된다. 개별적인 리소스들을 정리하는 방법들이 있지만 docker system prune 명령을 사용하여 일괄적으로 삭제가 가능하다. 먼저 개별적인 리소스 삭제 명령을 정리해보자 docker container prune 미사용 컨테이너 일괄 삭제 docker image prune 미사용 이미지 일괄 삭제 docker volume prune 미사용 볼륨 일괄 삭제 docker network prune 미사용 네트워크 일괄 삭제 docker system prune 명령은 위의 명령들을 모두 실행한다고 볼 수 있.. 2023. 5. 29.
PostgreSQL 문자열 합치기 PostgreSQL에서 문자열을 합치는 방법을 알아보자. PostgreSQL은 기본적으로 Oracle과 문법이 많이 비슷하다. 1. '||' 사용 // 문법 STR1 || STR2 || ... // 예시 'Hello' || 'World' // HelloWorld 한가지 주의할 부분은 합치려는 문자열 중에 NULL이 있는 경우 NULL이 리턴된다는 것이다. 'Hello' || NULL || 'World' // NULL 2. CONCAT 사용 // 문법 CONCAT(STR1, STR2,...) // 예시 CONCAT('Hello', 'World') // HelloWorld CONCAT을 사용할 때는 NULL이 포함이 되어도 NULL을 무시한다. 'Hello' || NULL || 'World' // Hello.. 2023. 5. 29.
반응형