Spring Boot 썸네일형 리스트형 [Java] error occurred during initialization of VM java/lang/noClassDefFoundError: java/lang/Object Error 원인 및 해결 방법 "error occurred during initialization of VM java/lang/NoClassDefFoundError" 오류는 Java Virtual Machine (JVM)이 클래스를 찾지 못하거나 로드하지 못할 때 발생하는 예외입니다. 이 오류는 Java 클래스 파일이나 필요한 라이브러리가 없을 때 발생할 수 있습니다. 클래스 파일이 없는 경우: 클래스 파일이 존재하지 않거나, 클래스 파일의 경로가 JVM에게 올바르게 알려져 있지 않은 경우에 발생할 수 있습니다. 클래스 파일이 손상된 경우: 클래스 파일이 손상되어 JVM이 올바르게 읽을 수 없는 경우에 발생할 수 있습니다. 필요한 라이브러리가 누락된 경우: 어떤 라이브러리나 JAR 파일이 필요한데 존재하지 않거나, 클래스 패스에 등록.. 더보기 [ Spring Boot ] Resource 파일 읽기 리소스(Resource) Maven이나 Gradle을 사용하여 스프링 프로젝트를 만들게 되면 src/main/resources 디렉토리에 리소스 파일을 저장하게 되어있습니다. *.java 파일처럼 컴파일 대상이 되는 소스파일이 아닌 파일들을 리소스 디렉토리에 저장하여 관리합니다. 프로젝트를 빌드하면 리소스 파일들은 CLASS_PATH에 위치하게 됩니다. 리소스 파일 가져오기 스프링 프레임워크에는 이러한 CLASS_PATH에 저장된 리소스 파일을 쉽게 가져올 수 있도록 해주는 ClassPathResource클래스를 제공합니다. Path filePath = ResourceUtils.getFile("classpath:sample.txt")); 예를들어, src/main/resources/sample.txt 에.. 더보기 [Spring Boot] Spring Boot Actuator란 소개 Spring Boot 애플리케이션의 운영 정보와 모니터링을 제공하는 라이브러리입니다. 실행 중인 애플리케이션의 로그, 메모리 사용량, HTTP 요청 수 등의 정보를 수집할 수 있습니다. HTTP 방식과 JMX 방식이 있으며 대표적으로 많이 쓰는 것이 Health Check 용도의 actuator health endpoint입니다. Tip 프로젝트에 'Spring Security'를 추가하면 HTTP를 통해 노출에 민감한 엔드포인트는 권한을 분리하여 보호할 수 있다. gradle 파일 dependency dependencies { implementation 'org.springframework.boot:spring-boot-starter-actuator' } 설정 파일 예제 # Spring Actua.. 더보기 [Spring Boot] Multi Profiles 다중 프로파일 적용 하는 방법 1.env file example # application-one.yml spring: profiles.include: - two # 포함시킬 프로파일 - three # 포함시킬 프로파일 same: who: I am one # 중복되는 프로퍼티 diff: # 중복되지 않는 프로퍼티 one: 1111 -------------------------------------------- # application-two.yml same: # 중복되는 프로퍼티 who: I am two diff: # 중복되지 않는 프로퍼티 two: 2222 # application-three.yml same: # 중복되는 프로퍼티 who: I am three diff: # 중복되지 않는 프로퍼티 thre.. 더보기 [Spring Boot] Netflix zuul을 이용한 API ByPass zuul서버는 API Gateway이다 API Gateway는 API의 요청자인 Client(웹어플리케이션 또는 모바일앱)와 API의 제공자인 backend service를 연결하는 중계자 API Gateway가 필요한 이유 인증/인가: 부적절한 요청을 차단하여 Backend service를 보호 L/B & Routing: Client의 요청에 따라 적절한 backend service를 로드밸런싱하고 연결(라우팅) Logging: 유통되는 트래픽 로깅 Circuit Break: Backend service 장애 감지 및 대처 모든 frontend의 요청을 라우팅하므로 다음의 usecase에도 활용할 수 있습니다. 점진적으로 레거시 시스템을 신규 시스템으로 교체: Strangler pattern 적용 트래.. 더보기 [Spring Boot] ssl 인증서 적용 및 발급(Let's Encrypt ) ssl 인증서 발급 방법. 1) Let's Encrypt SSL : CA(Certificate Authority, 인증기관)에서 유료로 발급해주는 인증서로 보안연결(https)을 가능하게 한다. https의 보급을 위해 mozilla, cisco, chrome, meta, aws 등 다양한 기관에서 후원을 해 2016년에 Let's Encrypt 라는 이름의 무료 인증기관이 생겼다. - https://letsencrypt.org/ 그러나 이 무료 인증기관은 한 가지 단점이 있는데, 3개월마다 SSL을 갱신해야한다. Certbot은 3개월마다 갱신해야하는 번거로움을 자동화해주는 오픈소스이며, Let's Encryt에서도 이 방식을 추천한다. https://certbot.eff.org/ 2) Certbot .. 더보기 [Spring Boot] war 패키징 방법 Spring Boot를 내장 tomcat을 사용하는게 아닌 tomcat에 따로 배포를 하여야하는데 war로 배포를 하여야한다.. war로 빌드하여 배포를 하는 방법이다.. maven을 기준으로 작성하였습니다. pom.xml war 추가 jar로 되어있는 경우 변경 톰캣이 Spring boot에 내장 되어있는 경우 톰캣 포함된 Dependency 제거 SpringBootApplication 파일에 추가 기존 public class MyApplication { } --> 추가한 코드 public class MyApplication extends SpringBootServletInitializer { } mvn package 더보기 [Spring Boot] spring-integration-ip 이용한 Tcp 통신 Overview: Spring Integration은 IP를 통해 메시지를 주고받기 위한 채널 어댑터를 제공합니다. UDP(사용자 데이터그램 프로토콜) 및 TCP(전송 제어 프로토콜) 어댑터가 모두 제공됩니다. 각 어댑터는 기본 프로토콜을 통한 단방향 통신을 제공합니다. 또한 Spring Integration은 간단한 인바운드 및 아웃바운드 TCP 게이트웨이를 제공합니다. 양방향 통신이 필요할 때 사용합니다. pom.xml - 필요 라이브러리 작성 org.springframework.integration spring-integration-ip 5.5.18 TcpServerConfig.java - 설정 파일 import java.util.concurrent.Executors; import org.sprin.. 더보기 이전 1 2 3 다음