일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 항해99
- System.out
- 합병 정렬
- 자바할래
- 제네릭 와일드 카드
- public 필드
- 정렬
- Study Halle
- Effective JAVA
- raw 타입
- 자바스터디
- 브릿지 메소드
- 프리미티브 타입
- github api
- annotation processor
- Java
- junit 5
- 접근지시자
- 로컬 클래스
- 익명 클래스
- 제네릭 타입
- 함수형 인터페이스
- 상속
- System.err
- 바운디드 타입
- Switch Expressions
- 스파르타코딩클럽
- auto.create.topics.enable
- 람다식
- System.in
- Today
- Total
목록IT Study/Spring Boot (6)
코딩하는 털보
@Transactional 어노테이션에 대한 이해도가 낮아 발생했던 문제를 해결하면서 공부한 내용을 기록한다.실제 작성했던 코드는 아니지만 동일한 상황을 재현@Service@RequiredArgsConstructorpublic class MyService { private final MyEntityRepository myEntityRepository; private final MyEntityHistoryRepository myEntityHistoryRepository; public void saveEntity(String name) { saveEntityAndHistory(name); } @Transactional protected void saveEntityAndHistory(Strin..
Spring Cloud OpenFeign개요MSA에서는 단위 기능을 하는 서비스들이 여러개 동작하며 그로인해 서비스 사이의 통신이 이루어져야 합니다.마이크로 서비스 사이의 통신은 동기/비동기 모두 가능합니다.기존에는 서비스 간의 동기 통신을 위해서 resttemplate으로 http client를 생성하여 통신을 했었습니다.Spring Cloud 관련 글을 읽던 중 OpenFeign이라는 스팩이 있어 공유하고자 합니다.Spring Cloud OpenFeignSpring Cloud OpenFeign공식문서에서는 OpenFeign를 선언적 REST 클라이언트라고 설명합니다.RestTemplate의 경우 아래와 같이 클래스 코드를 작성하게 됩니다.@Service@RequiredArgsConstructorpub..

Kubernetes vs Spring Cloud개요기존 인프라를 Kubernetes로 변환하면서Kubernetes의 객체들이 MSA를 위해 사용하던 Spring Cloud 서비스들의 역할을 대체할 수 있게 되었다.물론 둘다 함께 사용할 수는 있겠지만 동일한 역할을 하는 요소들이 여러개 있게 되므로동일한 작업을 두번 할 수 있다.구조가 복잡해진다.디버깅이 어려워진다.불필요한 자원 사용량이 증가할 수 있다.따라서 우리 팀도 어떤 기술을 사용해야 할지 결정하는 것이 좋을 것 같다.내용필요 기술과 그에 대한 스펙은 Spring Cloud와 Kubernetes에서 아래와 같이 구분된다.https://velog.io/@mdev97/Project-Spring-Cloud-Kubernetes현재 우리는 Spring Cl..
스프링 부트 활용 (기술 연동) 스프링 웹 MVC 스프링 부트 MVC는 자동 설정(WebMvcAutoConfiguration)을 통해 여러 기본 기능을 제공한다. 스프링 MVC 기능 확장하기 @Configuration + WebMvcConfigurer @Configuration public class WebConfig implements WebMvcConfigurer { } 스프링 MVC 기능 재정의하기 @Configuration + @EnableWebMvc @Configuration @EnableWebMvc public class WebConfig implements WebMvcConfigurer { } HttpMessageConverters Http 요청 본문을 객체로 변경하거나, 객체를 Http 응..
스프링 부트 활용 (핵심 기능) SpringApplication 기본 로그 레벨은 INFO이다. 여러 FailureAnalyzer가 등록되어 있어 애플리케이션 에러 출력 효과를 볼 수 있다. 배너를 변경할 수 있으며(classpath:banner.txt 또는 Banner 객체로 구현) 여러 변수를 사용할 수 있다. 배너 끄기 app.setBannerMode(Banner.Mode.OFF); 스프링부트는 여러가지 ApplicationEvent를 지원한다. 예를들어 애플리케이션이 시작될 때 또는 시작을 마쳤을 때 등이 이벤트로 등록되어 있다. 보통 이벤트 핸들러(리스너)는 빈으로 등록하면 되지만, 만약 애플리케이션이 시작되는 이벤트 같이 ApplicationContext가 생성되기 전의 이벤트들의 처리는 직접..
스프링 부트의 원리 의존성 관리 spring-boot-parent POM의 부모인 spring-boot-dependencies에는 dependencyManagement로 여러 의존성에 대한 버전을 정해주고 있다. 이를 통해서 의존성을 추가할 때 버전에 정보를 직접 기입하지 않더라도 사용하는 spring boot의 버전에 맞는 의존성 버전이 선택된다. org.apache.activemq activemq-amqp ${activemq.version} ... 의존성 관리 응용 (Maven) spring-boot-data-jpa 의존성 추가하기 버전을 명시하지 않아도 된다. org.springframework.boot spring-boot-starter-data-jpa 만약 버전을 명시하면 spring-boot-..