본문 바로가기

반응형

Spring

[SpringDoc] Spring에서 Swagger 문서 작성 (with springdoc-openapi) SpringDoc springdoc-openapi 라이브러리는 스프링 부트 프로젝트의 API 문서 생성 자동화를 해준다. 지원하는 주석을 기반으로 작성된 API의 기본적인 정보 및 추가로 입력된 정보를 추론하여 작성된다. 최신버전 확인 및 공식 문서 OpenAPI 3 Library for spring-boot Library for OpenAPI 3 with spring boot projects. Is based on swagger-ui, to display the OpenAPI description.Generates automatically the OpenAPI file. springdoc.org SpringDoc 종속성 추가 및 설정 // maven org.springdoc springdoc-opena.. 더보기
[JMeter] 10분만에 EC2에 Spring Boot 프로젝트 배포 및 RDS(Postgres) 연결 정리 시작전 참고 사항 기본적으로 spring 프로젝트의 개발 및 테스트가 끝났다고 가정하고 진행함 docker, nginx 등 부가 프로그램은 사용하지 않음 ssl 인증서 적용하지 않음 위 생략된 내용들은 해당 블로그 다른 글들에 작성되어있음 진행 순서 EC2 인스턴스 생성 RDS 인스턴스 생성 EC2, RDS 보안 설정 EC2에 ssh 접속하여 Java,postgres 설치 EC2에서 RDS 접속하여 DB 생성 Spring Boot DB연결 설정 및 빌드 및 Jar파일 생성 EC2에 scp 명령어로 Jar파일 전송 및 실행 postman으로 접속 확인 EC2 인스턴스 생성 (같은 내용의 작성된 글로 대체함) https://kanoos-stu.tistory.com/29 [AWS-EC2] EC2 인스턴스 생성.. 더보기
[Spring Cloud] Resilience4j 를 이용한 circuitbreaker 기능 구현 Circuitbreaker란 circuitbreaker란 전기 회로의 회로 차단기에서 차용한 개념이며 주식 용어에서도 사용이 된다. 평상시에는 전기가 흐르거나 거래를 자유롭게할 수 있지만(close state) 급격한 이상 현상이 발생했을 때 회로를 차단 또는 주식 시장의 거래를 정지하여(open state) 각각 회로 보호와 시장의 안정을 위한 장치이다. 여기서 close state가 정상적인 상태이고 open state가 차단상태인지 헷갈릴 수 있는데 이는 전기회로에서 스위치의 개념을 이해해야한다. 왼쪽 회로와 같이 스위치가 닫혀있어야지 전류가 흐르고 회로가 정상 작동하게 되고 오른쪽과 같이 스위치가 열려있으면 전류는 흐리지 못하고 회로는 차단이 된다. micro service 에서도 이와 같은 개념.. 더보기
[Spring Boot] Websocket 통신 시 JWT 인증 (interceptor 적용) Interceptor 적용을 위해 configureClientInboundChannel 메서드를 재정의 @Configuration @EnableWebSocketMessageBroker class WebsocketConfig( private val env: Environment ) : WebSocketMessageBrokerConfigurer { //... /** interceptor 적용 **/ override fun configureClientInboundChannel(registration: ChannelRegistration) { registration.interceptors(object : ChannelInterceptor { override fun preSend(message: Message, .. 더보기
[Spring Boot] 소켓 통신을 위한 Websocket 서버 구성 spring boot websocket 종속성 추가 implementation("org.springframework.boot:spring-boot-starter-websocket") 위가 같이 종속성을 추가하면 사용중인 spring boot의 버전과 호환되는 버전으로 설정된다. websocket 환경설정 @Configuration @EnableWebSocketMessageBroker class WebsocketConfig( private val env: Environment ) : WebSocketMessageBrokerConfigurer { override fun configureMessageBroker(config: MessageBrokerRegistry) { config.enableSimpleBro.. 더보기
[Spring Boot] log4j2 보안 문제 해결 방안 - CVE-2021-44228 발단 및 문제점 2021년 12월 10일 오전 9시 40분 경, 아파치 소프트웨어 재단의 자바로 제작된 Log4j2 에 보안 문제가 발생하였다. 이 문제는 하트블리드과는 비교도 안 될만큼 역사상 최악의 보안 결함일 수도 있다고 한다. 해당 보안 문제의 이름은 CVE-2021-44228 -> Log4Shell 혹은 LogJam이라고 명명될 예정 Log4j2를 이용하여 원격 코드 실행이 가능한 JNDI 인젝션 취약점으로 사용자의 입력으로 발생한 로그를 기록할 때 해커의 임의코드 실행이 가능하게 된다. 즉 해커가 악용한다면 서버에 접근하는 것 만으로 사용자의 컴퓨터를 사실상 원격 조정할 수 있다고 한다. 이러한 취약점으로인해 Log4j 프로젝트를 맡는 아파치 소프트웨어 재단은 Log4Shell에 CVSS 점수.. 더보기
[SpringBoot] DB 연결 없이 Spring Boot 실행 시 에러 해결 증상 *************************** APPLICATION FAILED TO START *************************** Description: Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured. Reason: Failed to determine a suitable driver class Action: Consider the following: If you want an embedded database (H2, HSQL or Derby), please put it on the classpath. If you have d.. 더보기
[Spring] Spring Boot 로그 - slf4j 와 Logback, Log4j2 의 차이점 Spring Boot의 로그 2021-11-11 11:10:58.789 INFO 40789 --- [ main] org.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/9.0.48] 2021-11-11 11:10:59.074 INFO 40789 --- [ main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext 2021-11-11 11:10:59.075 INFO 40789 --- [ main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationC.. 더보기

반응형