본문 바로가기
반응형

개발249

IntelliJ Tomcat 설정 IntelliJ > Preferences 에서 아래 메뉴를 통해 로컬의 Tomcat서버를 등록한다. 프로젝트의 Run Configuration을 실행한다. Run/Debug Configurations 에서 "+" 눌러서 Tomcat Server > Local 선택 아래와 같이 확인이 가능하다 "하단에 Warning: No artifacts marked for deployment" 가 뜨는데 "Fix" 버튼을 클릭하거나, 'Deployment' 탭에서 "+"버튼을 클릭하고 'Artifact...'를 선택 후 war exploded를 선택 - war exploded는 서버 재시작없이 어플리케이션 갱신 가능함, war 패키지 형태가 아닌 압축 해제 후 배포를 의미함 Application Context Path.. 2021. 12. 9.
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.
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.
반응형