반응형

전체 글 104

<Value Type> Set

https://developer.apple.com/documentation/swift/set/ Set | Apple Developer Documentation An unordered collection of unique elements. developer.apple.com Set이란? Set이란 자료구조 중 하나로 배열, 딕셔너리와 같이 Value Type의 구조체이다. Set의 특징은 다음과 같다. 순서가 없는 구조체 let set:Set = [1,2,3,4,5] print(set) // [1, 3, 2, 4, 5] print(set) // [2, 4, 1, 3, 5] Hashable 프로토콜을 준수하는 타입만 사용이 가능하다. 배열에 비해 검색속도가 빠르다. 해시 값을 통해 저장한다. 중복 요소를 포..

Swift 2024.03.03

14. UI Test

UI Test란? UI Test는 User Interface Testing의 약자로 말 그대로 사용자에게 보여지는 화면이 의도한 방향대로 작업흐름이 올바른지 테스트하는 것이다. xCode에서 UI 테스트는 쿼리로 앱의 UI 개체를 찾고 이벤트를 활성화한 다음 해당 개체에 이벤트를 보내는 방식으로 작동한다. API를 사용하면 UI 개체의 속성 및 상태를 검사하여 예상 상태와 비교할 수 있다. UI Test 추가방법 xCode 사이드바에 “Show the test navigator” 버튼을 클릭하면 UI 및 Unit 테스트 목록들이 나타나는 걸 알 수 있는데 하단에 “+” 버튼을 통해 새롭게 추가할 수 있다. UI Test 예제 테스트할 어플의 오른쪽 하단을 보면 “Slide”와 “Type” 슬라이더 바가 ..

Swift 2022.12.31

13. Unit Test(3)

