반응형

개발 330

[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

[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

[IOS] IOS - DatePicker 의 날짜 formatting하기

IOS 에서 DatePicker 에서 날짜를 가져오려고 한다. 우선 DatePicker 는 다음과 같이 생겼다. [사진 1: IOS DatePicker] 해당 날짜를 가져오기 위해서는 다음과 같은 코드를 작성하면 된다. datepicker.date // 2018-04-17 13:18:39 +0000 위의 코드를 출력시키면 옆에 주석과 같이 출력이 된다. 자바에서는 날짜를 formatting 하기 위해서 SimpleDateFormat 이라는 클래스를 사용한다. IOS 에서도 마찬가지로 어떤 특정 클래스를 이용해 date formatting 을 한다. let formatter = DateFormatter(); formatter.dateFormat = "YY-MM-d hh:mma"; let dateString..

개발/Mobile 2018.03.22
반응형