일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Microservice
- 내가보려고한
- 유방암보호자
- Trino
- 좋은개발
- 현대자동차코테
- useSSL
- 현대자동차코테후기
- ecs layout
- spybean
- OncePerRequestFilter
- TestCase
- allowPublicKeyRetrieval
- Infrastructure as Code
- MultiModule
- mockbean
- java
- Public Key Retrieval is not allowed
- 유방암보호자일기
- R2DBC
- show partition
- log4j version up
- retrieval
- 멀티모듈
- 유방암일기
- $partitions
- r2dbc pool
- trino jdbc
- 유방암
- jdbc 연동오류
- Today
- Total
목록분류 전체보기 (11)
우당탕 개발일지

제가 jenkins 에 대해서 공부하는 가장 큰 이유는 Spring batch 를 jenkins 로 띄우고 있고, 테스트 컨테이너 역시도 젠킨스 안에서 돌면서 sonarqube 등을 실행하여 테스트 하고 있기 때문에 더 잘 사용하기 위함입니다. 최근 환경구성을 하면서 어찌어찌(?) 해서 구축을 했는데 금새 까먹더라고요. 그래서 좀 더 차근차근 basic 을 쌓아올려서 구축했던 내용을 더듬으면서 잘 기록하고자 기초부터 한번 해보겠습니다. jenkins 를 설치하기 위해서는 아래와 같은 명령어로 docker 를 띄웁니다. docker run -d -p 8080:8080 -p 50000:50000 --name jenkins-test --restart=on-failure -v jenkins_home:/var/j..

사실 db pool 이슈는 여러가지 설정으로 인한 connection fail 문제가 발생하기 때문에 검색에 충분한 답변이 아닐 수 있습니다. 저의 경우에는 connection 설정 중 connection 을 얻는 maxAcquireTime 이 3초보다 더 걸려서 timeout 을 발생하여 오류가 났었습니다. 제가 맡은 서비스는 데이터 수집 처리를 하기 때문에 짧은 시간 주기에 처리해야되서 pool 내의 connection 이 모두 연결하게 되어 새로운 요청이 들어왔을 시 연결을 얻는데 시간이 소요됨으로 timeout 이 발생한 것입니다. 개발하는 것만큼 어려운 것이 이런 pool 설정을 조정하는 것이라고 생각합니다. 너무 풀을 크게 만들게 되면 놀게되는 connection 들이 많아져 메모리 낭비가 많..

logj4의 ecs layout 설정을 하고 프로젝트를 띄웠더니 아래와 같은 로그를 확인할 수 있었습니다. WARN StatusConsoleListener The use of package scanning to locate plugins is deprecated and will be removed in a future release 내용을 봤을 때 뭔가 더 이상 package 검색 사용을 지원하지 않는 것 같아 log4j document를 확인해 보니 Log4j 3.0 버전 이상부터는 package 속성이 deprecate 되었다는 글을 볼 수 있었습니다. [Log4j document 발췌] 그래서 ecs 에서 pakcages 속성을 삭제했더니 위와 같은 오류 내용을 볼 수 없었습니다. (이슈 해결!) ..
전통적인 인프라 프로비저닝 및 관리 작업을 코드로 관리하여 작업의 자동화 및 표준화를 하기 위한 방식입니다. IaC 를 통해 우리는 아래와 같은 이점을 얻을 수 있습니다. 자동화된 프로비저닝 : 코드를 기반으로 서버, 네트워크, 스토리지 등 인프라 리소스를 프로비저닝 할 수 있습니다. 일관성 : 코드로 정의되어 있기 때문에 운영하는 전 서버에 일관성 있게 적용 가능합니다. 트래킹과 관리 : 버저닝 등 인프라 변경 사항을 관리할 수 있고 롤백이나 이력을 확인할 수 있스빈다. 문서화 : 코드화 되어 있기 때문에 인프라 구성 자체를 문서화 할 수 있습니다.

