반응형

분류 전체보기 469

[Spring] Spring ApplicationContext

Spring ApplicationContextApplicationContext 는 어플리케이션에 설정 정보를 제공하기 위한 Spring 어플리케이션의 주요 인터페이스이다. 런타임 시 읽기 전용이지만 필요에 따라 다시 로드할 수 있으며 응용 프로그램을 지원할 수 있다. 많은 클래스가 ApplicationContext 인터페이스를 구현하여 다양한 구성 옵션과 어플리케이션 유형들을 허용한다. 출처 : Spring Document그리고 ApplicationContext 는 다음을 제공한다고 한다.어플리케이션 컴포넌트에 접근하기 위한 Bean factory 메소드파일 리소스를 일반적인 방식으로 로드하는 기능등록된 리스너에게 이벤트를 게시하는 기능internationalization(국제화)를 지원해 메시지를 해결..

개발/Spring 2018.04.24

[Spring] 스프링캠프 2018

2018.04.21 에 스프링캠프 2018 에 참석했다. 트랙 A 와 B 가 있었는데, 나는 뭔가 트랙 A에 있는 섹션들만 들은 것 같다. 1. 희망을 찾기 위한 우리의 여정, Coupang MSA2. 이벤트 기반 분산 시스템을 향한 여정3. 11번가 Spring Cloud 기반 MSA 전환 1년간의 이야4. MSA 를 위한 Spring Cloud 와 Kubernetes 해당 섹션들을 들었는데, 내가 제일 어렵다고 생각한 섹션은 세번째 섹션이다. 우선 각 섹션들에서 주로 다룬 내용들은 다음과 같다.1. 늦게 가서 못 들었음,,2. 모놀리식 시스템, 이벤트 기반 아키텍처, 아마존 SQS와 SNS를 같이 적용3. Netflix 에서 만든 Hystrix 에 관한 내용4. Kubernetes 우선 천천히 다음의..

개발/Spring 2018.04.22

[Spring] Spring WebFlux - DispatcherHandler

Spring WebFlux - DispatcherHandlerSpring WebFlux 프레임워크의 DispatcherHandler 에 대해서 알아볼 것이다. Spring WebFlux 동작구조에 대해서 알아보고 싶었으나, 따로 동작구조에 대한 문서는 못 찾아서 DispatcherHandler 가 적절한 것 같아 이에 대해 알아보려고 한다.IntroductionSpring WebFlux 는 Spring MVC 처럼 중앙에 WebHandler 인 DispatcherHandler 가 있는데 프론트 컨트롤러 패턴을 중심으로 설계되었으며, 실제 작업이 설정(configurable)이나 delegate 컴포넌트에 의해 행해지는 동안 request 처리를 위한 shared 알고리즘을 제공한다. 이 모델은 유연하고,..

개발/Spring 2018.04.14

[Java] Observer Pattern

ObserverObserver Pattern 은 객체의 상태 변화를 관찰하는 관찰자들, 즉 옵저버들의 목록을 객체에 등록하여 상태 변화가 있을 때마다 메소드 등을 통해 객체가 직접 목록의 각 옵저버에게 통지하도록 하는 디자인 패턴이다. 주로 분산 이벤트 핸들링 시스템을 구현하는데 사용된다.위의 내용은 wikipedia 에 정의된 내용이다. 좀 더 쉽게 말하면, 한 객체의 상태가 바뀌면 그 객체에 의존하는 다른 객체들에게 연락이 가서 자동으로 내용이 갱신되는 방식 이라고 생각하면 될 것 같다.보통 옵저버 패턴은 subject 혹은 publisher (이하 publisher 라 칭하겠음) 가 observer 의 리스트와 상태를 저장하고, observer 는 publisher 를 의존하고 있는 Observer..

개발/Java 2018.04.05

[Spring] Spring5 WebFlux 란

Spring WebFlux framework예전에는 Spring-Web-Reactive 였으며, Spring 5 의 메인테마는 JDK 9였는데 이제는 WebFlux 로 바뀌었음.Reactive System복수개의 서비스로 이루어진 분산 시스템이 정상 상황 뿐만 아니라 장애 상황에서도 일관된 동작을 보장해주는 시스템이며 Microservice 가 지향하는 방향이다.용도비동기-논블록킹 리엑티브 개발에 사용효율적으로 동작하는 고성능 웹 어플리케이션 개발서비스 간 호출이 많은 마이크로서비스 아키텍처에 적합2가지 개발방식 지원기존의 @MVC 방식 (@Controller, @RestController, @RequestMapping)새로운 함수형 모델 (RouterFuction, HandlerFuction.)새로운 ..

