반응형

2018/04 10

[Spring] Spring WebFlux 예제

Spring WebFlux 에 대한 간단한 예제 코드를 작성해보았다. 우선 이전에 WebFlux 에 대한 글을 작성했었지만, 다시 간단하게 WebFlux 가 무엇인지에 대해서 알아보고 가겠다. Spring WebFlux 는 비동기-논블록킹 리엑티브 개발을 할 수 있으며 효율적으로 동작하는 고성능 웹 어플리케이션 개발을 할 수 있는 서비스 간 호출이 많은 마이크로서비스 아키텍처에 적합한 프레임워크이다. (참고로 Spring WebFlux 는 기본적으로 tomcat이 아닌 netty 를 사용하고 있다.) 필자는 Spring Boot 2.0.1 버전을 사용하였다. org.springframework.boot spring-boot-starter-webflux org.springframework.boot spri..

개발/Spring 2018.04.30

[Android] 안드로이드 TabLayout Tab 터치 이벤트

[사진 1: TabLayout] 사진과 같이 ViewPager 와 TabLayout 을 사용해 페이지를 만들었다고 하자. 이 때 [TAB 1], [TAB 2], [TAB 3] 와 같은 탭을 클릭할 때 팝업창을 띄운다던가의 이벤트를 만들고 싶다. TabLayout tabLayout = (TabLayout)findViewById(R.id.tabs); tabLayout.setupWithViewPager(mViewPager);아마 다음과 같은 코드가 작성 돼 있을 것이다. 우선 TabLayout 의 child view 를 가져온다. LinearLayout tabStip = ((LinearLayout) tabLayout.getChildAt(0)); TabLayout 의 child view 는 LinearLayou..

개발/Mobile 2018.04.27

[자료구조] 그래프

Graph이번엔 그래프에 대해서 알아보도록 하겠다. Introduction일련의 정점(node, vertex, 꼭짓점) 집합 V와 간선(edge, 변) 집합 E로 구성된 자료구조의 일종이다. 일반적으로 정점엔 데이터, 간선엔 정점과 정잠 사이의 관계 정보가 포함되어 있다.여기서 []는 정점이다([V1]). 정점 사이에는 간선이다(e1). [V1] ------ e1 ------- [V2]------e3------[V4] | [V3] ---- e2---- | | e4 | [V5] G = (V, E) V = {V1, V2, V3, V4, V5} E = {E1, E2, E3, E4} e1 = (V1, V2) e2 = (V2, V3) e3 = (V2, V4) e4 = (V3, V5) 쉽게 한 마디로 말하면 사물들..

CS/알고리즘 2018.04.25

P2P 란?? (P4P)

P2P (Peer to Peer)이번에 P2P 에 대한 문서를 작성하는 이유는 좀 더 자세하고 확실하게 알기 위해서이다. 딱히 P2P 에 관심을 가지고 개발할 일이 없다보니 단순히 파X노리 같은 P2P 방식의 파일 다운로드 서비스 라고 생각하고 있었다. 이제 한 번 P2P 에 대해서 알아보자~ IntroductionP2P 란 기존의 서버와 클라이언트 개념이나 공급자와 소비자 개념에서 벗어나 개인 컴퓨터끼리 직접 연결하고 검색함으로써 모든 참여자가 공급자인 동시에 수요자가 되는 형태참고로 P2P 방식은 크게 2가지 방식이 있다.서버의 도움없이 컴퓨터끼리 직접 통신하는 것서버의 도움을 받아 컴퓨터끼리 통신하는 것P2P 의 정의는 위와 같다고 한다. 서버의 도움을 받는 예를 들어보겠다.A 란 사람은 파x노리 ..

[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
반응형