본문 바로가기
반응형

분류 전체보기323

SpringBoot 외장Tomcat과 SpringBootServletInitializer SpringBoot를 사용하면 일반적으로 내장Tomcat을 사용한 jar로 배포를 한다. 가끔 상황에 따라서 외장Tomcat으로 war형태로 배포를 진행해야하는 경우가 있는데 이때 SpringBootServletInitializer가 필요하다. @SpringBootApplication public class Application extends SpringBootServletInitializer { public static void main(String[] args) { SpringApplication.run(Application.class, args); } @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder app.. 2021. 12. 9.
Jacoco 동적 분석 테스트 및 Jenkins 연동 jacoco(Java Code Coverage) 분석 방법 테스트 코드를 잘 작성했다면 maven, gradle의 jacoco plugin을 사용해서도 테스트 커버리지를 체크 가능하지만, 어플리케이션 구동 시켜놓은 상태에서 기능들에 대해 테스트 수행을 했는지 체크하기 위해 was agent 형식으로도 jacoco를 적용가능하다. 1. jacoco 다운로드 https://www.eclemma.org/jacoco/ 에서 .zip 파일 다운로드/압축풀기 lib/ 디렉토리에는 jacocoagent.jar, jacococli.jar 파일들 사용할 예정이다. 2. was 실행(with agent) 어플리케이션 war를 실행 할 때 jacoco관련 -javaagent 옵션을 추가형 실행한다. java -javaage.. 2021. 12. 8.
java 어플리케이션 실행 시 JVM args(JAVA_OPTS) 적용 java 어플리케이션 콘솔에서 실행 시 jvm argument를 설정하는 방법을 정리해본다. SpringBoot java -jar 사이에 아래와 같이 java [jvm옵션] -jar app.jar 을 설정하면 된다. java -javaagent:path/to/applicationinsights-agent-3.2.3.jar -jar jvm옵션(ex. javaagent)에 어떤 문자나 길이 등으로 'no matches found: -javaagent: ... ' 뜨면서 실행 안될 때가 있는데 이럴 때는 jvm옵션을 따옴표("")로 묶어주면 정상 실행이 된다. java -javaagent:"path/to/applicationinsights-agent-3.2.3.jar" -jar Docker Docker 컨테이.. 2021. 12. 8.
SpringBoot Jsaypt 사용 application.yml 암호화 Jsaypt(Java Simplified Encryption) 암호화 라이브러리 적용 테스트 기본 사용 Maven Dependency 추가 com.github.ulisesbocchio jasypt-spring-boot-starter 2.0.0 라이브러리 테스트 @RunWith(SpringRunner.class) @SpringBootTest public class JasyptTest { Logger log = (Logger) LoggerFactory.getLogger(JasyptTest.class); @Test public void simpleEncTest() { PooledPBEStringEncryptor encryptor = new PooledPBEStringEncryptor(); SimpleStrin.. 2021. 12. 3.
SpringBoot jar를 타 프로젝트에 Dependency 라이브러리로 추가 SpringBoot로 개발된 프로젝트를 다른 프로젝트에 jar Dependency로 종속성을 걸어서 사용할 경우 실제 빌드하고 실행을 하면 jar내에 있는 클래스들에 대해 ClassNotFoundException이 발생한다. 이유는 SpringBoot는 jar를 생성할 때 기본적으로 독립적으로 실행이 가능한 jar를 생성하기 때문에 jar 내부를 보면 BOOT-INF 디렉토리가 생성되고 필요한 클래스 및 의존 라이브러리들이 내부에 존재 함. jar가 위와 같은 구조에서는 독립적인 실행은 가능하지만, 다른 프로젝트에 의존성 설정하고 라이브러리로 사용은 불가능하다 해결 방법은 pom.xml에서 spring-boot-maven-plugin 의 repackage 설정을 추가한다. org.springframewo.. 2021. 12. 3.
철학의 힘 - 김형철 만족없는 삶에 던지는 21가지 질문 철학은 우리에게 어떤 힘을 주는가? 바로 스스로 생각하는 힘이다. 무엇이 쓸모 있고 없는지 바로 우리 스스로 판단하는 것이다. 철학,인문학을 만나고 그 만남이 얼마만큼 쓸모 있을지는 온전히 자신에게 달려있다. 1. 인생은 왜 짧은가 인생은 흘러가는 것이 아니라 채워지는 것이다. 우리는 하루하루를 보내는 것이 아니라 내가 가진 무엇으로 채워가는 것이다. - 존 러스킨 인생이 짧은 3가지 이유 - 할 일이 많아서, 할 일은 산적한데 시간은 항상 부족하다 - 과거를 망각하기 때문 - 시간을 낭비하기 때문 이 순간 후에 무슨 일이 일어날지 궁금하고, 내가 해낼 일이 궁금해진다. 그렇게 궁금해지지는 순간 우리는 인생을 살 만한 가치가 있는 것으로 여기고 있는 것이다 - 니체 계.. 2021. 12. 2.
SonarQube 설치 및 구성 SonarQube - 코드 정적분석 툴(Tool) - 정적분석: 실제 프로그램을 실행하지 않고 코드의 패턴을 바탕으로 Bug, Code Smell, 보안취약점 등을 분석 - 기타 정적분석 툴: PMD, FindBugs, CheckStyle 다운로드 및 설치 - JDK 1.8 기준 테스트 wget https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-7.8.zip // non-root user(root user로 실행 불가) unzip ./sonarqube-7.8.zip // 실행 옵션 [console | start | stop | force-stop | restart | status | dump] sonarqube-7.8/bin/linux-.. 2021. 11. 30.
SpringBoot Scouter APM 구성 Scouter 오픈소스 APM (Application Performance Monitoring) Tool로써 어플리케이션 및 Host OS 자원에 대한 실시간 모니터링 기능을 제공 APM : Application performance montoring / application performance management 모니터링 대상 (전용 agent) Java Agent : Web application (on Tomcat, JBoss, Resin ...), Standalone java application Host Agent : Linux, Windows, Unix 모니터링 대상 (Telegraf support) Redis, nginX, apache httpd, haproxy, Kafka, MySQL, M.. 2021. 11. 30.
반응형