Spring Boot에서 Spring Cloud 를 사용할 때는, 반듯이 호환되는 버전을 사용해 줘야 한다. 그렇지 않으면 spring boot 기동에 실패를 하게 된다. 호환 되는 버전은 아래 테이블과 같다. Release Train Boot Version Hoxton 2.2.x, 2.3.x (Starting with SR5) Greenwich 2.1.x Finchley 2.0.x Edgware 1.5.x Dalston 1.5.x Spring Cloud 페이지에 가보면( https://spring.io/projects/spring-cloud ) Hoxton SR7 으로 되어있다. 따라서, Spring Boot는 2.2.x 나 2.3.x 버전을 사용하면 된다. 여기서 SR7은 Service Release..
Spring Cloud Config 를 사용해, Config 서버 구축을 알아보도록 하겠습니다. 먼저, Config 서버 란 application의 config 파일( property )의 최신 정보를 전달해주는 서버입니다. Config 클라이언트에서는 자체적으로 config 파일 가지고 있지 않고, 서버에 config 파일을 요청합니다. 그리고, 변경된 내용이 있으면 클라이언트에서 변경된 내용을 업데이트 할 수 있도록 해줍니다. config 파일의 저장과 버전은 GIT 에서 관리 됩니다. Spring 에서는 Spring Cloud Config 라는 모듈로 이 기능을 제공해 주고 있습니다. 대략 그림을 그려보자면 아래와 같습니다. 1. Client 에서 property 를 요청합니다. 2 ~ 4. Ser..
Spring 에서는 다른 환경에서 같은 어플리케이션 코드로 동작할 수 있도록 외부에서 설정을 할 수 있도록 제공해 준다. 로컬, 개발, 상용 등의 환경에서 그에 맞는 설정 파일을 참조하여, 설정 값을 코드에서 읽어 사용을 한다는 뜻이다. 프로파일( Profile ) 프로그래밍적으로 활성화 되는, 논리적 그루핑의 이름이라고 할 수 있다. 위에서 언급 한 것 처럼, 일반적으로 개발 환경에 따라 프로파일 명을 지정하여 주로 사용을 한다. 프로파일은 코드 단에서 빈에 정의를 할 수 있고, 설정 파일에도 정의를 할 수 있다. 이러한 프로파일은 한번에 하나 이상의 프로파일을 활성화 할 수 있다. 프로파일 활성화는, 프로그래밍 방식, 환경변수( SPRING_PROFILES_ACTIVE ), JVM -D옵션( -Dsp..
목차 1. 로깅 프레임워크 SLF4J SLF4J는 Simple Logging Facade의 약자로 프레임워크라기 보다는 여러 로깅 프레임워크의 인터페이스 역활을 합니다. 로깅 프레임워크는 SLF4J 규약에 맞게 구현을 하고, 개발자는 SLF4J 인터페이스를 호출하여 원하는 프레임워크를 사용하면 됩니다. 직접 로깅 프레임워크를 사용하지 않고, SLF4J라는 인터페이스를 사용하는 이유는 여러 이유로 로깅 프레임워크를 변경하게 될 경우 로깅 프레임워크 의존성만 변경하면 코드 변경 없이 전환이 가능하기 때문입니다. Log4j 가장 오래된 로깅 프레임워크지만, 15년도 부터 더 이상 개발이 되지 않고 있는 프레임워크로 사용하지 않는 것이 좋습니다. Logback Log4j 이후에 출시한 프레임워크로 성능이 더 향..
Springboot에서 컨트롤러를 개발하면, JSON으로 값을 받아 Java Object에 값을 저장하고, 반대로 Java Object 값을 JSON 으로 변환해서 응답으로 주는 경우가 많다.( 또는 XML ) 직접 String 으로 JSON 을 만들거나, JSON 값을 Java Object에 일일히 값을 설정해줘도 되지만 Spring과 Jackson 라이브러리를 함께 사용하면, JSON POJO 간 변환을 알아서 해준다. POJO : Plain Old Java Object의 약자로 특정 자바 모델이나 기능, 프레임워크를 따르지 않는 순수? 자바 오브젝트 이다. Jackson : Java를 위한 고성능 JSON 라이브러리이다. Spring에서는 기본으로 탑재가 되어있다. POJO 먼저, JSON 값을 저..
Springboot 내장 Tomcat Springboot는 기본적으로 내장된 웹서버를 사용한다. 내장된 웹서버인 Tomcat의 버전을 확인하는 방법은 2가지가 있다. 첫 번째는, 사용하고 있는 라이브러리의 의존성을 MVNRepository 에서 확인하는 것이고, 두 번째는, 프로젝트의 외부 라이브러리에 tomcat 버전을 확인하는 방법이다. MVN Repository 확인 dependencies { implementation 'org.springframework.boot:spring-boot-starter' } 프로젝트에 외부 라이브러리 목록을 보면, 아래와 같이 2.1.1 라이브러리를 사용하고 있음을 알 수 있다. 그러면 MVNRepositry에 가서 spring-boot-starter-tomcat 2..
ResponseEntity 는 헤더와 바디, 상태 코드로 구성되어 있고 http 응답을 나타낼 때 사용 한다. Http 응답을 편하게 구성하여 보낼 떄 사용 하는 클래스 이다. ResponseEntity 는 HttpEntity( http 헤더, 바디 ) 를 상속 받았고, HttpStatus 상태 코드를 추가 하였다. HttpEntity는 HTTP 요청, 응답을 나타내기 위한 entity로 헤더와 바디로 구성되어 있다. return ResponseEntity.ok().body(userVO); return ResponseEntity.badRequest().body(userVO); return ResponseEntity.noContent().body(userVO);class에서 함수를 이용해 상태코드, 헤더,..
설정파일에 비밀번호와 같은 민감정보를 저장하는 경우가 있는데, 보안을 위해 암호화 하는 방법을 알아보겠다. 암호화에는 jasypt( Java Simplified Encryption ) 자바 암호화 라이브러리를 사용하였다. 먼저, Springboot 용 라이브러리 및 BouncyCastle 라이브러리 를 추가한다. compile (group: 'com.github.ulisesbocchio', name: 'jasypt-spring-boot-starter', version: '2.1.1') compile group: 'org.bouncycastle', name: 'bcprov-jdk15on', version: '1.61' Configuration 클래스에 @EnableEncryptableProperties를 ..
@EnableScheduling @SpringBootApplication public class ScheduleApplication { public static void main(String[] args) { SpringApplication.run(ScheduleApplication.class, args); } } 먼저, background task executor 를 생성하기 위해 @EnableScheduling 을 추가합니다. 이 annotation 이 없으면, @Scheduled에 의해 task가 동작하지 않습니다. @Component @Log public class ScheduledTasks { @Scheduled(fixedDelay = 10000) public void runEvery10Sec(..
SpringBoot에서 돌아가는 apache Tomcat 의 http header 의 최대 사이즈가 디폴트로 8KB 로 되어있습니다. 그래서 HTTP header 에 8KB를 초과하는 값을 보내게 되면, java.lang.IllegalArgumentException: Request header is too large 에러가 발생하게 됩니다. 최대 header 사이즈를 늘려주고 싶으면, server.max-http-header-size 값을 설정해 주면 됩니다. https://docs.spring.io/spring-boot/docs/current/reference/html/appendix-application-properties.html server.max-http-header-size=40KB serve..
- Total
- Today
- Yesterday
- Linux
- JSON
- AWS
- Size
- docker
- install
- JPA
- Filter
- Postman
- logstash
- Log
- mac
- elasticsearch
- Git
- scala
- plugin
- Kibana
- tomcat
- apm
- spring boot
- maven
- gradle
- Index
- error
- Container
- Java
- spring
- SpringBoot
- Spark
- intellij
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |