일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- AnyObject
- 파스칼표기법
- Switch
- unrecognized selector sent to class
- On branch is up to date with ' '
- 주간 달력
- 연관값
- 회고
- 내_삶
- IOS
- weekly calendar
- 코드스니펫
- 글또
- copy-on-write
- uikit
- K디지털기초역량훈련
- class
- Git
- 바이트디그리
- 다짐글
- SWIFT
- struct
- error해결
- 글또9기
- MyLife
- 제어전송문
- actionSheet
- 생명주기
- avaliable
- ios 개발 강의
- Today
- Total
목록SWIFT (34)
seong_hye, the developer
보호되어 있는 글입니다.
우선 왜 코드를 나눠서 설계하려고 할까? 여러명이서 하나의 거대한 앱을 만들게 됨(수만줄의 코드) -> 기준이나 룰에 따라 나누지 않으면 보기 힘듦 -> 유지보수가 편해야하기 때문에 코드를 계층으로 분리하려함 아키텍처란? 하나의 서비스가 어떻게 구성이 되며 어떻게 동작이 되는지 즉 서비스의 동작 원리를 나타내는 것 좋은 아키텍처의 특징들 단단하고/안정적, 모듈화 가능(재사용), 확장 용이(향후 확장성) 테스트 가능(UI와 비즈니스 로직에서 강력/안정적), Decoupling (느슨한 결합) 등.. 올바른 아키텍처 선택의 기준 - 유지보수 용이해야 한다. - 명확한 분리 기준: 단일 책임 원칙 - 테스트 가능: TDD(테스트 주도 개발) / 유닛테스트 가능해야 (더 안전한 코드 작성 가능) 완벽한 / 절대..
보호되어 있는 글입니다.
확장(Extension)이란? 기존 클래스, 구조체, 열거형 타입에 새로운 Property, Method, Initializer 등을 추가하는 것으로, 원본 타입(소스 코드)에 접근하지 못하는 타입들도 확장해서 사용할 수 있음 extension이란 키워드를 사용하여 확장함 사용하는 이유? 원본 소스 코드에 대한 액세스 권한이없는 유형을 확장하는 기능이 포함 (소급-모델링 retroactive modeling) 예) Int, String, Double 등 애플이 미리 만들어 놓은 타입에 확장도 가능 [ Struct에선 self를 사용할 때 mutating 키워드 필요 ] class Person { var id = 0 var name = "이름" var email = "1234@gmail.com" func ..
객체를 만들기 위해 가장 먼저 필요로 하는 것이 있다. 가진 속성을 초기화를 필요로 하기에 생성자를 가장 먼저 필요로 하게된다. 그렇다면 생성자란 무엇일까? 생성자는 클래스, 구조체, 열거형에서 인스턴스를 준비하기 위한 과정으로 인스턴스의 프로퍼티들마다 초기값을 설정해주고 새 인스턴스를 사용하기 전에 필요한 설정과 초기화를 수행하는 과정을 말한다. 각각의 타입에서 새로운 인스턴스를 만들 수 있는 특수한 메서드와 같은 역할을 하는 생성자를 정의하여 사용할 수 있다. 생성자의 가장 중요한 역할은 새로운 인스턴스가 처음 사용되기 전에 올바르게 초기화되는 것을 보장하는 것이다. 모든 생성자가 동일하지는 않다. 특히, 구조체와 클래스의 생성자에는 차이가 있다. 표를 통해 간단히 정리하고 내용을 정리해볼까 한다. ..
swif에는 저희가 인지하지 못하고 사용하고 있는 여러 프로그래밍 기술들이 있죠 오늘은 그 중에서 COW(Copy-On-Wirte)에 대해 알아보려고 합니다. COW(Copy-On-Write) 컴퓨터에서 복사할 때 값을 복사해서 담는다 하더라도, 실제 값이 바뀌기 전까지는 그냥 하나의 메모리 값을 공유해서 사용 원본이나 복사본에서 수정이 일어나면 그 때 값을 복사하는 것 중요한 이유? 값을 사용하는 방법 중 하나인 값 타입은 새로운 변수를 할당하거나 파라미터로 전달될 때 값 복사가 일어나는 것을 의미 하지만 이러한 복사 작업은 상당한 시간이 걸리므로 이런 작업을 최적화 하기 위한 기술이 COW이다. 사용 용도 메모리 공간이 큰 데이터를 다룰 경우 수정이 없는데 복사를 한다는 것은 메모리 낭비가 될 수 있..
싱글톤 패턴이란? 메모리상에 유일하게 1개만 존재하는 객체 설계하는 패턴 한번 생성된 이후에는 앱이 종료될 때까지, 유일한 객체로 메모리에 상주 static let 변수에 접근시 유일한 객체가 생성되고 데이터가 메모리에 lazy 하게 올라감 외부에서 또다른 새로운 객체 생성을 금지하고 싶은 경우, private init 메서드로 선언(선택적) 싱글톤 패턴이 필요한 이유? 앱 구현 시에 유일하게 한개만 필요한 객체가 필요한 경우 (특정한 유일한 데이터 / 관리 객체가 필요한 경우) class UIbirthday { // 싱글톤 패턴 static let singleton = UIbirthday() // 저장 속성 초기화 var screenCount: Int = 1 var screenBrightness: St..