본문 바로가기

분류 전체보기321

Kubernetes Kubernetes의 탄생 배경Kubernetes는 Google에서 개발된 오픈 소스 컨테이너 오케스트레이션 시스템입니다. Google의 내부 컨테이너 관리 시스템인 Borg에서 영감을 받아 개발되었습니다. Borg는 Google의 대규모 인프라에서 컨테이너를 관리하기 위해 사용된 시스템입니다. Google은 2014년에 Kubernetes를 발표했고, 2015년에 Cloud Native Computing Foundation(CNCF)에 기부했습니다.Cloud Native Computing Foundation(CNCF)CNCF는 클라우드 네이티브 컴퓨팅 기술의 개발과 채택을 촉진하기 위해 설립된 비영리 재단입니다. CNCF는 다양한 오픈 소스 프로젝트를 관리하며, 클라우드 네이티브 환경의 표준화를 지원합.. 2024. 5. 16.
Spring Boot 3.2 변경점 Logged Application Name 기본 로그 출력에 이제 spring.application.name 속성을 설정한 경우 애플리케이션 이름이 포함됩니다. 이전 형식을 선호하는 경우 logging.include-application-name을 false로 설정할 수 있습니다. Auto-configured User Details Service 자동 구성된 InMemoryUserDetailsManager는 이제 classpath에 spring-security-oauth2-client, spring-security-oauth2-resource-server, 또는 spring-security-saml2-service-provider 중 하나 이상이 있을 때 물러납니다. 마찬가지로, 리액티브 애플리케이션에서.. 2023. 11. 24.
스프링의 트랜잭션 프로그래밍 방식 트랜잭션 소스코드에 직접 트랜잭션을 넣어 관리하는 방법 트랜잭션이 필요한 모든 메서드에 선언을 해주기 때문에 유연하나 유지보수가 힘들다. 선언적 트랜잭션 AbstractPlatformTransactionManager 를 상속하여 일관되게 형식으로 적용이 가능하도록 되어있어 주로 사용한다. 스프링의 @Transactional은 CGlibAopProxy를 사용하여 구현하였는데 흐름을 분석해보자. class CglibAopProxy implements AopProxy, Serializable { private static class DynamicAdvisedInterceptor implements MethodInterceptor, Serializable { @Override @Nullable .. 2023. 10. 12.
Spring AOP 분석 Spring AOP 는 타겟이 클래스냐 인터페이스냐에 따라 두가지 방법으로 aop를 처리한다. 인터페이스 인 경우 JdkDynamicAopProxy를 사용하며 클래스인 경우 ObjenesisCglibAopProxy 를 사용하여 처리한다. public abstract class AbstractAutowireCapableBeanFactory extends AbstractBeanFactory implements AutowireCapableBeanFactory { /** * Central method of this class: creates a bean instance, * populates the bean instance, applies post-processors, etc. * @see #doCreateBe.. 2023. 10. 10.