전체 글

전체 글

    [iOS] Factory Method Pattern

    데이터 가공하는 일을 Interactor에서 작업을 하고 있었습니다. 그런데 해당작업을 하다보니 View까지 가는 로직에서 for문이 한 번 더도는 문제가 있었습니다. 가공하는 처리는 View에서 하는거보다 화면에 나타나기 전 로직에서 처리하는 것이 좋다고 생각은 했지만 만약 데이터가 무수히 많아질 경우에도 그게 맞는 것인가? 고민이 들었습니다. 그런데 해당 내용을 리뷰받던 도중 Factory를 내용을 알게 되었고 해당 내용을 학습하게 되었습니다. Factory Pattern 객체 생성을 위한 런타임 인터페이스를 정의하는데 사용되는 디자인 패턴입니다. 다양한 타입의 객체를 쉽게 만들 수 있게 도와주기에 펙토리리라는 이름이 붙여진 것 같습니다. protocol ContreateCreator { static..

    [iOS] 아키텍쳐 VIPER 패턴

    [iOS] 아키텍쳐 VIPER 패턴

    VIPER 구성도 항목 내용 View Presenter의 요청에 따라 표시하거나, 사용자 입력을 Presenter로 보내는 작업을 진행합니다. Presenter Interactor로부터 데이터를 가져오거나, View로 보내기 위한 데이터를 보내줍니다. 이외에도 다음 화면으로 전환을 하는 Router를 이용할 때, View의 요청을 받기도 합니다. Interactor Presenter의 요청을 받아 Entity 객체의 데이터를 가공하여 Output하는 로직 처리를 담당하고 있습니다. Entity 모델 객체입니다. Router(WireFrame) 화면 전환을 담당하며, 전환 시기(When)는 Presenter가 알고 있고 해당 부분은 어떻게(How)를 담당합니다. 이렇게 각자의 역할이 분할되어있어 해당 로직..

    [iOS] View Lifecycle

    [iOS] View Lifecycle

    View LifeCycle 구성도 어플리케이션이 실행하면서 ViewController들이 만들어지고 사라지며 화면을 띄우고 내리는 작업을 하는데, 이러한 과정들은 event에 의해 메소드가 호출됩니다. Init() storyboard를 통해 View Controller들을 만들 경우 ViewController 객체가 생성될 때 초기화 작업을 합니다. 이때 사용하는 메소드가 init() 입니다. 객체를 Byte Stream으로 바꾸어 디스크에 저장하거나 네트워크를 통해 전송하는 직렬화 작업을 하지 않는 이상 매개변수로 넘어오는 NSCoder 는 무시하셔도 무방합니다. 그런데 만약 View 내의 요소를 접근한다면 이는 아직 생성되기 전 상태이기에 에러가 발생합니다. 이외에도 init(nibName: bund..

    [iOS] Xcode Code Snippet

    [iOS] Xcode Code Snippet

    프로젝트를 진행하면서 해당 클래스나 구조체를 설명하는 주석을 적는 경우가 많았습니다. 그런데 매번 반복해서 적기보다 저장해서 사용할 수 있을까 찾아보던 도중 Code Snippet를 알게 되었습니다. /** # Class Description > # Method List - # Additional Info - */ 위처럼 예시 주석처리를 만든 후, 이를 code Snippet를 만들어봅니다. 이렇게 드래그를 하여 우클릭하면 Create Code Snippet를 할 수 있습니다. 이후 Command + Shift + L 키 를 누르면 등록한 Code Snippet를 사용할 수 있습니다.

    무정지를 위한 인프라 구조

    무정지를 위한 인프라 구조

    1. 안전성 및 이중화 안전성, 고가용성 시스템 서비스가 가능한 한 멈추지 않도록 하는 것을 의미합니다. 안전성, 고가용성 목표 실현 수단 고장, 장애에 의한 정지가 발생하지 않을 것 (MTBF) 컴포넌트 이중화 고장, 장애가 발생해도 복구할 수 있을것 (MTTR) 고장, 장애가 발생한 것을 검출할 수 있을 것 컴포넌트 감시 고장, 장애가 발생해도 데이터가 보호될 것 데이터 백업 이중화 하나의 기능을 병렬로 나열해서 하나에 장애가 발생해도 다른 것을 이용하여 서비스를 계속할 수 있는 것을 의미합니다. 이중화는 부하분산, 내부적 생존 감시, 마스터 결정, 페일오버 구조를 갖추고 있습니다. 2. 서버 내 이중화 전원, 장치 등의 이중화 이중화 때문에, 랙 뒤쪽의 양 끝에는 전원 탭이 있습니다. 서버 설치 시..

    인프라 네트워크 구조

    인프라 네트워크 구조

    1. 네트워크 서로 다른 장비가 데이터를 교환할 때 기본적으로 네트워크를 경유해서 데이터를 송수신합니다. 네트워크에서 발생하는 데이터 처리나 교환에는 다양한 구조가 존재하는데 이전에 글을 적었었던 3계층형 시스템 등은 대부분 TCP/IP 구조를 이요하고 있습니다. 2. 계층 구조 계층 구조에서는 데이터나 기능 호출 흐름에 따라 계층 간 역할이 나누어진다는 특징이 있습니다. 역할이 나뉘어 있기 때문에 각 층은 자신이 담당하는 일만 책임을 지며, 다른 일은 다른 계층이 책임을 진다. 각 층마다 어떤 방식으로 일을 처리하는지 모르도록 은폐화 되어 있습니다. 계층 모델의 대표적인 예로는 'OSI 7계층 모델' 이 있습니다. 해당 계층 구조 개념은 다양한 분야에서 공통적으로 참조할 수 있는 ‘참조 모델’로 현재도..