iOS 개발에서 정말 많이 쓰이는 Delegation Pattern에 대해서 알아보겠습니다. Delegate 위임하다 Delegate Pattern 하나의 객체가 다른 객체를 대신해 동작 또는 조정할 수 있는 기능을 제공합니다. 다시 말해, 어떤 객체에서 일어나는 이벤트에 관한 혹은 어떤 객체에 뿌려줄 데이터에 관한 코드를 다른 객체에서 작성해주는 것을 말합니다. 그리고 이러한 행위는 반드시 protocol을 동반합니다. CEO/ secretary Delegate Pattern을 이해하기 정말 좋은 Bob 님의 블로그 예시 '사장과 비서'를 인용해서 설명을 이어가겠습니다. protocol JobDelegate{//protocol : 서로간의 소통을 위한 약속 func passData(jobResource..
ViewController를 생성하게 되면 저 viewDidLoad() 함수를 보실 수 있습니다. 뷰의 상태변화 감지 메서드 뷰의 상태와 레이아웃 변화에 따라 호출되는 메서드를 의미합니다. 각각에 대해서 알아보아요 뷰의 상태 변화 메서드 뷰가 나타나거나 사라지는 등 뷰가 화면에 보이는 상태가 변화할때 호출되는 메서드입니다. 각 메서드가 호출 될때의 시점이 다르다 보니 그에 따라 함수 내부에서 수행하면 좋은 작업도 서로 다릅니다. viewDidLoad() 뷰 계층이 메모리에 로드된 직후 호출되는 메서드 뷰의 추가적인 초기화 작업을 하기 좋은 시점 메모리에 처음 로딩 될때 1회 호출되는 메서드로, 메모리 경고로 뷰가 사라지지 않는 이상 다시 호출되지 않음 viewWillAppear(_ animated: Bo..
저번 포스팅에 이어서 이번에도 화면전환에 관한 얘기를 해보자 합니다 모달(Modal) 사용자의 이목을 끌기위한 화면전환 기법입니다. 화면위에 다른 화면을 띄워(Presenting) 사용자에게 어떠한 입력이나 확인을 요구합니다. 저번에 톺아보았던 '내비게이션 인터페이스'와는 달리 정보의 흐름이 아니라 단지 사용자로부터 입력을 받기위해 이목을 끄는 방식입니다. 그러다 보니 모달로 표현되는 화면은 사용자가 빠르게 응답할 수 있도록 심플해야 합니다. 뷰컨트롤러는 2가지 방법으로 화면상에 나타납니다. 저번에 톺아봤던 내비게이션처럼 컨테이너뷰 컨트롤러에 임베드하거나, 이번에 배울 프레젠테이션을 통해서 입니다. Presenting a ViewController present 기능은 UIViewController 클래..
내비게이션 인터페이스란 iOS 에서 정말 많이 사용되는 인터페이스인데요, 주로 계층적 구조의 화면전환을 위해 사용되는 드릴 다운 인터페이스(drill-down interface)입니다. 드릴 다운 인터페이스?? 그림처럼 페이지를 안으로 타고타고 가는 방식을 말합니다 내비게이션 인터페이스를 구현하기 위해서는 내비게이션 컨트롤러가 필요하구요 내비게이션 컨트롤러 내비게이션 컨트롤러는 2개의 뷰를 나타냅니다. 하나는 내비게이션 바(또는 툴바)이고 다른 하나는 내비게이션 스택에 쌓일 컨텐트 뷰입니다. 내비게이션 스택 컨텐트 뷰에 표시될 ViewController들의 배열입니다. 이런 식으로 현재 보이는 페이지가 스택의 top에 위치하게 되고 뒤로 가기(버튼/스와이프)를 함에 따라 스택에서 pop을 하고, 스택의 ..
먼저 쿠키와 세션은 왜 사용할까요 ? 우리가 익숙한 서버-클라이언트 모델을 따르는 HTTP 프로토콜의 특징이자 약점을 보안하기 위해 사용합니다. 서버-클라이언트 통신을 할 때마다 클라이언트를 인증해야만 합니다. 그 이유는 아래의 2가지 특성 때문입니다. 클라이언트가 서버에게 request 를 보내면 그에 맞는 response를 보내고 접속을 끊는 특성 (Connectionless : 비연결지향) 연결을 끊는 순간 통신이 끝나며 상태 정보는 유지하지 않는 특성 (Stateless : 상태정보유지 x) 비연결지향의 특성 덕에 계속해서 통신 연결을 유지하지 않아 리소스 낭비가 줄어드는 장점(특히 불특정 다수를 대상으로 할 때)이 있는 동시에 통신할 때마다 새로 커넥션을 열기 때문에 클라이언트는 인증을 계속해야..
보호되어 있는 글입니다.
RxJava를 배우기에 앞서 Java 붙은 Rx란 어떤 것인지에 대해서 먼저 알아보려고 합니다. Rx(ReactiveX) 란 ? 비동기 이벤트 기반 프로그래밍 라이브러리 Observer 패턴 + Iterator 패턴 + Functional 프로그래밍 Reactive(비동기 이벤트 방식) X(이벤트 처리 방식) 여기서 Reactive(반응형) 프로그래밍 과 Functional(함수형) 프로그래밍이라는 개념이 나오네요... 먼저 이 개념들을 바로 잡고 넘어가 봅시다 ㅎㅂㅎ Reactive(반응형) Programming ? In computing, reactive programming is a declarative programming paradigm concerned with data streams and ..