[iOS] Unit Test(1) [iOS] Unit Test(2) 저번 포스팅에서는 Unit Test 프로젝트 생성 및 기초 설명 및 동기함수 테스트를 진행해 보았는데, 이번에는 비동기 통신 함수를 테스트하는 과정을 포스팅할 예정이다. 전체 코드 import XCTest @testable import UnitTestExample class UnitTextExampleSlow: XCTestCase { var sut: URLSession! let networkMonitor = NetworkMonitor.shared override func setUpWithError() throws { try super.setUpWithError() sut = URLSession(configuration: .default)..

Swift 2022.12.23

12. Unit Test(2)

이전 포스팅 11. Unit Test(1) Unit Test란? 유닛 테스트(unit test)는 컴퓨터 프로그래밍에서 소스 코드의 특정 모듈이 의도된 대로 정확히 작동하는지 검증하는 절차이다. 즉, 모든 함수와 메서드에 대한 테스트 케이스를 작성하 daesiker.tistory.com 개요 저번 포스팅에서는 유닛테스트가 무엇인지와 어떻게 설정하는지에 대해 포스팅하였는데, 이번에는 간단한 예제를 통해 직접 Unit Test를 해볼 예정이다. 예제는 Ray Wenderlich의 강의에 있는 내용을 가져와서 사용할 것이고, 해당 예제 링크는 아래에서 확인이 가능하다. iOS Unit Testing and UI Testing Tutorial iOS Unit Testing and UI Testing Tutori..

Swift 2022.12.16

11. Unit Test(1)

Unit Test란? 유닛 테스트(unit test)는 컴퓨터 프로그래밍에서 소스 코드의 특정 모듈이 의도된 대로 정확히 작동하는지 검증하는 절차이다. 즉, 모든 함수와 메서드에 대한 테스트 케이스를 작성하는 절차를 말한다. 이를 통해서 언제라도 코드 변경으로 인해 문제가 발생할 경우, 단시간 내에 이를 파악하고 바로 잡을 수 있도록 해준다. 유닛 테스트는 일반적인 테스트와 달리 개발자뿐만 아니라 보다 더 심도있는 테스트를 위해 테스터에 의해 수행되기도 한다. 좋은 Unit Test의 조건 Fast : 테스트는 빠르게 동작해야 한다. Independent/Isolated : 테스트는 서로의 상태를 공유하지 않고 독립적으로 이루어져야 한다. Repeatable : 테스트를 실행할 때 마다 동일한 결과를 얻..

Swift 2022.12.09

10. 멀티 스레딩과 GCD

멀티스레딩이란? Multi Threading이란 하나의 프로세스를 다수의 실행 단위로 구분하여 자원을 공유하고 자원의 생성과 관리의 중복성을 최소화하여 수행능력을 향상시키는 것을 멀티 스레딩이라고 한다. 하나의 프로그램에 동시에 여러개의 일을 수행할 수 있도록 해주는 것이다. 멀티 프로세스와 멀티 스레드의 차이점은 메모리 영역의 자원을 어떻게 공유하는지에 차이점이 있는데, 멀티 프로세스는 데이터 영역, 힙 영역, 스택 영역 모두를 비공유하지만, 멀티 쓰레드는 메모리 영역 중 스택 영역만 자원을 공유하지 않는다. 멀티 스레딩의 장점 프로세스의 생성은 많은 시간과 자원을 소비하는데 이 시간을 단축시킨 스레드를 만듦으로써, 시간 소비를 줄였다. 데이터 영역과 힙 영역을 공유함으로써, 컨텍스트 스위칭을 할 때 ..

Swift 2022.12.04

9. 프로세스와 스레드

9-1. 프로세스(Process) 정의 : 운영체제로부터 시스템 자원을 할당받는 작업의 단위 프로세스는 프로세스 각각의 독립된 메모리를 할당받는다. 독립된 메모리 영역이기 때문에 프로세스끼리 서로의 변수에 접근을 할 수 없다. 멀티 프로세스(Multi-Process) 정의 : 하나의 프로그램을 여러개의 프로세스로 구성하여 각 프로세스마다 하나의 작업씩 처리하는 방법 장점 서로 다른 프로세스가 독립된 메모리 영역을 할당받기 때문에 서로의 자원에 침투할 수 없음 침투할 수 없으므로 안정성이 높음 단점 독림된 메모리를 가지고 있기 때문에 프로세스간 자원 공유가 어렵다. 실행하는 프로세스가 바뀔때마다 Context Switching이 발생하여 CPU의 부담도 커지고 오버헤드가 발생하게 된다. ✽ Context ..

Swift 2022.08.25

8. [Swift] App’s Life Cycle(앱 생명주기)

개요 지난 포스팅에는 뷰의 생명주기에 대해 공부 했었는데 이번에는 App의 생명주기에 대해 공부해보고자 한다. 앱의 생명주기(App’s Life Cycle)이란 App의 실행/종료 및 App이 Foreground/Background 상태에 있을 때 시스템이 발생시키는 이벤트에 의해 App의 상태가 전환되는 일련의 과정을 말한다. ✓ Foreground : 앱이 화면에 올라와 있는 상태 ✓ Background : 앱이 화면상에서 보여지지 않는 상태 앱 상태 앱의 상태는 총 5가지로 구분된다. 1. Not Running 앱이 실행되지 않았거나, 완전히 종료되어 동작하지 않는 상태 2. Inactive(Foreground) 앱이 실행되면서 foreground에 진입하지만, 어떠한 이벤트도 받지 않는 상태이다...

Swift 2022.08.17

7.[Swift] View Life Cycle(UIKit, SwiftUI)

7-1. 개요 View Life Cycle이란 말그대로 뷰의 생명주기라는 뜻인데 뷰가 호출돼서 메모리에 적재되었다가, 뷰가 메모리에서 해제될 때 까지의 과정을 생명주기라고 한다. Swift의 UI 프레임워크인 UIKit과 Swift UI에는 각각 다른 방식의 생명주기를 통해 관리를 하는데 오늘은 이 2가지 프레임워크의 생명주기를 공부하고자 한다. 7-2. UIKit View Life Cycle -loadView 화면의 띄울 View를 만드는 메서드로 View를 만들고 메모리에 올리는 역할을 한다. 일반적으로 사용자는 이 메서드를 직접 호출하면 안된다고 개발 문서에는 나와있다. -viewDidLoad loadView를 통해 메모리에 성공적으로 로드가 되면 호출되는 함수이다. 화면이 처음 만들어질 때 한 번..

Swift 2022.08.09

6. Swift 프로퍼티의 종류

6-1. 개요 Swift에서 프로퍼티는 클래스, 구조체, 열거형 등에서 선언하는 상수/변수를 말한다. 다른 언어에서는 멤버라고도 하는데 Swift에서 프로퍼티는 총 5가지가 존재한다. 저장프로퍼티(Stored Properties) 지연 저장 프로퍼티(Lazy Stored Properties) 연산 프로퍼티(Computed Properties) 프로퍼티 감시자(Properties Observers) 타입 프로퍼티(Type Properties) 6-2. 저장 프로퍼티(Stored Properties) 저장 프로퍼티는 가장 기본적인 프로퍼티로 클래스 또는 구조체의 인스턴스와 연관된 값을 저장하는 프로퍼티이다. let이나 var 키워드를 통해 상수나 변수로 선언할 수 있다. 옵셔널 타입이 아니라면 기본값이 있거..

Swift 2022.08.03
반응형