스프링 5

BeanFactory와 ApplcaitonContext

BeanFactory 와 ApplicationContext IoC 컨테이너라고 하는 스프링 컨테이너는 DI의 관점에서는 BeanFactory라고도 하고, ApplicationContext라고도 합니다. BeanFactory는 기본적인 bean의 getBean()(조회기능)을 제공하는 최상위 인터페이스입니다.ApplicationContext는 BeanFactory를 상속받아 부가적인 기능을 추가한 인터페이스입니다. 일반적으로 스프링의 IoC 컨테이너는 애플리케이션 컨텍스트를 말하게 됩니다. BeanFactory - Lazy loading ApplicationContext - Eager loading 또한 둘의 차이점으로써 BeanFactory는 on-demand방식으로 빈을 사용시에만 로딩시켜줍니다. 반면..

스프링/기본 2022.05.31

좋은 객체 지향 설계(SOLID)

인터페이스를 안정적으로 설계하기 객체지향의 꽃은 다형성이다. -> 스프링은 다형성을 극대화해서 이용할 수 있게 도와준다 스프링에서 이야기하는 제어의 역전(IoC), 의존 관계주입(DI)은 다형성을 활용해서 역할과 구현을 편리하게 다룰 수 있도록 지원한다. 좋은 객체 지향 설계의 5가지 원칙 SOLID 클린코드의 저자 로버트 마틴이 좋은 객체 지향 설계의 5가지 원칙을 정리하였다. 1. SRP 단일 책임 원칙(Single responsibility principle) 한 클래스는 하나의 책임만 가져야 한다. 하나의 책임이란 말이 애매모호 하기 때문에 변경이 만약 있을 때 파급효과가 적을수록 단일 책임 원칙을 잘 따랐다고 생각할 수 있다. ex) UI, 객체의 생성과 사용을 분리 2. OCP 개방-폐쇄의 원..

스프링/기본 2022.05.25

[스프링 클라우드] Ch03. API 게이트웨이

API 게이트 웨이란 API 게이트웨이는 실제 백엔드 서비스 또는 데이터와 접속하고 API 호출에 대한 정책, 인증 및 일반 액세스 제어를 적용하여 중요한 데이터를 보호하는 트래픽 관리자입니다. API 게이트웨이는 서비스의 확장성과 고가용성을 보장합니다. 요청을 적절한 서비스로 라우팅하고 요청자에게 응답을 다시 보내는 기능을 담당합니다. API 게이트웨이는 데이터와 API 간의 보안 연결을 유지하고 회사 내부 및 외부에서 로드 밸런싱을 포함한 API 트래픽 및 요청을 관리합니다. 게이트웨이는 중요한 데이터를 보호하기 위해 API 호출에 대한 정책, 인증 및 일반 액세스 제어를 적용합니다. API 게이트웨이는 클라이언트의 모든 API 호출을 가져와 요청 라우팅, 구성 및 프로토콜 변환을 사용하여 올바른 마..

스프링/cloud 2022.05.15

[스프링 클라우드] ch02 스프링 클라우드 소개

The Twelve-Factor App 서론 코드를 '클라우드 네이티브'로 만든다는 것은 12-factor의 configuration, statelessness, logging, and connecting to backing services 등을 다루는것을 의미합니다. 소개 현대 시대에 소프트웨어는 일반적으로 웹 앱 또는 SaaS(Software-as-a-Service)로써 제공 됩니다. Twelve-Factor App은 다음과 같은 SaaS앱을 구축하기 위한 방법론입니다. 설정 자동화에 선언적 형식을 사용 하여 프로젝트에 참여하는 신규 개발자의 시간과 비용을 최소화합니다. 실행 환경 간의 최대 이식성 을 제공 하는 기본 운영 체제와 깨끗한 계약 을 맺습니다. 서버 및 시스템 관리가 필요 ..

스프링/cloud 2022.05.13

[스프링클라우드] ch01. 웹 서비스 확장 전략

웹 서비스 확장 전략 한 서버의 성능을 높이는 스케일업 작업은 한계가 있기때문에 분산 처리를 위해 여러 대의 서버들을 놓게 되는 스케일아웃(Scale-out) 작업을 하게 되는데,이 때 서버들로 대규모의 네트워크 트래픽 분산 처리하는 기술을 로드밸런싱(Load Balancing)이라고 합니다. 스케일업을 통한 확장 ‘스케일 업’은 서버에 CPU나 RAM 등을 추가하거나 고성능의 부품, 서버로 교환하는 방법을 의미합니다. 예를 들어, ‘1’의 처리 능력을 가진 서버 한 대를 ‘5’의 처리 능력을 가진 서버로 업그레이드시키는 것입니다. CPU나 RAM을 추가하기로 했다면 현재 서버에 추가 부품을 장착할 수 있는 여유 슬롯이 있어야 하며, 그렇지 않은 경우 서버 자체를 고성능으로 교체하는 것이 필요합니다. 스..

스프링/cloud 2022.05.12