본문 바로가기
반응형

분류 전체보기386

[Springboot] spring bean과 싱글톤(singleton) 일정시간마다 데이터를 정재하는 스케쥴이 실행된다. 해당 스케쥴을 실행하기 위해 Service Bean 을 수행하는데 초반에는 별 문제가 되지 않았다가 최근 데이터가 늘어나면서 점점 처리속도가 느려지기 시작했다. 그래서 Schedule 수행 시간을 늘려 처리하려 했지만, 이전 스케쥴러 실행이 종료되지 않을 경우, 새로 만든 스케쥴러가 실행되지 않았다. 그리고 이전 스케쥴러가 끝난 후에야 새로만든 스케쥴러가 수행되기 시작했다. (아마 스택 상태로 대기하고 있었던 듯 하다) 그래서 이름만 바꾼 빈을 주입해서 콘솔에 띄워보았다 @Component public class AppRunner implements ApplicationRunner { @Autowired private SampleService sample.. 2019. 10. 1.
[jenkins] gitlab 과 jenkins webhook 으로 자동빌드 연결 인터넷을 찾아보면 권한 등록이 크게 2개로 구분되는거 같다. ​ 1. Gitlab 에 User Setting 에서 Access Token 을 생성해 jenkins에 등록하여 인증하는 방법 2. Jenkins 에서 만든 Item 에서 Secret Token 을 생성해 Gitlab 프로젝트 내 Integrations 에 등록하여 인증하는 방법 ​ 내 경우 1번방법은 되지 않아서 2번방법으로 등록하여 성공했다. # Jenkins 에 관련 플러그인 설치 Jenkins 관리 > 플러그인 관리 로 이동한다 GitLab Plugin, GitLab Hook Plugin 을 설치한다.(목록에서 보이지 않으면 '설치 가능' 탭을 클릭한다음 gitlab으로 검색한다) # Jenkins 에 새로운 Item 등록 소스코드 관리.. 2019. 9. 25.
[aws] DMS(Database Migration Service) 이용시 주의사항 작업 설정을 기본으로 설정하면 스키마가 있음에도 테이블을 drop -> create 한다. 관련 설정은 작업 설정 안에 '대상 테이블 준비모드' 에서 수정할 수 있다. 이 모드는 총 3개가 있는데 다음과 같다. 1) 아무것도 안함 => 테이블이 존재하면 추가 DDL을 실행하지 않고, 없으면 생성 2) 대상에서 테이블 삭제 => 테이블을 드랍하고 새로 테이블을 만듬 3) 자르기 => 테이블과 메타데이터를 그대로 두지만, 거기에서 데이터를 제거합니다. 만약 테이블을 drop 하고 생성하는걸 선택하면 반드시 인덱스를 재설정 해줘야 한다. DMS는 테이블을 생성하고 키를 등록하는 것까지는 해주는데 추가 인덱스를 등록해주지 않는다. 그래서 성능에 영향이 있는 인덱스는 반드시 새로 설정해주거나, 아니면 위의 설정중.. 2019. 9. 24.
[gradle] build 실패(No cached version of available for offline mode) 결론: 다음명령어를 실행하자 gradlew build --stacktrace build 를 하면 다음과 같은에러가 발생한다 FAILURE: Build failed with an exception. * What went wrong: A problem occurred configuring root project 'sender-spring'. > Could not resolve all artifacts for configuration ':classpath'. > Could not resolve org.springframework.boot:spring-boot-gradle-plugin:2.1.0.RELEASE. Required by: project : > No cached version of org.spring.. 2019. 8. 27.
[jenkins] Execute Shell 에서 프로세스 이름으로 프로세스 kill 하기 Springboot 를 실행하는 것 기준으로 작성되었다. jenkins 로 배포한 후에 스크립트를 이용해서 실행하고 싶을 때, 이전 프로세서를 죽여야 할 때가 있다. 안그러면 1개의 모듈이 2개 이상 뜨는 문제점이 발생할 수 있거나, 혹은 이전 프로세서때문에 새로 반영되어야 할 프로세서가 제대로 실행을 되지 않는 경우도 (포트가 겹쳐 신규 프로젝트가 실행하지 못하는 경우) Build -> Execute shell 에서 다음과 같이 입력한다 PROC=`ps aux | grep web-test` if [[ $PROC == *"web-test"* ]]; then echo "Process is running." sudo kill -15 `ps -ef | grep web-test | grep -v grep | a.. 2019. 8. 22.
[spring] @Transactional 작동 안할때 확인해봐야 할 것 인터넷에 나와있는 각종 설정을 해봐도 안될경우 다음을 참조하면서 점검해보자 1. 메서드가 public 인지 확인 - private 면 걸리지 않는다 public class TranService() { @Transactional private void test1() { // public 으로 변경 ... } } 2. 한 클래스 내 @Transactional 이 설정되어 있지 않은 메서드에서 @Transactional 이 설정된 메서드를 호출할 경우. 코드 예) public class TranService() { public void test1() { test2(); } @Transactional public void test2() { ... } } 수정하려면 두가지 방법이 있다 1) 트랜잭션을 호출하는 메.. 2019. 8. 16.
반응형