본문 바로가기

분류 전체보기

(53)
View 갈아끼우기 loadView ViewController의 뷰를 만드는 메서드 UIViewController Lifecylce에 영향을 미치는 메서드이기 때문에 해당 메서드 사용 시 유의가 필요함 ViewController는 View를 요청 시 View가 nil일 때 loadView 메서드를 호출하여 View를 로드함 loadView 호출 시점에서 nib 파일이 있는 경우 해당 nib 파일을 호출함 스토리보드(Interface Builder: 마우스뷰를 그리는 경우)를 통해 뷰를 생성한 경우 이 메서드를 override하면 안됨 Custom시 super 호출하지 않아야 함 ViewController init에서 view를 갈아끼우는 경우 loadView가 호출되지 않음 override init(nibName nibNa..
Gesture Recognizer 예시 코드 > 관련글 https://serena-diary.tistory.com/entry/Responder-Chain TRANSLATE with x English Arabic Hebrew Polish Bulgarian Hindi Portuguese Catalan Hmong Daw Romanian Chinese Simplified Hungarian Russian Chinese Traditional Indonesian Slovak Czech Italian Slovenian Danish Japanese Spanish Dutch Klingon Swedish English Korean Thai Estonian Latvian Turkish Finnish Lithuanian Ukrainian French Malay Urdu ..
UIEvent TRANSLATE with x English Arabic Hebrew Polish Bulgarian Hindi Portuguese Catalan Hmong Daw Romanian Chinese Simplified Hungarian Russian Chinese Traditional Indonesian Slovak Czech Italian Slovenian Danish Japanese Spanish Dutch Klingon Swedish English Korean Thai Estonian Latvian Turkish Finnish Lithuanian Ukrainian French Malay Urdu German Maltese Vietnamese Greek Norwegian Welsh Haitian Creol..
Responder Chain Responder Chain 앱에서 Responder 객체를 사용하여 이벤트 수신 및 처리 Responder 객체는 UIResponder 클래스의 인스턴스이며 일반적인 하위 클래스에는 UIView, UIViewController 및 UIApplication이 포함 Responder는 raw 이벤트 데이터를 수신, 이를 처리해서 다른 Responder 객체로 전달해야함 → UIKit에서 first Responder로 전달 처리되지 않은 이벤트는 dynamic 구성인 Active Responder Chain을 통해 다른 Responder 객체로 전달 된다→ 마지막까지 처리되지 않은 경우 이벤트 메세지를 폐기 → dynamic 구성인 Active Responder Chain: 구성이 바뀔 수 있다 Respon..
Access Control 접근제어 캡슐화와 은닉화 → 불필요한 접근으로 의도치 않은 결과를 초래 하거나 꼭 필요한 부분만 제공해야하는데 전체 코드가 노출될 가능성이 있을 때 접근제어를 이용 모듈 배포할 코드의 묶음 단위 → 현재 프로젝트 하나 단위 하나의 프레임워크(Framework)나 라이브러리(Library) 또는 애플리케이션(Application) import로 부른다 open : 클래스를 개방 접근수준으로 명시하는 것은 그 클래스를 다른 모듈에서도 부모클래스로 사용 하겠다는 목적으로 클래스를 설계하고 코드를 작성했음을 의미합니다.→ 클래스를 상속받거나 재정의 할 수 없도록 막고싶다면 public 로 정의 → 라이브러리 사용자(프로그래머)가 상속받아 사용하면 좋겠다거나 상속 후 재정의하여 사용하면 좋겠다는 생각을 한다면 open 으..
MVC 초기 MVC 기존의 코드는 UI 컴포넌트 별로 분리를 하였기 때문에, 프레젠테이션 계층이 분리가 되어있지 않았다. 이러한 분리는 유저 멘탈모델과 컴퓨터의 모델 간의 괴리를 만들어 내었다. MVC는 유저 멘탈모델과 프레젠테이션을 분리하여 유저 멘탈모델과 컴튜퍼 모델을 일치시키고자 등장하였다. 에디터(Editor) : 프리젠테이션 계층을 담당 컨트롤러(Controller) : 입력 담당 뷰(View) : 출력 담당 모델(Model) : 유저 멘탈모델 유저 멘탈모델이란? 유저가 앱이 이렇게 되어있을꺼다 생각하는 것 즉 특정 주제에 대한 사용자의 행동 친화도를 하나의 모델로 정리한 것 SmallTalk MVC 옵저버 패턴으로 뷰가 모델의 변경을 감시 Model의 변화가 View에 영향을 끼치게되는 단점이 존재 ..
Architecture Pattern 소프트웨어 설계 설계란 비용을 줄이기 위해 하는 것 소프트웨어 설계는 역할, 이름, 책임을 주는 것 → 여러 특성을 가진 대상을 이해하기 위해선 관심사의 분리의 원칙에 따라 한번에 한자기의 측면을 집중하여 분석해야함 Architecture Pattern 아키텍쳐란 소프트웨어의 개략적인 계층 분리 방법 패턴이란 문제에 대한 일반적이고 재사용 가능한 해결 방법 → 즉, 아키텍쳐 패턴이란 소프트웨어 계층 분리 방법도 세부 내용을 패턴화하여 재사용하는 것 GUI 아키텍쳐 : PDS(Presentation Domain Separation)을 기본으로 계층 분리→ GUI 아키텍쳐에는 MVC, MVP, MVVM, Flux가 있음 → PDS란 시스템 본래의 관심사항인 도메인과 모델을 UI인 View로부터 분리시키는 것..
동시성 프로그래밍 동기 프로그래밍(Sync Programming) - 프로그램의 흐름과 이벤트의 발생 및 처리를 종속적으로 수행 즉, 순차적으로 일처리를 진행하는 것 비동기 프로그래밍(Async Programming) - 프로그램의 흐름과 이벤트의 발생 및 처리를 독립적으로 수행 즉, 비순차적으로 일처리를 진행하는 것 병렬 프로그램 - 물리적으로 분리하여 처리 - 동일 혹은 유사한 작업을 나누어 처리 - 실제로 동시에 여러일을 처리 -> 그러기 위해선 다수의 물리적 코어가 필수적 - 규모가 큰 단위의 작업을 처리 -> 이 안에서 동시성을 처리할 수도 있음 동시성 프로그래밍 - 여러 작업을 동시에 하는 거”처럼” 작업하는 것 -> 이를 가능하게 하는 방법으로 나온것이 비동기 프로그래밍

728x90