Spring 을 사용하는 개발자라면 익히 Filter 에 대해서 들었을 것입니다. Filter 는 jakarta.servlet 에서 제공되는 인터페이스로 서블릿 컨테이너에서 Http 요청을 인터셉트 하여 필터 체인을 통해 인증, 로깅, 압축 보안 등의 공통 작업을 처리하여 서비스의 보안을 높여주는 기능을 수행합니다. 그런데 이런 Filter 가 중복으로 호출 되는 경우가 있습니다. 여러개의 Filter 가 동일한 Url 패턴으로 등록되어 있고 모두 filter chain 이 포함되어 있는 경우 filter 가 순서대로 호출되어 중복 호출이 발생하는 경우 forwarding : forwarding 은 현재의 요청을 다른 servlet 이나 jsp 로 전달을 하게 되는데 이 때 요청/응답에 대해 동일한 작업..
Hive 에서 Trino 로 전환작업을 하면 의외로 사용하는 function 이 달라지는 이슈때문에 생각보다 작업을 하면서 Trino 공부를 하게 되었습니다. 그 중에서도 가장 삽질을 많이 한게 의외의 partition 조회라 내용을 정리했습니다. 원래 Hive 의 경우에는 SHOW PARTITIONS 명령어로 간단하게 조회하고자 하는 테이블의 파티션 정보를 조회할 수 있었습니다. SHOW PARTITIONS 테이블명 PARTITION (파티션 컬럼 = 조회 조건 , ...) ex) SHOW PARTITIONS test_table PARTITION (date_id = '2024-02-01', hour_id = '00') 아쉽게도 trino 에서 해당 command 가 삭제되었고 이를 대체할 명령어를 찾던..
배포 진행 중 당혹스러운 아래와 같은 에러를 발견했습니다. Caused by: com.mysql.cj.exceptions.UnableToConnectException: Public Key Retrieval is not allowed at jdk.internal.reflect.DirectConstructorHandleAccessor.newInstance(Unknown Source) ~[?:?] at java.lang.reflect.Constructor.newInstanceWithCaller(Unknown Source) ~[?:?] at java.lang.reflect.Constructor.newInstance(Unknown Source) ~[?:?] at com.mysql.cj.exceptions.Exce..
검증을 위해 만든 junit 이 점점 느려진다? 내가 만든 기능의 정확성을 올리기 위함과 동시에 회귀 테스트를 위해 만든 나의 단위 테스트가 기능이 많아질수록 점점 더 느려지는 현상을 발견했습니다. 빠른 피드백을 통해 문제 확인을 위해 만든 단위 테스트였는데 오히려 단위 테스트 때문에 CI/CD 연결을 한 프로젝트여서 pr 을 요청할때마다 느립니다. 심지어 hotfix 를 나가야한는 상황에서도 오래 걸리는 테스트 수행 시간까지 최종 확인하는 시간이 지연될 수 있습니다. (진짜 급한경우 제대로 TDD 가 되지 않은 상태에서 나가 혹시나 나의 변경사항으로 다른 기능에 문제가 있는거 아닌가 불안한에 떨며 반영을 해야하는 이런 말도안되는 상황이 올 수 있습니다.) 가장 큰 문제는 MockBean 과 SpyBe..
소위 물리서버 클라우드 서비스와 반대되는 개념입니다. 자체적으로 가지고 있는 전산실 물리 서버에서 운영되는 방식입니다. 직접 물리서버를 구매 혹은 대여하여 인프라를 구축하고 운영되는 시스템입니다. 그렇기 때문에 클라우드에 비해 유지보수 비용이 필요하고 인프라 구축을 하기 위한 인력과 지식이 필요합니다.
내가 이 두가지의 주제를 고민하게 된 이유 최근 제가 인수인계를 받은 서비스는 MSA (MicroService Architecture) 로 구축되어 있었습니다. 대부분 주로 멀티모듈 기반의 솔루션 개발을 해왔었기 때문에 MSA 서비스를 인계받아 처리할 수 있다는 점과 기존에 했던 도메인과 다른 분야를 개발한다는 것에 걱정 반, 설레임 반으로 시작했었습니다. 인계를 받고 얼마 되지 않아 저는 이렇게 되었습니다. 하.. 이 뭐꼬..? 왜 MSA 가 아닌 멀티모듈로 돌아가려 하는가? 1. 충분히 DDD 기반의 MSA 를 설계하였는가 도메인 주도 설계란 비즈니스를 도메인별로 나눠서 각 모듈간의 독립성과 단일책임을 가지고 있어 다른 모듈간의 의존성을 최소화하되 각 모듈의 기능을 확장하여 개발할 수 있도록 개발하는..