Boot에서 변경 -Xmx8g: 최대 힙 메모리를 8GB로 제한 -XX:NewSize=2g 및 -XX:MaxNewSize=2g: Young Generation 크기를 2GB로 설정하여 Old Generation이 약 6GB가 -XX:+UseG1GC: G1 가비지 컬렉터를 사용 bootRun { jvmArgs = ["-Xmx8g", "-XX:NewSize=2g", "-XX:MaxNewSize=2g", "-XX:+UseG1GC"]}JVM 옵션에서 조정-Xmx8g -XX:NewSize=2g -XX:MaxNewSize=2g-XX:+UseG1GC
서버가 비정상 상태일 경우 팀즈로 알람을 받아서 조치 하도록 운영을 하고 있는데, 매시간 서버 재기동 하는게 불편해서 비정상 상태일 경우 서버를 재시작 하도록 자동화 하려고 함. jsch 를 라이브러리 사용 - ssh 연결해줌 최신버전 0.1.55 버전이 이상하지만 고고 implementation 'com.jcraft:jsch:0.1.55' ssh 설정 - 프로퍼티는 알아서 지정 연결할 host port username pw 넣어주면됨 @Configuration public class SshCommandConfig { @Value("${ssh.tunnel.host}") private String sshHost; @Value("${ssh.tunnel.port}") private int sshPort; @V..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/uIjhH/btsFOiehM2R/H8dMbEA0Kp8doRPKRvvyHK/img.png)
Spring Batch 로 하루 30만건 정도의 쿠폰 데이터 ES 적재 이후 타겟팅 된 고객 RDB 적재 연계 로직 일 배치로 ES에 적재 만료예정일시 타겟팅시에 쿠폰 API 호출하여, 실제 만료 예정될 쿠폰이 있는지 확인 쿠폰 지급 타겟된 mall 갯수 : 105개 쿠폰갯수 : 1720개 쿠폰 가장 많은 몰 : 175개 ( * 조금 더줄이는 방법 찾기 ) 가장많은 issued copoun 가진 몰 : 49319개 쿠폰 리스트 총갯수 : 241,210개 (14번 X-Api-Call-Limit 발생) Thread 별 실행시간 이슈 : 스케줄 조정 새벽 2시 10 분 : 3시간30분 소요 → 실행시간 1시간 초과로 오류 발생 오전 8시 20분 : 2분 56초 828 오전 11시 15분 : 4분 20초 소요 ..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/wvULT/btsmuppTqAF/Dafr00snCKg0fEQaGYXN6k/img.png)
테스트코드는 메인 코드의 경로를 맞춰줘야 한다. 1. Test Life Cycle import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; public class TestLifeCycle { @BeforeAll static void beforeAll() { System.out..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/BR2zi/btsmsz7SAEw/o8kpXK5iE20MsstLizxCAk/img.png)
TDD에 대한 간단한 설명 - 테스트 주도 개발이라는 뜻으로 TDD는 테스트를 먼저 설계하고 테스트를 통과할 수 있는 코드를 짜는 것을 말한다. - 애자일 개발 방식 중 하나라고 한다. - 코드 설계시 원하는 단계적 목표에 대해 설정하여 진행하고자 하는 것에 대한 결정 방향의 갭을 줄인다. - 최초 목표에 맞춘 테스트를 구축하여 그에 맞게 코드를 설계 하기 때문에 보자 적은 의견 충돌을 이끌 수 있음 테스트 코드를 작성하는 목적 - 코드의 안정성은 높일 수 있음 - 기능을 추가하거나 변경하는 과정에서 발생하는 Side-Effect를 줄일 수 있음 - 해당 코드가 작성된 목적을 명확하게 표현할 수 있다.(코드에 불필요한 내용이 들어가는 것을 비교적 줄일 수 있음) [단위테스트] 단위 테스트(Unit Tes..