springboot 5

[AWS, Springboot] SqsListener 사용 시 pool_size 문제 및 메세지처리 팁

서비스를 개발하다보면 고객에게 알림을 보내야 하는 일이 있다. 그래서 모듈을 개발할 때 알림까지 전송할 수 있도록 한번에 처리한다. 그러다보니 문제가 발생했을 경우 각각의 시스템에서 점검해야 하는 문제가 발생했다. 각각의 서버환경이 다르다보니 로그파일 위치나 DBMS의 정보를 모두 저장해두어야 했고, 로그를 저장하는 방식을 기억하고 있어야 했다. 그래서 이것을 통합하기 위해 시스템을 구축중이다. 각 서비스에서 보내던 알림을 하나로 통합하기 위해 Message 를 사용하기로 했다. 유명한 Kafka나 RabbitMQ를 고려했으나 설치형 서버를 사용하는 경우 서버비용이 더 많이 들것 같아 AWS에서 제공하는 Amazon Simple Queue Service 서비스를 이용하기로 했다. (SNS[Amazon S..

[SpringBoot] Spring Rest Docs + Spock 사용하기

가급적이면 모든 문서들은 자동화 해야겠다는 취지 + 별도 관리하지 않도록 하기위해 이것저것 알아보다가 이걸로 하기로 결정했습니다. 무엇보다 테스트를 하지 않으면 문서생성이 안된다는 점이 맘에 들었습니다.(실패하면 문서생성 안됨) 반대로 단점이 있다면 실행한 메서드별로 폴더생성되고, 동일한 이름으로 생성할 경우 마지막실행된 것으로 덮어씌웁니다. 그래서 API가 추가될때마다 문서도 추가/수정 해줘야 한다는 문제점이 있습니다. 그냥 엑셀에 관리해도 괜찮지 않을까 생각도 드네요. 여기서는 테스트 코드를 spock 를 활용(groovy 문법) 했고 gradle을 사용했습니다. 그리고 API를 호출하는 것으로는 REST Assured을 사용했습니다. Spring Rest Docs 공식문서에 REST Assured ..

[SpringBoot] Spock 이용해 테스트코드 작성하기

최근 배민 기술블로그를 보다가 Spock라는 테스트 코드 작성 소개가 있어 정리겸 남깁니다. 일단 이 테스트 방법은 SpringBoot 환경에서 해야합니다. 저는 이것도 모르고 Spock만 추가했다가 이상한 에러에 몇시간동안 삽질을 했습니다... SpringBoot가 없이 작성하게 되면 아래의 메세지를 보게됩니다. Caused by: java.lang.ClassNotFoundException: org.springframework.test.context.ContextConfiguration at java.net.URLClassLoader.findClass(URLClassLoader.java:381) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) at ..

[SpringBoot] Jenkins, SpringBoot, Gradle 사용 Jar로 빌드, 배포

서버에 Git, Gradle, JAVA 등이 설치 되어있어야 합니다. 리눅스에 Gradle이 설치되어 있지 않다면 아래 포스트를 참조하세요. [Lunux] gradle 4.x 설치 http://lemontia.tistory.com/657 작업순서는 다음과 같습니다. 1. 관련 플러그인 다운로드 - Jenkins 관리 => 플러그인 관리 에서 가능 : Bitbucket Plugin : Gradle Plugin : Post build task Plugin => 빌드로그를 판단해 batch/shell 를 실행하는 플러그인 2. 툴 관리에서 Gradle 등록 - Jenkins 관리 => Global Tool Configuration 이동 - Gradle 등록 3. 빌드할 아이템 등록 1. 관련 플러그인 다운로드..

[Spring Boot] log4jdbc를 이용하여 MariaDB 연결 시 에러.(DriverSpy claims to not accept jdbcUrl)

결론: 연결할 JDBC 를 추가했는지 확인한다. 만든 프로젝트는 log4jdbc 를 이용하여 Hikari 커넥션풀을 이용해 DB접속을 하려고 하는데, 다음의 에러가 계속 발생한다. Caused by: java.lang.RuntimeException: Driver net.sf.log4jdbc.sql.jdbcapi.DriverSpy claims to not accept jdbcUrl, jdbc:log4jdbc:mariadb://localhost:3306/test1 구글에 아무리 검색해도 알수가 없어서 일단 접속이 안되나 검토를 했는데 콘솔로 접속을해보니 접속이 가능하다. 그래서 다른 DBMS 주소를 접속해봤는데 여전히 동일한 에러가 난다. 그래서 마지막으로 혹시나 하는 마음에 JDBC 를 설치해봤더니 드디어..