일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 리눅스
- centOS7
- AWS
- 도커 컨테이너
- NGINX
- k8s
- 프로세스
- Swift
- 쿠버네티스
- centOS
- 운영체제
- docker
- 도커
- 도커 명령어
- 데브옵스
- 도커 이미지
- devops
- boj
- linux
- swift 클로저
- 클라우드
- kubernetes
- 컨테이너
- Python
- 부스트코스
- 네트워크
- os
- 인프라
- C++
- ios
- Today
- Total
목록ios (11)
귀염둥이의 메모
기본적인 네비게이션바는 그림자(구분선)이 있습니다. 이를 제거하기 위해서 viewDidLoad()에 다음과 같이 작성해줍니다. navigationController?.navigationBar.shadowImage = UIImage() shadowImage의 기본값은 nil 이며, 그림자 이미지가 들어갑니다.
UIKit에서 기본이 되는 좌표계는 좌측 상단 모서리를 원점으로 하며, 제일 왼쪽의 제일 위의 지점이 (0, 0)입니다. 원점으로부터 아래쪽, 오른쪽 방향으로 확장됩니다. 좌표값은 해상도와 상관없이 콘텐츠의 위치를 잡는 부동소수점을 사용하여 나타냅니다. 프레임(frame)은 뷰의 크기와 위치를 슈퍼뷰(SuperView)의 좌표계를 기준으로 합니다. 바운드(bounds)는 뷰의 크기와 위치를 해당 뷰 자신의 좌표계를 기준으로 합니다. frame과 bounds는 CGRect라는 구조체를 통해서 표현됩니다. CGRect는 사각형의 크기와 위치에 대한 정보를 담고 있습니다. CGRect의 origin프로퍼티는 CGPoint 타입으로 사각형의 시작점을 나타냅니다. CGRect의 size프로퍼티는 CGSize타입으..
Singleton Pattern 특정 용도로 객체를 하나만 생성하여, 공용으로 사용하고 싶을 때 사용하는 디자인 패턴. 싱글턴은 특정 클래스의 인스턴스가 오직 하나임을 보장한는 객체. 특정 클래스의 인스턴스가 딱 하나만 있기 때문에 다른 인스턴스들이 공유해서 사용할 수 있다. class StudentInfo { var name: String? var major: String? var age: Int? } 학생의 정보를 저장하는 StudentInfo가 있고 3개의 뷰컨트롤러 A ViewController, B ViewController, C ViewController가 있다. A ViewController : 학생의 name을 입력 받는다. B ViewController : 학생의 major를 입력 받는다..
Delegate의 뜻 [명사] 대표(자), 위임, 대리(자) [동사] (권한, 업무 등을)위임하다 Delegation Design Pattern Foundation, UIKit, AppKit 그리고 Cocoa Touch 등 애플의 프레임워크에서 광범위하게 활용하고 있다. 주로 프레임워크 객체가 위임을 요청하며, 커스텀 컨트롤러 객체가 위임을 받아 특정 이벤트에 대한 기능을 구현한다. 커스텀 컨트롤러에서 세부 동작을 구현함으로써 동일한 동작에 대해 다양한 대응을 할 수 있게 해준다. Delegate는 어떤 객체가 해야할 일을 부분적으로 확장해서 대신 처리를 해준다. 예제 (TextField) 1) Delegate 사용 X Click 버튼을 누르면 라벨의 텍스트를 내가 현재 쓴 TextField안의 값으로 ..
Cocoa Touch Framework iOS 개발환경, 애플리케이션의 다양한 기능 구현에 필요한 여러 개발도구를 포함하는 최상위 레벨의 프레임워크. Objective-C 런타임을 기반으로하고, NSObject를 상속받는 모든 클래스 또는 객체를 가리킬 떄 사용한다. 핵심 프레임워크인 UIKit과 Foundation을 포함한다. Media Layer는 내부 적으로 하위계층인 Core Servies와 Core OS계층의 프레임워크를 이용하고, Cocoa Touch 프레임워크를 구현하는데 사용된다. medium.com/@zieunv/cocoa-touch-framework-bf78307c4a51
MVC MVC(Model-View-Controller) 디자인 패턴은 애플리케이션의 객체를 모델, 뷰, 컨트롤러의 세가지 역할 중 하나의 역할로 할당한다. 애플리케이션 내에서 객체가 수행하는 역할 뿐만 아니라 객체가 서로 통신하는 방식을 정의한다. 세 가지 유형의 객체는 각각 추상적인 경계에 의해 다른 객체와 구분되며, 그 경계를 넘어 다른 유형의 객체와 통신한다. Model : 데이터 값 변경 및 관리 View : 사용자에게 보여지는 화면 담당 (UI) Controller : Model과 View 연결 모델 객체(Model Objects) 애플리케이션과 관련된 데이터를 캡슐화하고, 해당 데이터를 조작하고 처리하는 로직과 계산을 정의한다. 모델 객체는 데이터를 사용자에게 제공하거나 사용자가 이를 편집할 ..
구조체(struct)와 클래스(class) 공통점 값을 저장하기 위해 프로퍼티를 정의할 수 있다. 기능 수행을 위해 메서드를 정의할 수 있다. 서브스크립트 문법을 통해 구조체 또는 클래스가 가지는 값에 접근하도록 서브스크립트 정의 가능. 초기화될 때의 상태를 지정하기 위해 이니셜라이저 정의 가능. extension을 통해 확장 가능. 특정 protocol 준수 가능. 차이점 구조체(struct) 값 타입(Call by Value) : 데이터를 전달 할 때 값을 복사하여 전달. Stack memory 영역에 할당 상속 불가능 클래스(class) 참조 타입(Call by Reference) : 데이터를 전달 할 때 값의 메모리 위치를 전달. Heap memory 영역에 할당 상속 가능 struct Value..
Optional 값이 있을 수도, 없을 수도 있음을 표현. nil(없음)이 할당 될 수 있는지 없는지 표현. nil은 Optional 변수 이외에서 사용불가. Optional을 쓰는 이유 명시적 표현 nil의 가능성을 코드만으로 표현가능. 문서/주석 작성 시간 절약가능. 안전한 사용 전달받은 값이 Optional이 아니라면 nil 체크를 하지 않고 사용가능. 예외 상황을 최소화한다. Optional 선언 var optionalValue: Optional = nil var optionalValue: Int? = nil // 같은 표현 optionalValue = 30 var someValue = optionalValue // someValue는 Optional타입 // var someValue: Int =..
iOS View iOS에서 화면에 앱의 콘텐츠를 나타내기 위해 윈도우와 뷰를 사용한다. 윈도우는 그 자체로 콘텐츠를 표현할 수 없으며 애플리케이션의 뷰를 위한 컨테이너 역할을 한다. 뷰는 UIView 클래스 또는 UIView 클래스의 하위클래스(Subclass)의 인스턴스이다. 뷰는 또 다른 뷰를 관리하고 구성하기 위해 사용되기도 한다. 뷰 계층(View hierarchy) 하나의 뷰가 다른 뷰를 포함할 때, 두 뷰 사이에 부모(superview)-자식(subview) 관계가 생성된다. 부모-자식 관계 형성은 애플리케이션의 시각적 모습과 동작 모두 에 영향을 미친다. 슈퍼뷰와 서브뷰의 관계에서 서브뷰가 불투명할 경우 아래 그림과 같이 슈퍼뷰가 서브뷰에 가려진다. 슈퍼뷰는 하나의 배열 안에 서브뷰를 순서대..
NSLayoutConstraint - NSLayoutConstraint 인스턴스 생성 제약조건 button과 texField에 기본간격(8.0)에 제약을 주기 위해 NSLayoutConstraint 인스턴스를 생성 NSLayoutConstraint(item: button, attribute: .right, relatedBy: .equal, toItem: textField, attribute: .left, multiplier: 1.0, constant: 8.0) button1 과 button2의 너비 값이 같도록 제약을 생성 NSLayoutConstraint(item: button1, attribute: .width, relatedBy: .equal, toItem: button2, attribute: .w..