개발/Spring 2018.04.05

[IOS] Property 'imageView' with type 'UIImageView!' cannot override a property with type 'UIImageView?'

IOS 개발 도중 TableView 를 이용해 개발을 하고 있던 중이었다. ImageView 를 IdentityInspecter 로 Outlet을 정의를 해주려고 했다. [사진 1: UIImageView 에러] 다음과 같은 오류가 발생했다. imageView 변수를 재정의 할 수 없다고 하는 것 같아서 구글링을 해보았다. stackoverflow 에서 UITableViewCell 클래스에는 이미 imageView 라는 이름의 프로퍼티가 존재하기 때문에, 같은 이름의 다른 속성을 만들 수 없다고 한다. 그렇기 때문에 다른 변수 이름을 사용하라고 했다. [출처 : https://stackoverflow.com/questions/27751890/creating-a-uiimageview-inside-a-cust..

개발/Mobile 2018.03.29

Serverless 란

Serverless 란?Serverless 란 서버가 없다는 의미가 아닌 BaaS(Backend as a Service) 또는 FaaS(Function as a Service) 에 의존해 작업을 처리한다는 의미이다.정의는 위와 같은데 쉽게 생각하면 전산실이 없다 라고 생각하면 될 것 같다. 보통 회사마다 하드웨어, 네트워크, 운영체제 등 인프라를 관리하는 전산실이 있을 것이다. 그 대신 AWS lambda라던가 FireBase 같은 것을 사용한단 뜻이다.BaaS (Backend as a Service)Firebase 같은 것을 생각하면 된다. 개발에 있어서 필요한 다양한 기능들(DB, SNS 연동 등)을 API 로 제공해 줌으로써, 쉽고 빠르게 구현할 수 있게 해주고 비용은 사용한 만큼 나가게 된다. 서..

개발/Web 2018.03.27

Scale Up 과 Scale Out

Scale Up, Scale Out이번엔 scale up, scale out 에 대해서 알아보도록 하겠다.scale up, scale out 모두 서버에 데이터 양이 많아지거나 CPU 사용률이 높아지거나 메모리가 부족할 때에 서버의 처리 능력을 증가시키는 방법이다.Scale Up서버의 크기(용량)을 증가시킨다. 즉, 고성능 장비로 대체하거나 추가한다.Scale Up의 정의는 위와 같다. 이제 각각의 장점과 단점에 대해서 알아보자장점구축이 쉽고, 관리가 쉽다.단점비용이 많이 발생한다.한 대의 서버에 부하가 집중되므로 장애 발생 시 장애 영향도가 크다.등 등Scale Out사용 중인 장비를 교체하는 것이 아닌, 같은 수준이거나 낮은 여러 대의 장비로 재구성하는 방식Scale Out의 정의는 위와 같다. 그냥..

로드밸런싱이란

Load Balancing로드 밸런싱에 대해서 알아보도록 하겠다.로드밸런싱이란 하나의 인터넷 서비스가 발생하는 트래픽이 많을 때 여러 대의 서버가 분산처리하여 서버의 로드율 증가, 부하량, 속도저하 등을 고려하여 적절히 분산처리하여 해결해주는 서비스이다.서비스 방식네트워크 상단에 로드밸런서가 존재하여 서버로 들어오는 패킷을 실제서버로 균일하게 트래픽을 부하 분산시킨다. 만약, 실제서버 중 정상적으로 작동하지 않는 경우, 이를 감지해 정상적으로 작동하는 서버로 부하 분산시킨다.장점고가의 서버로 확장하지 않고 저렴한 비용으로 다수의 서버를 증설해 비용절감 가능1대의 서버 장애가 발생하여도 서비스 중단 없이 다른 서버로 적절히 자동으로 분배하여 서비스가 계속 운용가능하게 할 수 있음추후 사용량이 많아 서버 확..

반응형